1#ifndef CARDGAME_SCREEN_H
2#define CARDGAME_SCREEN_H
12#if VERSION_US || VERSION_JP
13#define FILE_CARDGAME_TIMS 0x24E
15#define FILE_CARDGAME_TIMS 0x25D
CARDGAME's shared declarations: the headers it builds on and the types the other headers point to bef...
#define TASK_HEADER(Type)
void CARDGAME_drawBlinker(CardBlinker *blinker)
Draws a blinker, its CLUT row changing every four frames.
void CARDGAME_drawPanelIcon(CardScreen *screen, CardScreenItems *items, s32 side, CardPanelScale *scale)
Draws a side's panel icon at the panel's open or close scale, and once the panel is open (state 2) it...
void CARDGAME_updateScreen(CardScreen *screen, CardScreenItems *items)
The card screen's task: makes its cursor and text windows, then each frame updates its blinkers,...
void CARDGAME_updateMenuWindow(CardScreen *screen, CardScreenItems *items)
A menu window (CardScreen.menuState): it opens, shows text file 0x10 with the cursor on menuRow,...
void CARDGAME_drawSpriteEffect(CardScreen *screen, CardSprite *sprite)
Draws a sprite's effect animation (1-4, frames 0x28-0x4C of the fourth TIM) and ends it when its time...
void CARDGAME_setPanelFlags(CardScreen *screen, s32 bits)
CardScreen.setPanelFlags: sets the panels' blink flags from bits, two to a flag: the even bits the pl...
void CARDGAME_setPanelValue(CardScreen *screen, s32 side, u32 which, s32 value)
CardScreen.setPanelValue: sets one of side's panel values: its points (0 to 4), its deck,...
s32 CARDGAME_startSpriteRecovery(CardScreen *screen, s32 index)
Starts a sprite's effect 2 with the recovery sound (state 8), and then its blink.
CardFileEntry CARDGAME_preloadFiles[]
void CARDGAME_drawWindowNumbers(CardScreen *screen, CardScreenItems *items, CardWindow *window)
Puts a window's two numbers (numbers) on its texts, right aligned.
void CARDGAME_confirmMessage(CardScreen *screen)
Confirms the message window's choice: the cursor nudges, then it closes.
void CARDGAME_updateSprites(CardScreen *screen, CardScreenItems *items)
Animates the sprites, then draws them: the moving ones first.
u8 CARDGAME_highlightCluts[]
a palette cycle: 0, 1, 2, 3, 2, 1
CardFader * CARDGAME_createFader(u8 blend)
Creates a fader, with the semi-transparency rate BLEND.
s32 CARDGAME_startSpriteFlip(CardScreen *screen, s32 index)
Starts turning a sprite over (state 4, CARDGAME_flipSprite)
s32 CARDGAME_startBlinkerMove(CardScreen *screen, s32 index, u8 duration, s16 x, s32 y)
Starts moving blinker index to x, y over duration frames.
u8 CARDGAME_flag7Frames[]
the frames of the panel's sprites for flags 7, 6 and 5 and its five flag icons (CARDGAME_flagIconSpri...
void CARDGAME_resetPanels(CardScreen *screen)
Puts both panels away at once.
void CARDGAME_drawCenteredText(CardScreen *screen, CardScreenItems *items, CardWindow *window, TextWindow *text, s32 file)
Puts a window's string value of file on text, centred on the screen (string 0x1F in palette 3),...
void CARDGAME_openWindow(CardScreen *screen, s32 index, s16 layout, s32 value, s32 x, s32 y)
Opens window index (CardScreen.windows) at x, y, with its layout and value.
void CARDGAME_tickFader(CardFader *fader)
A fader's task: steps its fade while fading, draws it over CARDGAME_fadeRect every frame and ends onc...
void CARDGAME_openPanels(CardScreen *screen)
Slides both panels in, over 20 frames.
void CARDGAME_closeWindow(CardScreen *screen, s32 index)
Closes window index.
s32 CARDGAME_messageWindowPositions[][2]
the message window's places (x, y), by CardScreen.message.place
void CARDGAME_openPanelIcon(CardScreen *screen, s32 side)
Grows side's panel icon over 12 frames.
void CARDGAME_animateSprite(CardScreen *screen, CardScreenItems *items, CardSprite *sprite)
Runs a sprite's animation for its state; sets bit 0 of spriteFlags while one runs.
s32 CARDGAME_getHandOffset(s32 count, s32 index)
CardScreen.getHandOffset: how far the hand's card index is from its first: 0x2900 a card up to six ca...
void CARDGAME_setFaderColor(CardFader *fader, u8 r, u8 g, u8 b)
Sets the colour at once.
void CARDGAME_closeMessage(CardScreen *screen)
Closes the message window.
void CARDGAME_drawMenuFrame(CardScreen *screen, CardScreenItems *items, s16 scale, s32 x, s32 y)
Draws the menu window's frame at a scale.
s32 CARDGAME_getCardColor(CardScreen *screen, s32 index)
CardScreen.getCardColor: the colour of the screen's card index.
void CARDGAME_killFader(CardFader *fader)
Ends the task.
u8 CARDGAME_loopFrames[]
the frames of a sprite's effect 1, which loops
void CARDGAME_openMenuWindow(CardScreen *screen, s16 value)
Opens the menu window with the cursor on row.
void CARDGAME_drawSpriteBlink(CardScreen *screen, CardSprite *sprite)
Draws a blinking sprite's flash (state 11), its CLUT row changing.
void CARDGAME_drawMessageFrame(CardScreen *screen, CardScreenItems *items, s16 scale, s32 x, s32 y)
Draws the message window's frame at a scale.
void CARDGAME_updateBlinkers(CardScreen *screen, CardScreenItems *items)
Moves and draws the twelve blinkers.
void CARDGAME_closePanelIcon(CardScreen *screen, s32 side)
Shrinks side's panel icon over 6 frames.
u8 CARDGAME_panelBarSprites[8][2]
the sprites of the panel's two bars, by LANGUAGE (USA: 1)
void CARDGAME_closePanels(CardScreen *screen)
Slides both panels out, over 10 frames.
s32 CARDGAME_showBlinker(CardScreen *screen, s32 index, s16 x, s16 y)
Shows blinker index, still, at x, y.
void CARDGAME_startSpriteSlide(CardScreen *screen, s32 index, s32 duration, s32 x, s32 y)
Starts moving a sprite to x, y over duration without sounds (state 3)
s32 CARDGAME_setSpriteScaleTarget(CardScreen *screen, s32 index, s32 duration, s32 scaleX, s32 scaleY, s32 instant)
Scales a sprite to scaleX, scaleY: at once when instant is 1, else over duration (state 2)
void CARDGAME_confirmMenuWindow(CardScreen *screen)
Confirms the menu window's row: the cursor nudges, then it closes.
void CARDGAME_drawWindowFrame(CardScreen *screen, CardScreenItems *items, CardWindow *window)
Draws a window's frame (CARDGAME_windowLayouts), scaled while it opens, and its count.
u8 CARDGAME_onceFrames[]
the frames of its effect 2, which plays once
s32 CARDGAME_holdSprite(CardScreen *screen, CardSprite *sprite, s32 duration)
Holds a sprite for duration frames, then ends its effect: 1 at the end.
void CARDGAME_openGauge(CardScreen *screen, s32 index, s16 value)
Opens gauge index showing value, over 10 frames.
void CARDGAME_clearPanelFlags(CardScreen *screen)
CardScreen.clearPanelFlags: clears both panels' blink flags.
void CARDGAME_drawFader(CardFader *fader, RECT rect)
Draws the fader over RECT, in layer 0x100.
void CARDGAME_drawSpriteHighlights(CardScreen *screen, CardSprite *sprite)
Draws the highlights over a sprite (highlight bits 0-2), with a cycling palette.
void CARDGAME_closeGauge(CardScreen *screen, s32 index)
Closes gauge index, over 5 frames.
void CARDGAME_updateWindows(CardScreen *screen, CardScreenItems *items)
Runs and draws the six windows.
s32 CARDGAME_flipSprite(CardScreen *screen, CardSprite *sprite)
Turns a sprite over for 12 frames, its side swapped after 7: 1 at the end.
void CARDGAME_closePanel(CardScreen *screen, s32 side)
Slides side's panel out over 5 frames, stopping the other's.
void CARDGAME_drawMessageMark(CardScreen *screen, CardScreenItems *items, s32 x, s32 y)
Draws sprite 0x18 of the message window.
s16 CARDGAME_shakeOffsets[]
CARDGAME_shakeSprite's x offsets, by time.
void CARDGAME_drawSpriteMarks(CardScreen *screen, CardSprite *sprite)
Draws a card's marks that are set (marks[0..2]: sprites 0x37 to 0x39), in a row 8 pixels apart.
void CARDGAME_drawSpriteOrder(CardScreen *screen, CardSprite *sprite)
Draws a sprite's order number (order), the place of its card in the record.
u16 CARDGAME_windowTextOffsets[]
a window's text x, by CARDGAME_drawWindowText's index
s16 CARDGAME_commonCards[]
the cards everyone has, loaded after the two decks
s32 CARDGAME_holdSpriteThenBlink(CardScreen *screen, CardSprite *sprite)
Holds a sprite for 10 frames, then starts its blink: 1 at the end.
void CARDGAME_updateMessageWindow(CardScreen *screen, CardScreenItems *items)
The message window: it opens at its place, shows its prompt (showMessagePrompt) and message (showMess...
void CARDGAME_drawSpriteCard(CardScreen *screen, CardSprite *sprite)
Draws a card sprite: its frame (visible 1, with the numbers or the mark and the image) or its back (v...
s16 CARDGAME_otherCards[]
the 100 cards whose images CARDGAME_loadCardImages loads after the decks (CARDGAME_getOtherCard)
s32 CARDGAME_jitterSprite(CardScreen *screen, CardSprite *sprite)
Jitters a sprite about where it started and squashes it, for 12 frames: 1 at the end.
void CARDGAME_drawNumber(CardNumber *number, s32 scaled)
Draws a number with the TIM archive's digits, seven pixels apart, without leading zeros unless asked;...
void CARDGAME_openPanel(CardScreen *screen, s32 side)
Slides side's panel in over 10 frames, stopping the other's.
void CARDGAME_closeMenuWindow(CardScreen *screen)
Closes the menu window.
s16 CARDGAME_jitterOffsets[]
CARDGAME_jitterSprite's x and y offsets.
CardScreen * CARDGAME_createScreen(s16 *cards)
Creates the card screen over cards, with its functions.
CardPanelLayout CARDGAME_panelLayouts[2]
the panels' layouts, by side
void CARDGAME_drawBackground(CardScreen *screen)
Draws the scrolling background, which fades in through its palettes (fadeState 1) and then stays.
u8 CARDGAME_flag6Frames[]
s32 CARDGAME_addSprite(CardScreen *screen, s32 index, s32 x, s32 y)
CardScreen.addSprite: puts a card sprite, still and at full size, at x, y.
void CARDGAME_setSpriteScale(CardScreen *screen, s32 index, s32 scaleX, s32 scaleY)
CardScreen.setSpriteScale: scales a sprite at once.
s32 CARDGAME_pictureSheet[]
the sprite sheet CARDGAME_drawCardPicture draws a card's picture with
u8 CARDGAME_flagIconSprites[]
the sprites of the panel's five flag icons
void CARDGAME_drawSprite(CardScreen *screen, CardSprite *sprite)
Draws a sprite and its marks, unless it is scaled to nothing.
void CARDGAME_startFade(CardFader *fader, u8 r, u8 g, u8 b, s32 frames, s32 killWhenDone)
Fades from the current colour to r, g, b in FRAMES vsyncs; the task ends at the end when KILLWHENDONE...
CardPanelValue
What CARDGAME_setPanelValue sets: 0-4 a colour's points, then these.
void CARDGAME_scaleSprite(CardScreen *screen, s32 index, s32 duration, s32 scaleX, s32 scaleY)
CardScreen.scaleSprite: scales a sprite over duration.
s32 CARDGAME_loadCardImages(s16 *dst, s16 *player, s16 *opponent)
CardScreen.loadCardImages: loads the images of the player's 40 cards, the opponent's 40,...
void CARDGAME_startSpriteMove(CardScreen *screen, s32 index, s32 duration, s32 x, s32 y)
Starts moving a sprite to x, y over duration (state 2), with a sound at the start and the end.
void CARDGAME_stepFader(CardFader *fader)
Moves the colour towards the target as the time runs out.
void CARDGAME_loadCardImage(TimLoader *loader, u8 *image, s32 slot)
Loads a card's image to VRAM slot slot, in columns of eight, with its CLUT.
void CARDGAME_dealSprites(CardScreen *screen, s16 duration, s16 count, s32 x, s32 y)
CardScreen.dealSprites: lays out count sprites as a hand from x, y, at once (duration 0) or moving th...
void CARDGAME_updateGauges(CardScreen *screen, CardScreenItems *items)
Runs and draws the three gauges.
s32 CARDGAME_isFadeDone(CardFader *fader)
1 once the fade has reached its colour
CardOffset CARDGAME_gaugePositions[]
where the three CardGauge gauges are
void CARDGAME_updateGauge(CardScreen *screen, CardScreenItems *items, s32 index, CardGauge *p)
Grows (state 1), holds (2) or shrinks (3) a gauge, and draws it.
s32 CARDGAME_shakeSprite(CardScreen *screen, CardSprite *sprite)
Shakes a sprite sideways and stretches it, for 12 frames: 1 at the end.
void CARDGAME_slidePanel(CardPanel *panel, CardScreenItems *items, s32 side)
Moves a side's panel between its shown and hidden places: in (state 1, slidePanelIn),...
void CARDGAME_drawPanel(CardPanel *panel, CardScreenItems *items, s32 side)
Draws a side's panel (CardScreen.panels): its lights, bars, numbers and parts (drawPanelParts),...
void CARDGAME_openMessage(CardScreen *screen, s32 arg1, s32 arg2, s16 arg3, s32 arg4)
Opens the message window at place with message, asking prompt with the cursor on choice.
RECT CARDGAME_screenRect
The functions and data the overlay's files share.
void CARDGAME_tickPreloader(CardPreloader *task)
Requests the files of CARDGAME_preloadFiles one after the other, and ends after the last.
void CARDGAME_drawCardPicture(CardSprite *sprite)
Draws a card's picture: a one-part sprite sheet (CARDGAME_pictureSheet) made on the fly,...
void CARDGAME_setMessageChoice(CardScreen *screen, s32 value)
Puts the message window's cursor on choice.
s32 CARDGAME_startSpriteBlink(CardScreen *screen, s32 index)
Starts a sprite's blink (state 11), with the confirm sound.
s32 CARDGAME_startSpriteJitter(CardScreen *screen, s32 index)
Starts a sprite's jitter (state 6, CARDGAME_jitterSprite), with effect 1.
void CARDGAME_moveBlinker(CardBlinker *blinker)
Moves a blinker towards its target; it stops there (state 1)
void CARDGAME_setMenuWindowRow(CardScreen *screen, s16 value)
Puts the menu window's cursor on row.
CardPreloader * CARDGAME_startPreloader(void)
Starts the preloader of the card game's files (CARDGAME_tickPreloader)
s32 CARDGAME_startSpriteEffect(CardScreen *screen, s32 index, s32 which)
Starts a sprite's effect 3 (which 0) for 36 frames, or 4 for 28.
u8 CARDGAME_panelLightCluts[8]
the clut rows of the panel's blinking lights: 0, 1, 2, 3, 2, 1
s32 CARDGAME_startSpriteFly(CardScreen *screen, s32 index, s32 duration, s32 x, s32 y)
Starts a sprite's flight to x, y and back (state 5, CARDGAME_flySprite), after it grows for 16 frames...
s32 CARDGAME_startSpriteShake(CardScreen *screen, s32 index)
Starts a sprite's shake (state 7, CARDGAME_shakeSprite), with effect 1.
void CARDGAME_drawWindowText(CardScreen *screen, CardWindow *window, TextWindow *text, s32 file, s32 index)
Puts a window's string value of file on text, or hides text when it has none.
s32 CARDGAME_getOtherCard(s32 index)
Card index of CARDGAME_otherCards.
void CARDGAME_drawGauge(CardScreen *screen, CardScreenItems *items, s32 index, CardGauge *p)
Draws a gauge at its place (CARDGAME_gaugePositions), at its scale.
s32 CARDGAME_flySprite(CardScreen *screen, CardSprite *sprite)
Flies a sprite from start to target along an arc while scaling it; at the end it swaps start and targ...
void CARDGAME_updatePanels(CardScreen *screen, CardScreenItems *items)
Runs and draws both panels and their icons.
void CARDGAME_updateScene(Task *task, CardBattle **items)
The steps CARDGAME_runEffectStep starts (CardBattle.effectStep.next) and runs (effectStep....
void CARDGAME_moveSprite(CardScreen *screen, CardSprite *sprite)
Moves and scales a sprite towards its targets; at the end it plays a sound (unless in state 3) and go...
void CARDGAME_updateWindow(CardScreen *screen, CardScreenItems *items, CardWindow *window, s32 index)
Opens (state 1), shows (2) or closes (3) window index, each its own way.
u8 CARDGAME_flagIconFrames[]
void CARDGAME_drawSpriteDim(CardScreen *screen, CardSprite *sprite)
Draws the shade over a dimmed sprite.
void CARDGAME_setSpriteCard(CardScreen *screen, s32 sprite, s32 index)
CardScreen.setSpriteCard: shows the screen's card index on sprite, with its AP, HP,...
void CARDGAME_setSpriteMove(CardScreen *screen, s32 index, s32 duration, s32 x, s32 y)
Sets a sprite's move to x, y over duration, from where it is.
void CARDGAME_updatePanelIcon(CardScreen *screen, CardScreenItems *items, s32 side, CardPanelScale *scale)
Grows (state 1) or shrinks (3) side's panel icon, and draws it.
s32 CARDGAME_removeSprite(CardScreen *screen, s32 index)
CardScreen.removeSprite: hides a sprite.
CardWindowLayout CARDGAME_windowLayouts[]
The card battle (CARDGAME_createBattle).
A blinking marker on the battle screen (CardScreen.blinkers), which can move to a target.
A fade colour and blend mode (CardBattle.fade - 1 picks one)
Fades the screen to a colour: a POLY_F4 over it, blended (blend is the semi-transparency rate)
void(* kill)(struct CardFader *fader)
void(* setColor)(struct CardFader *fader, u8 r, u8 g, u8 b)
s32(* isDone)(struct CardFader *fader)
s32 mode
0 idle, 1 fading, 2 done: the task ends
void(* start)(struct CardFader *fader, u8 r, u8 g, u8 b, s32 frames, s32 killWhenDone)
A file CARDGAME_tickPreloader reads; a text file is in each language.
s16 file
-2: the files before are enough to start, -1: the end
A value that goes from from to to (0x1000 is 1) over duration frames.
The battle screen's message window (CardScreen.message), which CARDGAME_runBattleMenu keeps a copy of...
s16 pad12[2]
never read or written
u8 prompt
what it asks: 0 nothing, else a choice with the cursor
s16 choice
the cursor's row
s32 pad8
never read or written
u8 state
1 opening, 2 open, 4 confirmed, 5 closing
s32 place
in CARDGAME_messageWindowPositions
A number drawn with the TIM archive's digits (CARDGAME_drawNumber)
An offset from a window's corner.
Where CARDGAME_drawPanel draws the parts of a side's panel (CARDGAME_panelLayouts),...
CardOffset boxLight
from the box
CardOffset flagIcons
five, 0x2A apart
CardOffset discardCount
from the box
CardOffset flagNumbers
CardPanel.points, 0x2A apart.
u8 winsSprite
plus CardPanel.wins: the sprite at winsX, winsY
CardOffset flagLights
five, 0x2A apart
u8 unk0
1 in both layouts; nothing reads it
u8 frame
the panel's sprite
CardOffset boxLabel
from the box
A panel's open (state 1) or close (state 3) scale, which goes over duration frames.
u8 pad2[2]
never read or written
u8 pad9[3]
never read or written: CardScreen.panels[2] are 0x54 bytes apart
One side's panel on the battle screen (CardScreen.panels): 0 is the player's, 1 the opponent's.
s16 event
for a frame, until CARDGAME_slidePanel clears it: 2 the panel started sliding in, 1 it slid out; noth...
s32 wins
the rounds won shown
u8 pad2C[4]
never read or written
u8 pad14[4]
never read or written
s16 apTotal
the values shown (CARDGAME_setPanelValue)
s32 blinkTime
a frame counter for the blinking (CARDGAME_drawPanel)
u8 pad3A[2]
never read or written
u8 pad24[4]
never read or written
u8 pad40[4]
never read or written
u8 points[5]
one per card colour
s16 winsX
where the rounds won are shown
s16 boxX
the discards' box, which slides on its own
Reads CARDGAME's files into the file cache, one at a time.
s32 ready
the files before the first -2 are in
The battle screen's task items.
TextWindow * panelTexts[2]
the label under each side's panel (CARDGAME_drawPanelIcon)
TextWindow * moreTexts[8]
The battle screen (created by CARDGAME_createScreen): the two panels, the cards on the table and the ...
CardMessageWindow message
void(* setSpriteCard)(struct CardScreen *screen, s32 sprite, s32 index)
void(* openWindow)(struct CardScreen *screen, s32 index, s16 layout, s32 value, s32 x, s32 y)
u8 fadeRow
the background's palette row, 0 to 11
void(* closePanel)(struct CardScreen *screen, s32 side)
s16 * cards
the battle's card list
u8 padE06[4]
never read or written
s32(* startFly)(struct CardScreen *screen, s32 index, s32 duration, s32 x, s32 y)
void(* dealSprites)(struct CardScreen *screen, s16 duration, s16 count, s32 x, s32 y)
void(* openMenu)(struct CardScreen *screen, s16 row)
void(* setPanelValue)(struct CardScreen *screen, s32 side, u32 which, s32 value)
void(* scaleSprite)(struct CardScreen *screen, s32 index, s32 duration, s32 scaleX, s32 scaleY)
s32(* getCardColor)(struct CardScreen *screen, s32 index)
void(* setPanelFlags)(struct CardScreen *screen, s32 bits)
void(* clearPanelFlags)(struct CardScreen *screen)
u8 padDFC[4]
never read or written
u8 fadeTime
four frames a row
void(* startMove)(struct CardScreen *screen, s32 index, s32 duration, s32 x, s32 y)
void(* resetPanels)(struct CardScreen *screen)
void(* openPanels)(struct CardScreen *screen)
void(* setMessageChoice)(struct CardScreen *screen, s32 choice)
s32(* startShake)(struct CardScreen *screen, s32 index)
void(* openMessage)(struct CardScreen *screen, s32 message, s32 prompt, s16 choice, s32 place)
s32(* getHandOffset)(s32 count, s32 index)
void(* closeMenu)(struct CardScreen *screen)
void(* confirmMessage)(struct CardScreen *screen)
s32(* removeSprite)(struct CardScreen *screen, s32 index)
s32(* startEffect)(struct CardScreen *screen, s32 index, s32 which)
void(* setSpriteScale)(struct CardScreen *screen, s32 index, s32 scaleX, s32 scaleY)
void(* closePanels)(struct CardScreen *screen)
s32(* startJitter)(struct CardScreen *screen, s32 index)
void(* openPanelIcon)(struct CardScreen *screen, s32 side)
void(* closeMessage)(struct CardScreen *screen)
s32 spriteFlags
this frame: bit 0 a sprite is animated, bit 1 a flying one landed
void(* closeWindow)(struct CardScreen *screen, s32 index)
s32(* loadCardImages)(s16 *dst, s16 *player, s16 *opponent)
u8 fadeState
0 dark, 1 fading in, 2 shown
s32(* startBlink)(struct CardScreen *screen, s32 index)
void(* confirmMenu)(struct CardScreen *screen)
s16 opponent
CardBattle.arg.
void(* closeGauge)(struct CardScreen *screen, s32 index)
s32(* showBlinker)(struct CardScreen *screen, s32 index, s16 x, s16 y)
s32(* startFlip)(struct CardScreen *screen, s32 index)
void(* setMenuRow)(struct CardScreen *screen, s16 row)
void(* closePanelIcon)(struct CardScreen *screen, s32 side)
void(* openGauge)(struct CardScreen *screen, s32 index, s16 value)
s32(* addSprite)(struct CardScreen *screen, s32 index, s32 x, s32 y)
void(* startSlide)(struct CardScreen *screen, s32 index, s32 duration, s32 x, s32 y)
void(* openPanel)(struct CardScreen *screen, s32 side)
s32(* startBlinkerMove)(struct CardScreen *screen, s32 index, u8 duration, s16 x, s32 y)
s16 opponentLevel
CardBattle.opponentLevel.
s32(* startRecovery)(struct CardScreen *screen, s32 index)
A card on the battle screen (CardScreen.sprites)
s32 growTime
the frames it grows for before it flies (CARDGAME_flySprite)
s16 index
in the battle's card list
u8 ap
the values shown, which count towards the slot's
s16 color
the card's colour, from 0
u8 order
a played card's place in the record, from 1
u8 highlight
bit 0 the cursor, bit 1 picked, bit 2 glowing
u8 marks[3]
the plays that apply to the card, drawn as marks
u8 effect
1-4, drawn by CARDGAME_drawSpriteEffect
How each of the six CardWindow windows is drawn.
u8 kind
2: a sprite of the fourth TIM, else of the third
s16 x
its pivot, from the window's corner
A window that opens (its scale goes from from to to)
u8 numbers[3]
two numbers, and whether they are shown
s32 value
by its layout: a string, a card, or points | colour << 4
s16 layout
in CARDGAME_windowLayouts
A menu cursor: a text window showing one of the CURSOR_FRAMES glyphs.
Any task, seen through its header.
A text window (createTextWindow): up to six text buffers (0 is shown, 1-5 are "work" buffers that con...
Uploads TIM images to VRAM (initTimLoader); acts on TIM_LOADER.