|
Digimon World 3 decomp
The European version, SLES_039.36
|
Display, drawing layers, the drawing helpers and the screen fade (gfx/) More...
#include "common.h"#include <sys/types.h>#include <libgte.h>#include <libgpu.h>#include "engine/task.h"Go to the source code of this file.
Data Structures | |
| struct | GfxFuncs |
| The graphics methods (GFX.funcs) More... | |
| struct | GfxState |
| The graphics state: double-buffered display, the GPU packet buffers that primitives are written to (getPrim/setPrim), and up to LAYER_COUNT drawing layers, each with its own ordering table, drawn in order by drawFrame. More... | |
| struct | LayerView |
| Layer as its clip/scroll methods see it: the clip rect as unsigned. More... | |
| struct | Rect16 |
| struct | DrawCallback |
| A function that a layer calls when it is drawn (Layer.addDrawCallback) More... | |
| struct | Layer |
| A drawing layer (GFX.funcs.createLayer): a DRAWENV with a pair of ordering tables, one per buffer, a scroll position and a list of draw callbacks. More... | |
| struct | CardImage |
| A card's image (CardDrawer.card): 64 to a file, a 12-byte header and a 32x32 8-bit TIM. More... | |
| struct | CardDrawer |
| Draws the cards' images (CardImage), from files 0x7E7-0x7EB. More... | |
| struct | SpriteDrawer |
| Draws sprites from a sprite sheet (such as file 0x277, the menu graphics): a sheet has a table of frames, each made of textured parts, and can be scaled, rotated and tinted. More... | |
| struct | SpritePart |
| One part of a sprite sheet, a rectangle of its texture. More... | |
| struct | AnimFrame |
| One frame of a sprite animation; frame 0xFF ends it (or loops it) More... | |
| struct | AnimState |
| struct | TimBlock |
| A TIM's CLUT or image block. More... | |
| union | TimCursor |
| Where timLoaderLoad is in a TIM: its words, then its blocks, which their sizes in bytes take it past. More... | |
| struct | TimLoader |
| Uploads TIM images to VRAM (initTimLoader); acts on TIM_LOADER. More... | |
| union | PrimPtr |
| The next free primitive of the packet buffer (getPrim), written as the kind that is drawn next. More... | |
| struct | Vec2 |
| struct | ScreenFade |
| Fades the whole screen to black and back with a subtractive rectangle. More... | |
Macros | |
| #define | SCREEN_WIDTH 320 |
| The screen the modes draw on (setDisplayMode, their layers' rects) | |
| #define | SCREEN_HEIGHT 240 |
| #define | LAYER_COUNT 30 |
| The drawing layers GFX holds at most. | |
| #define | SCREEN_LAYER 0x1000 |
| The layer over the whole screen that most modes create first and draw their menus on (FIELDSTG and STDWTITL name theirs: FIELD_LAYER_BACK, STDWTITL_TITLE_LAYER); the ones they add next take 0x1001 and up. | |
| #define | VSYNC_STEP_NTSC 0x100 |
| What a vsync adds to the 8.8 time counters: a frame of the 60 Hz game, or 1.2 of them at 50 Hz so that the game keeps its pace. | |
| #define | VSYNC_STEP_PAL 0x133 |
| #define | STRETCH_SPRITE_BY(sprite, level, scaleX, scaleY, x, y) |
| Stretch the drawer's next sprites by a fade level about the pivot (x, y) while the level is below ONE (a panel opening or closing), else draw them at full size. | |
| #define | STRETCH_SPRITE(sprite, level, x, y) STRETCH_SPRITE_BY(sprite, level, level, ONE, x, y) |
| #define | STRETCH_SPRITE_V(sprite, level, x, y) STRETCH_SPRITE_BY(sprite, level, ONE, level, x, y) |
| #define | ZOOM_SPRITE(sprite, level, x, y) STRETCH_SPRITE_BY(sprite, level, level, level, x, y) |
| #define | FADE_LEVEL_MAX 0xFF00 |
| ScreenFade.level when the screen is black: 0xFF in 8.8 fixed point. | |
Functions | |
| Layer * | getLayer (s32 id) |
The layer with id id, or NULL. | |
| Layer * | createLayer (RECT *rect, s32 otShift, s32 id) |
A new layer drawing to rect, with an OT of OT_LENGTHS[otShift - 1] entries; NULL when all are in use. | |
| s32 | destroyLayer (s32 id) |
Frees the layer with id id; 0 if there is none. | |
| void | moveLayer (s32 id, s32 targetId, s32 delta) |
| Moves a layer to the position of another one (plus delta) in the draw order. | |
| void | layerClearOt (Layer *layer) |
| Layer method: clears the OT of the buffer being drawn. | |
| u_long * | layerGetOtEntryZ (Layer *layer, s32 z) |
| Layer method: the OT entry for a 16-bit Z, scaled to the OT's length. | |
| u_long * | layerGetOt (Layer *layer) |
| Layer method: the OT of the buffer being drawn. | |
| s32 | layerGetOtShift (LayerView *layer) |
| Layer method: the OT size it was created with. | |
| void | layerSetBgColor (LayerView *layer, s32 r, s32 g, s32 b) |
| old-style: u8 r, g, b | |
| void | layerSetOffset (LayerView *layer, s32 x, s32 y) |
| old-style: s16 x, y | |
| void | layerGetScroll (LayerView *layer, Vec2 *out) |
| Layer method: the scroll position, in pixels. | |
| void | layerSetScroll (LayerView *layer, s32 x, s32 y) |
| Layer method: sets the scroll position (8.8 fixed point) | |
| void | layerAddScroll (LayerView *layer, s32 dx, s32 dy) |
| Layer method: scrolls by (dx, dy) (8.8 fixed point) | |
| void | layerSetClipPos (LayerView *layer, s32 x, s32 y) |
| old-style: s16 x, y | |
| void | layerSetClipSize (LayerView *layer, s32 w, s32 h) |
| old-style: s16 w, h | |
| void | layerGetViewRect (LayerView *layer, Rect16 *rect) |
| Layer method: the part of the scrolled world the clip rectangle shows. | |
| void | layerFree (Layer *layer) |
| Layer method: frees its OTs and draw callbacks, once the GPU is done with them. | |
| void | layerResetCallbacks (Layer *layer) |
| Layer method: empties the draw callbacks, but for the head entry, which sorts first. | |
| void | layerAllocCallbacks (Layer *layer, s32 count) |
Layer method: room for count draw callbacks. | |
| void | layerAddSortedCallback (Layer *layer, void(*func)(s32, void *, s32), s32 arg, s32 priority, s32 param) |
| Layer method: adds a draw callback in order of priority, highest first. | |
| void | layerAddCallback (Layer *layer, void(*func)(s32, void *, s32), s32 arg) |
| Layer method: adds a draw callback at the end of the list. | |
| void | layerRunCallbacks (Layer *layer) |
| Layer method: runs the draw callbacks in order, then empties the list. | |
| void | layerSetKeepView (Layer *layer, s32 enable, s32 projection) |
| Layer method: keeps the current world-screen matrix and projection for this buffer's drawing. | |
| void | layerLoadView (Layer *layer) |
| Layer method: restores the view that setKeepView kept. | |
| void | layerSetKeepLightMatrix (Layer *layer, s32 enable) |
| Layer method: keeps the current light matrix for this buffer's drawing. | |
| void | layerLoadLightMatrix (Layer *layer) |
| Layer method: restores the light matrix that setKeepLightMatrix kept. | |
| void | layerSkipEmptyOt (Layer *layer) |
| Links every run of empty OT entries past itself, so the GPU skips it. | |
| void | layerDraw (Layer *layer) |
| Layer method: sends the OT of the finished buffer, after its DRAWENV with the layer's offset. | |
| u_long * | layerGetOtEntry (Layer *layer, s32 depth) |
Layer method: the OT entry at depth in the buffer being drawn. | |
| Layer * | newLayer (DRAWENV *env, s32 otShift) |
| Allocates a layer with its two OTs and methods. | |
| s32 | findLayerSlot (s32 id) |
| The slot of the layer with this id; id 0 finds a free slot. | |
| void | removeLayerSlot (s32 index) |
| Closes the gap of a removed layer in the draw order. | |
| void | insertLayerSlot (s32 index, Layer *layer, s32 id) |
Puts a layer at position index of the draw order, moving the later ones back. | |
| void | initTimLoader (TimLoader *obj) |
| Clears a TIM loader, gives it its methods and binds it. | |
| void | vsyncCallback (void) |
| Every vsync: advances the time counters and the play time, runs GFX.vsyncFunc, shows the finished buffer and ticks the music. | |
| void | startVSyncCallback (void) |
| Installs vsyncCallback. | |
| void | drawFrame (s32 draw) |
| Ends a frame: lets the layers run their draw callbacks, waits for the GPU and for the vsync that shows the finished buffer, then sends every layer of that buffer and clears the ones of the next. | |
| s32 | getFrameCount (void) |
| The frames drawn since boot. | |
| s32 | getTime (void) |
| The vsyncs since boot (in 60 Hz frames) | |
| s32 | getFrameTime (void) |
| The vsyncs the last frame took (in 60 Hz frames) | |
| void | resetGraphics (void) |
| Destroys every layer and clears the packet buffers' state; the first call just picks the buffers. | |
| void | allocPrimBuffers (s32 size) |
Allocates the two GPU packet buffers, size bytes each, at the end of the heap. | |
| void * | getPrim (void) |
| The next free byte of the packet buffer being drawn. | |
| void | setPrim (void *next) |
| Moves the packet buffer's free pointer past the primitives just written. | |
| void | freePrimBuffers (void) |
| Frees the two packet buffers. | |
| void | setDisplayMode (s32 w, s32 h, s32 hires, s32 interlace) |
| Sets up the two display buffers: side by side in hi-res (interlaced 320x480 24-bit), else one above the other. | |
| void | setDisplayArea (s32 x, s32 y, s32 w, s32 h) |
| Shows the same VRAM area from both display buffers. | |
| void | bindCardDrawer (CardDrawer *obj) |
Makes obj the card drawer the methods work on. | |
| void | cardDrawerSetCard (s32 id) |
Card drawer method: picks the image of card id (0 or less: the first image of the first file) | |
| void | cardDrawerLoadImage (void) |
| Card drawer method: loads the card's image and CLUT into its cell of VRAM. | |
| void | cardDrawerSetLayer (s32 id, s32 depth) |
| Card drawer method: the layer and depth to draw to. | |
| void | cardDrawerSetImagePos (s32 x, s32 y) |
| Card drawer method: the VRAM area of the image cells. | |
| void | cardDrawerSetClutPos (s32 x, s32 y) |
| Card drawer method: the VRAM area of the CLUTs. | |
| void | cardDrawerSetCell (s32 x, s32 y) |
| Card drawer method: the cell a card is loaded to and drawn from. | |
| void | cardDrawerSetClutStride (s32 stride) |
| Card drawer method: the CLUT rows between two columns of cells. | |
| void | cardDrawerSetSemiTrans (s32 on) |
| Card drawer method: draws semi-transparent, or not. | |
| void | cardDrawerDraw (s32 x, s32 y) |
| Card drawer method: draws the card of the current cell at (x, y), a 32x32 sprite. | |
| s32 | cardDrawerGetKind (void) |
| Card drawer method: the kind of the current card (CARD_KINDS) | |
| void | bindSpriteDrawer (SpriteDrawer *obj) |
Makes obj the sprite drawer the methods work on. | |
| void | spriteDrawerSetTexture (s32 x, s32 y) |
| Sprite drawer method: the VRAM position of the sheet's texture and CLUTs. | |
| void | spriteDrawerSetAltClut (s32 x, s32 y) |
| Sprite drawer method: the other CLUT area, for parts that ask for it. | |
| void | spriteDrawerSetClutRow (s32 row) |
| Sprite drawer method: the CLUT row added to every part's. | |
| void | spriteDrawerSetLayer (Layer *layer, s32 arg1) |
| Sprite drawer method: the layer and depth to draw to. | |
| void | spriteDrawerSetLayerId (s32 id, s32 depth) |
| Sprite drawer method: the layer (by id) and depth to draw to. | |
| void | spriteDrawerDraw (s32 *sheet, s32 frame, s32 x, s32 y) |
Draws frame frame of a sprite sheet (see SpritePart) at (x, y): as sprites, changing the texture page between parts when needed, or as textured quads when the drawer is scaled or rotated. | |
| void | spriteDrawerSetScale (s32 x, s32 y, s32 z) |
| Sprite drawer method: scales the sprites (ONE: as they are) | |
| void | spriteDrawerSetRotation (s32 x, s32 y, s32 z) |
| old-style: s16 x, y, z | |
| void | spriteDrawerSetPivot (s32 x, s32 y) |
| Sprite drawer method: the point the sprites scale and rotate around. | |
| void | spriteDrawerSetFollowScroll (s32 on) |
| Sprite drawer method: whether the sprites move with the layer's scroll. | |
| void | spriteDrawerSetColor (CVECTOR *color) |
| Sprite drawer method: the color the sprites are tinted with. | |
| void | bindTimLoader (TimLoader *obj) |
Makes obj the TIM loader the methods work on. | |
| void | timLoaderSetImagePos (s32 x, s32 y) |
| TIM loader method: where in VRAM the next image goes. | |
| void | timLoaderSetClutPos (s32 x, s32 y) |
| TIM loader method: where in VRAM the next CLUT goes. | |
| void | timLoaderLoad (void *tim) |
| TIM loader method: sends a TIM's CLUT (4 and 8-bit images) and image to VRAM. | |
| void | timLoaderLoadArchive (void *archive) |
| TIM loader method: loads every TIM of an archive side by side, 0x40 halfwords apart, unpacking the RLEN ones. | |
| void | timLoaderSetBufferSize (s32 size) |
| TIM loader method: the buffer that RLEN TIMs are unpacked to. | |
| void | initSpriteDrawer (struct SpriteDrawer *obj) |
| Clears a sprite drawer to neutral (no scale, gray tint, follows the scroll), gives it its methods and binds it. | |
| void | initCardDrawer (CardDrawer *obj) |
| Clears a card drawer, gives it its methods and binds it. | |
| void | screenFadeStart (ScreenFade *task, s32 fadeIn, s32 duration) |
Starts fading the screen to black (fadeIn 0) or back, over duration frames. | |
| ScreenFade * | createScreenFade (s32 layerId) |
| A screen fade task on a layer, idle until started. | |
| void | drawScreenFade (struct ScreenFade *task) |
| A full-screen POLY_F4 with subtractive blending (tpage 0xE1000245) | |
| void | updateScreenFade (struct ScreenFade *task) |
| Moves the fade one frame on and draws it; TASK_DONE at the end, still drawn. | |
Variables | |
| s16 | OT_LENGTHS [] |
| A layer's ordering table length, by its otShift - 1. | |
| s32 | CARD_IMAGE_FILES [] |
| The card images, 64 cards to a file (cardDrawerSetCard), numbered in the Japanese disc as in the USA one. | |
| GfxState | GFX |
| GFX: the graphics state and its methods. | |
| s32 | NTSC_MODE |
| The European version runs at 50 Hz (PAL) unless NTSC_MODE is set; its clocks then advance 0x133, 60/50 of 0x100, per frame. | |
| s32 | SHIFT_PAL_SCREEN |
| moves both display areas 0x18 lines down | |
| s32 | CARD_KINDS [] |
| cardDrawerGetKind's kinds, by a card image's byte 3 | |
Display, drawing layers, the drawing helpers and the screen fade (gfx/)
Definition in file gfx.h.
| #define SCREEN_WIDTH 320 |
| #define SCREEN_LAYER 0x1000 |
| #define VSYNC_STEP_NTSC 0x100 |
| #define STRETCH_SPRITE_BY | ( | sprite, | |
| level, | |||
| scaleX, | |||
| scaleY, | |||
| x, | |||
| y | |||
| ) |
Stretch the drawer's next sprites by a fade level about the pivot (x, y) while the level is below ONE (a panel opening or closing), else draw them at full size.
STRETCH_SPRITE stretches the width, STRETCH_SPRITE_V the height and ZOOM_SPRITE both. The game reads the level again at each use, so level must have no side effects; a static inline that reads it once does not match, which suggests the original was a macro too. A bare if/else, not do { } while (0): that wrapper changes GCC 2.8.1's code at most of the uses. It ends in its own else, whose statement takes the caller's ';', so it stays one statement as the unbraced body of an if/else too (no dangling else); it can't be used as an expression.
| #define STRETCH_SPRITE | ( | sprite, | |
| level, | |||
| x, | |||
| y | |||
| ) | STRETCH_SPRITE_BY(sprite, level, level, ONE, x, y) |
| #define STRETCH_SPRITE_V | ( | sprite, | |
| level, | |||
| x, | |||
| y | |||
| ) | STRETCH_SPRITE_BY(sprite, level, ONE, level, x, y) |
| #define ZOOM_SPRITE | ( | sprite, | |
| level, | |||
| x, | |||
| y | |||
| ) | STRETCH_SPRITE_BY(sprite, level, level, level, x, y) |
| #define FADE_LEVEL_MAX 0xFF00 |
ScreenFade.level when the screen is black: 0xFF in 8.8 fixed point.
| void layerClearOt | ( | Layer * | layer | ) |
Layer method: clears the OT of the buffer being drawn.
Definition at line 106 of file layer.c.
Referenced by newLayer().
Layer method: the OT entry for a 16-bit Z, scaled to the OT's length.
Definition at line 159 of file layer.c.
Referenced by newLayer().
| u_long * layerGetOt | ( | Layer * | layer | ) |
Layer method: the OT of the buffer being drawn.
Definition at line 166 of file layer.c.
Referenced by newLayer().
Layer method: the OT size it was created with.
Definition at line 171 of file layer.c.
Referenced by newLayer().
Layer method: the scroll position, in pixels.
Definition at line 207 of file layer.c.
Referenced by newLayer().
Layer method: sets the scroll position (8.8 fixed point)
Definition at line 213 of file layer.c.
Referenced by newLayer().
Layer method: scrolls by (dx, dy) (8.8 fixed point)
Definition at line 219 of file layer.c.
Referenced by newLayer().
Layer method: the part of the scrolled world the clip rectangle shows.
Definition at line 245 of file layer.c.
Referenced by newLayer().
| void layerFree | ( | Layer * | layer | ) |
Layer method: frees its OTs and draw callbacks, once the GPU is done with them.
Definition at line 253 of file layer.c.
Referenced by newLayer().
| void layerResetCallbacks | ( | Layer * | layer | ) |
Layer method: empties the draw callbacks, but for the head entry, which sorts first.
Definition at line 263 of file layer.c.
Referenced by layerAllocCallbacks(), and layerRunCallbacks().
Layer method: room for count draw callbacks.
< the current mode's: freed by main whenever the mode task ends
Definition at line 273 of file layer.c.
Referenced by newLayer().
| void layerAddSortedCallback | ( | Layer * | layer, |
| void(*)(s32, void *, s32) | func, | ||
| s32 | arg, | ||
| s32 | priority, | ||
| s32 | param | ||
| ) |
Layer method: adds a draw callback in order of priority, highest first.
Definition at line 280 of file layer.c.
Referenced by newLayer().
Layer method: adds a draw callback at the end of the list.
Definition at line 323 of file layer.c.
Referenced by newLayer().
| void layerRunCallbacks | ( | Layer * | layer | ) |
Layer method: runs the draw callbacks in order, then empties the list.
Definition at line 341 of file layer.c.
Referenced by newLayer().
Layer method: keeps the current world-screen matrix and projection for this buffer's drawing.
Definition at line 357 of file layer.c.
Referenced by newLayer().
| void layerLoadView | ( | Layer * | layer | ) |
Layer method: restores the view that setKeepView kept.
Definition at line 366 of file layer.c.
Referenced by newLayer().
Layer method: keeps the current light matrix for this buffer's drawing.
Definition at line 372 of file layer.c.
Referenced by newLayer().
| void layerLoadLightMatrix | ( | Layer * | layer | ) |
Layer method: restores the light matrix that setKeepLightMatrix kept.
Definition at line 380 of file layer.c.
Referenced by newLayer().
| void layerSkipEmptyOt | ( | Layer * | layer | ) |
Links every run of empty OT entries past itself, so the GPU skips it.
Definition at line 111 of file layer.c.
Referenced by layerDraw().
| void layerDraw | ( | Layer * | layer | ) |
Layer method: sends the OT of the finished buffer, after its DRAWENV with the layer's offset.
Definition at line 130 of file layer.c.
Referenced by newLayer().
Layer method: the OT entry at depth in the buffer being drawn.
Definition at line 154 of file layer.c.
Referenced by newLayer().
Allocates a layer with its two OTs and methods.
< the current mode's: freed by main whenever the mode task ends
< the current mode's: freed by main whenever the mode task ends
< the current mode's: freed by main whenever the mode task ends
Definition at line 385 of file layer.c.
Referenced by createLayer().
The slot of the layer with this id; id 0 finds a free slot.
Definition at line 19 of file layer.c.
Referenced by createLayer(), destroyLayer(), and moveLayer().
| void removeLayerSlot | ( | s32 | index | ) |
Closes the gap of a removed layer in the draw order.
Definition at line 35 of file layer.c.
Referenced by destroyLayer(), and moveLayer().
Puts a layer at position index of the draw order, moving the later ones back.
Definition at line 43 of file layer.c.
Referenced by moveLayer().
| void initTimLoader | ( | TimLoader * | obj | ) |
Clears a TIM loader, gives it its methods and binds it.
Definition at line 119 of file tim_loader.c.
Referenced by cardDrawerLoadImage(), CARDGAME_loadCardImages(), CARDGAME_updateBattle(), CARDGAME_updateScene(), CNTY_SEL_tickScreen(), FIELDSTG_animateActor(), FIELDSTG_loadFieldFiles(), FIELDSTG_loadStreamSprites(), FIELDSTG_playCutsceneAnim(), FIGHTSTG_runScriptEffect(), FIGHTSTG_updateDigimonChange(), FIGHTSTG_updateModel(), loadFont(), STCRDABM_loadFiles(), STCRDDEK_loadFiles(), STCRDSHP_loadFiles(), STDGNAME_loadFiles(), STDWTITL_loadTitleImages(), STDWTITL_tickSplashLoader(), STFGTREP_loadFiles(), STGDGLAB_loadFiles(), STGMCARD_loadFiles(), STGTRAIN_loadImages(), STGTRAIN_loadSet(), STITSHOP_loadFiles(), STPLNMET_loadFiles(), STPLNMET_loadScroll(), STSTATUS_loadFiles(), STSTATUS_updateMenu(), updateBackground(), updateNameEntry(), updateScroller(), WFIGHTMN_loadFiles(), and WFIGHTTS_loadImages().
| void vsyncCallback | ( | void | ) |
Every vsync: advances the time counters and the play time, runs GFX.vsyncFunc, shows the finished buffer and ticks the music.
Definition at line 14 of file display.c.
Referenced by startVSyncCallback().
| void startVSyncCallback | ( | void | ) |
| void drawFrame | ( | s32 | draw | ) |
| s32 getTime | ( | void | ) |
| s32 getFrameTime | ( | void | ) |
| void resetGraphics | ( | void | ) |
| void allocPrimBuffers | ( | s32 | size | ) |
| void * getPrim | ( | void | ) |
| void setPrim | ( | void * | next | ) |
| void freePrimBuffers | ( | void | ) |
| void bindCardDrawer | ( | CardDrawer * | obj | ) |
Makes obj the card drawer the methods work on.
Definition at line 10 of file card_drawer.c.
Referenced by initCardDrawer().
| void cardDrawerSetCard | ( | s32 | id | ) |
Card drawer method: picks the image of card id (0 or less: the first image of the first file)
Definition at line 17 of file card_drawer.c.
Referenced by initCardDrawer().
| void cardDrawerLoadImage | ( | void | ) |
Card drawer method: loads the card's image and CLUT into its cell of VRAM.
Definition at line 32 of file card_drawer.c.
Referenced by initCardDrawer().
Card drawer method: the layer and depth to draw to.
Definition at line 42 of file card_drawer.c.
Referenced by initCardDrawer().
Card drawer method: the VRAM area of the image cells.
Definition at line 50 of file card_drawer.c.
Referenced by initCardDrawer().
Card drawer method: the VRAM area of the CLUTs.
Definition at line 56 of file card_drawer.c.
Referenced by initCardDrawer().
Card drawer method: the cell a card is loaded to and drawn from.
Definition at line 62 of file card_drawer.c.
Referenced by initCardDrawer().
| void cardDrawerSetClutStride | ( | s32 | stride | ) |
Card drawer method: the CLUT rows between two columns of cells.
Definition at line 68 of file card_drawer.c.
Referenced by initCardDrawer().
| void cardDrawerSetSemiTrans | ( | s32 | on | ) |
Card drawer method: draws semi-transparent, or not.
Definition at line 73 of file card_drawer.c.
Referenced by initCardDrawer().
Card drawer method: draws the card of the current cell at (x, y), a 32x32 sprite.
Definition at line 78 of file card_drawer.c.
Referenced by initCardDrawer().
| s32 cardDrawerGetKind | ( | void | ) |
Card drawer method: the kind of the current card (CARD_KINDS)
Definition at line 108 of file card_drawer.c.
Referenced by initCardDrawer().
| void bindSpriteDrawer | ( | SpriteDrawer * | obj | ) |
Makes obj the sprite drawer the methods work on.
Definition at line 10 of file sprite_drawer.c.
Referenced by initSpriteDrawer().
Sprite drawer method: the VRAM position of the sheet's texture and CLUTs.
Definition at line 15 of file sprite_drawer.c.
Referenced by initSpriteDrawer().
Sprite drawer method: the other CLUT area, for parts that ask for it.
Definition at line 23 of file sprite_drawer.c.
Referenced by initSpriteDrawer().
| void spriteDrawerSetClutRow | ( | s32 | row | ) |
Sprite drawer method: the CLUT row added to every part's.
Definition at line 29 of file sprite_drawer.c.
Referenced by initSpriteDrawer().
Sprite drawer method: the layer and depth to draw to.
Definition at line 34 of file sprite_drawer.c.
Referenced by initSpriteDrawer(), and spriteDrawerSetLayerId().
Sprite drawer method: the layer (by id) and depth to draw to.
Definition at line 40 of file sprite_drawer.c.
Referenced by initSpriteDrawer().
Draws frame frame of a sprite sheet (see SpritePart) at (x, y): as sprites, changing the texture page between parts when needed, or as textured quads when the drawer is scaled or rotated.
< GTE regards 4096 as 1.0
< GTE regards 4096 as 1.0
< GTE regards 4096 as 1.0
Definition at line 49 of file sprite_drawer.c.
Referenced by initSpriteDrawer().
Sprite drawer method: scales the sprites (ONE: as they are)
Definition at line 197 of file sprite_drawer.c.
Referenced by initSpriteDrawer().
Sprite drawer method: the point the sprites scale and rotate around.
Definition at line 221 of file sprite_drawer.c.
Referenced by initSpriteDrawer().
| void spriteDrawerSetFollowScroll | ( | s32 | on | ) |
Sprite drawer method: whether the sprites move with the layer's scroll.
Definition at line 227 of file sprite_drawer.c.
Referenced by initSpriteDrawer().
| void spriteDrawerSetColor | ( | CVECTOR * | color | ) |
Sprite drawer method: the color the sprites are tinted with.
Definition at line 232 of file sprite_drawer.c.
Referenced by initSpriteDrawer().
| void bindTimLoader | ( | TimLoader * | obj | ) |
Makes obj the TIM loader the methods work on.
Definition at line 10 of file tim_loader.c.
Referenced by initTimLoader().
TIM loader method: where in VRAM the next image goes.
Definition at line 15 of file tim_loader.c.
Referenced by initTimLoader().
TIM loader method: where in VRAM the next CLUT goes.
Definition at line 21 of file tim_loader.c.
Referenced by initTimLoader().
| void timLoaderLoad | ( | void * | tim | ) |
TIM loader method: sends a TIM's CLUT (4 and 8-bit images) and image to VRAM.
Definition at line 27 of file tim_loader.c.
Referenced by initTimLoader(), and timLoaderLoadArchive().
| void timLoaderLoadArchive | ( | void * | archive | ) |
TIM loader method: loads every TIM of an archive side by side, 0x40 halfwords apart, unpacking the RLEN ones.
< the current mode's: freed by main whenever the mode task ends
Definition at line 66 of file tim_loader.c.
Referenced by initTimLoader().
| void timLoaderSetBufferSize | ( | s32 | size | ) |
TIM loader method: the buffer that RLEN TIMs are unpacked to.
Definition at line 114 of file tim_loader.c.
Referenced by initTimLoader().
| void initSpriteDrawer | ( | struct SpriteDrawer * | obj | ) |
Clears a sprite drawer to neutral (no scale, gray tint, follows the scroll), gives it its methods and binds it.
< GTE regards 4096 as 1.0
< GTE regards 4096 as 1.0
< GTE regards 4096 as 1.0
Definition at line 240 of file sprite_drawer.c.
Referenced by CARDGAME_drawBackground(), CARDGAME_drawBlinker(), CARDGAME_drawCardPicture(), CARDGAME_drawDeckWindow(), CARDGAME_drawGauge(), CARDGAME_drawMarker(), CARDGAME_drawMenuFrame(), CARDGAME_drawMessageFrame(), CARDGAME_drawMessageMark(), CARDGAME_drawNumber(), CARDGAME_drawPanel(), CARDGAME_drawPanelIcon(), CARDGAME_drawSpriteBlink(), CARDGAME_drawSpriteCard(), CARDGAME_drawSpriteDim(), CARDGAME_drawSpriteEffect(), CARDGAME_drawSpriteHighlights(), CARDGAME_drawSpriteMarks(), CARDGAME_drawSpriteOrder(), CARDGAME_drawWindowFrame(), CNTY_SEL_drawBackground(), CNTY_SEL_drawCursor(), CNTY_SEL_drawLeftPanel(), CNTY_SEL_drawRightPanel(), CNTY_SEL_drawTopPanel(), drawActorMark(), drawBackground(), drawCardMark(), drawCardNumbers(), drawEffect(), drawEffect(), drawEntryPanel(), drawFaller(), drawFieldMenuFade(), drawFloaterPart(), drawFlyer(), drawFlyerGate(), drawGauge(), drawGlow(), drawKeyboard(), drawMessageBoxArrow(), drawMessageBoxFrame(), drawPairSprite(), drawPanelParts(), drawScroller(), drawStageEffect(), drawTalkBoxArrow(), drawTalkBoxFrame(), drawTimer(), drawWindowCount(), FIELDSTG_drawBalloon(), FIELDSTG_drawMapObject(), FIELDSTG_drawSpotEffect(), FIELDSTG_playCutsceneAnim(), FIELDSTG_runChoice(), FIELDSTG_showSpotHint(), FIELDSTG_updateActorIcon(), FIELDSTG_updateEffect(), FIELDSTG_updateMapObjects(), FIGHTSTG_drawConfusedMessageBox(), FIGHTSTG_drawCursorSprites(), FIGHTSTG_drawHud(), FIGHTSTG_drawItemMenu(), FIGHTSTG_drawMessageBox(), FIGHTSTG_drawPageArrows(), FIGHTSTG_drawPartnerViewFrame(), FIGHTSTG_drawSpriteAnim(), FIGHTSTG_drawStatsFrame(), FIGHTSTG_drawSwitchInMenu(), FIGHTSTG_drawSwitchMenu(), FIGHTSTG_drawTechIcons(), FIGHTSTG_drawTechMenu(), FIGHTSTG_updateSwitchMenu(), STCRDABM_drawAlbum(), STCRDABM_drawCards(), STCRDABM_drawTurningSlots(), STCRDDEK_drawDeckCards(), STCRDDEK_drawEditor(), STCRDDEK_drawIdle(), STCRDDEK_drawScreen(), STCRDSHP_drawBuy(), STCRDSHP_drawCards(), STCRDSHP_drawPackOpen(), STCRDSHP_drawShop(), STCRDSHP_drawTurningSlots(), STDGNAME_drawBackground(), STDGNAME_drawMenu(), STDWTITL_drawBackground(), STDWTITL_drawBackgroundSprites(), STDWTITL_drawGlint(), STDWTITL_drawGlintAlt(), STDWTITL_drawLogo(), STDWTITL_drawMenu(), STDWTITL_drawSplash(), STDWTITL_drawTitle0(), STDWTITL_drawTitle0Alt(), STDWTITL_drawTitle1(), STDWTITL_drawTitle1Alt(), STFGTREP_drawPartner(), STFGTREP_drawReport(), STGDGLAB_drawEntryList(), STGDGLAB_drawMenu(), STGDGLAB_drawPartyScreen(), STGDGLAB_drawRecipeScreen(), STGDGLAB_drawSkillPanel(), STGDGLAB_drawSlotScreen(), STGDGLAB_updateLab(), STGMCARD_drawSaves(), STGMCARD_updateInfo(), STGMCARD_updateMenu(), STGMCARD_updatePanel(), STGMCARD_updateScreen(), STGTRAIN_drawIdle(), STGTRAIN_drawMenu(), STGTRAIN_drawResult(), STGTRAIN_drawScreen(), STGTRAIN_drawSession(), STITSHOP_drawBuy(), STITSHOP_drawItemList(), STITSHOP_drawSell(), STITSHOP_drawShop(), STITSHOP_drawStatsPage(), STITSHOP_updateInfo(), STPLNMET_drawChoice(), STPLNMET_drawConfirm(), STPLNMET_drawTitle(), STPLNMET_updateScroll(), STPLNMET_updateShine(), STPLNMET_updateSparkles(), STPLNMET_updateWelcome(), STSTATUS_drawBackground(), STSTATUS_drawCardScreen(), STSTATUS_drawDemoScreen(), STSTATUS_drawDigivolvePanel(), STSTATUS_drawEquipPanel(), STSTATUS_drawItemList(), STSTATUS_drawItemScreen(), STSTATUS_drawMapScreen(), STSTATUS_drawSortScreen(), STSTATUS_drawStatusScreen(), STSTATUS_drawTechScreen(), updateEvent1510(), updateEvent1512(), updateEvent1514(), updateEvent1516(), updateEvent1518(), updateEvent1520(), updateEvent1602(), updateEvent1604(), updateEvent1616(), updateEvent1618(), updateEvent9(), updateFarSprites(), updateFieldMenu(), updateInn(), updateListMenu(), updateMenu(), and updateSpriteField().
| void initCardDrawer | ( | CardDrawer * | obj | ) |
Clears a card drawer, gives it its methods and binds it.
Definition at line 113 of file card_drawer.c.
Referenced by CARDGAME_addCardPoints(), CARDGAME_addColorCount(), CARDGAME_canPlayCard(), CARDGAME_canPlayCardKind(), CARDGAME_checkPlayCondition(), CARDGAME_createDeckWindow(), CARDGAME_drawFromDeck(), CARDGAME_drawNewCards(), CARDGAME_findCardSet(), CARDGAME_getCardColor(), CARDGAME_loadCardImages(), CARDGAME_markPileCardsByColor(), CARDGAME_markSlotsByColor(), CARDGAME_pickBestPileCard(), CARDGAME_pickComputerCard(), CARDGAME_pickLowestOpponentCard(), CARDGAME_pickLowestPlayerCard(), CARDGAME_putSlotCard(), CARDGAME_scoreHand(), CARDGAME_setSlot(), CARDGAME_setSpriteCard(), CARDGAME_showCardInfo(), CARDGAME_startPreviousCardChoice(), CARDGAME_targetColor3Slot(), CARDGAME_targetColor4Slot(), jumpBackForOtherColors(), lastPlayColor(), STCRDABM_drawAlbum(), STCRDABM_drawCards(), STCRDABM_loadIcons(), STCRDABM_showCardInfo(), STCRDDEK_countCardKinds(), STCRDDEK_drawDeckCards(), STCRDDEK_drawEditor(), STCRDDEK_loadNextCard(), STCRDDEK_showEditorWindows(), STCRDDEK_showListCard(), STCRDSHP_chooseBuyCard(), STCRDSHP_drawBuy(), STCRDSHP_drawCards(), STCRDSHP_drawPackOpen(), STCRDSHP_loadIcons(), STCRDSHP_showBuyCard(), and STCRDSHP_showPackCard().
| void screenFadeStart | ( | ScreenFade * | task, |
| s32 | fadeIn, | ||
| s32 | duration | ||
| ) |
Starts fading the screen to black (fadeIn 0) or back, over duration frames.
Definition at line 4 of file screen_fade.c.
Referenced by createScreenFade().
| ScreenFade * createScreenFade | ( | s32 | layerId | ) |
A screen fade task on a layer, idle until started.
Definition at line 76 of file screen_fade.c.
Referenced by updateInnMenu(), and warpAway().
| void drawScreenFade | ( | struct ScreenFade * | task | ) |
A full-screen POLY_F4 with subtractive blending (tpage 0xE1000245)
Definition at line 24 of file screen_fade.c.
Referenced by updateScreenFade().
| void updateScreenFade | ( | struct ScreenFade * | task | ) |
Moves the fade one frame on and draws it; TASK_DONE at the end, still drawn.
Definition at line 46 of file screen_fade.c.
Referenced by createScreenFade().
|
extern |
A layer's ordering table length, by its otShift - 1.
Definition at line 422 of file layer.c.
Referenced by newLayer().
|
extern |
The card images, 64 cards to a file (cardDrawerSetCard), numbered in the Japanese disc as in the USA one.
Definition at line 134 of file card_drawer.c.
Referenced by cardDrawerSetCard().
|
extern |
GFX: the graphics state and its methods.
Definition at line 209 of file display.c.
Referenced by addNewDigimon(), advanceStageFade(), allocPrimBuffers(), cardDrawerDraw(), cardDrawerSetLayer(), CARDGAME_animateSprite(), CARDGAME_chooseDeck(), CARDGAME_countDown(), CARDGAME_discardHand(), CARDGAME_discardPickedCard(), CARDGAME_discardPrevCard(), CARDGAME_drawBackground(), CARDGAME_drawDeckWindow(), CARDGAME_drawFader(), CARDGAME_drawFirstPlayer(), CARDGAME_drawFromDeck(), CARDGAME_drawMarker(), CARDGAME_drawNewCards(), CARDGAME_drawPanel(), CARDGAME_drawSpriteEffect(), CARDGAME_flipSlotCard(), CARDGAME_flipSprite(), CARDGAME_flySprite(), CARDGAME_holdSprite(), CARDGAME_holdSpriteThenBlink(), CARDGAME_jitterSprite(), CARDGAME_moveBlinker(), CARDGAME_moveSprite(), CARDGAME_removeMarkedSlots(), CARDGAME_returnUsedCards(), CARDGAME_shakeSprite(), CARDGAME_showPlayedCard(), CARDGAME_slidePanel(), CARDGAME_stepChooseCards(), CARDGAME_stepFader(), CARDGAME_stepPlayCard(), CARDGAME_stepPulseCard(), CARDGAME_stepRoundEnd(), CARDGAME_stepSlotTotal(), CARDGAME_stepStart(), CARDGAME_stepSwap(), CARDGAME_stepTally(), CARDGAME_stepTotals(), CARDGAME_stepYesNo(), CARDGAME_updateDeckWindow(), CARDGAME_updateGauge(), CARDGAME_updateMarker(), CARDGAME_updateMenuWindow(), CARDGAME_updateMessageWindow(), CARDGAME_updatePanelIcon(), CARDGAME_updateScene(), CARDGAME_updateScreen(), CARDGAME_updateWindow(), CARDGAME_waitFor(), CNTY_SEL_drawFade(), CNTY_SEL_stepAnimation(), CNTY_SEL_tickScreen(), countRoundWin(), createLayer(), destroyLayer(), drawBackground(), drawByteAnims(), drawEffectNames(), drawEntryPanel(), drawFader(), drawFlyerGate(), drawFrame(), drawGauge(), drawKeyboard(), drawMessageBoxArrow(), drawScreenFade(), drawTalkBoxArrow(), drawTalkBoxFrame(), drawTimer(), drawZoomBox(), endBattleOnKnockOut(), FIELDSTG_animateActor(), FIELDSTG_closeField(), FIELDSTG_drawActor(), FIELDSTG_drawBannerBox(), FIELDSTG_drawCover(), FIELDSTG_drawCoverBlock(), FIELDSTG_drawMapTiles(), FIELDSTG_drawStream(), FIELDSTG_findOldestStream(), FIELDSTG_isTileFree(), FIELDSTG_playBattleTransition(), FIELDSTG_playCutsceneAnim(), FIELDSTG_runGauge(), FIELDSTG_runMapStreamer(), FIELDSTG_scrollCamera(), FIELDSTG_showSpotHint(), FIELDSTG_stepBalloonAnim(), FIELDSTG_stepEffectAnim(), FIELDSTG_toScreenPos(), FIELDSTG_touchStream(), FIELDSTG_updateActor(), FIELDSTG_updateActorIcon(), FIELDSTG_updateBalloon(), FIELDSTG_updateBanner(), FIELDSTG_updateEffect(), FIELDSTG_updateField(), FIELDSTG_updateHiddenSpots(), FIELDSTG_updateLift(), FIELDSTG_updateMapObjects(), FIELDSTG_updateSpotEffect(), FIELDSTG_updateStream(), FIELDSTG_waitScriptTime(), FIGHTSTG_applyCamera(), FIGHTSTG_countFrames(), FIGHTSTG_drawConfusedMessageBox(), FIGHTSTG_drawCursorSprites(), FIGHTSTG_drawHud(), FIGHTSTG_drawItemMenu(), FIGHTSTG_drawMesh(), FIGHTSTG_drawMeshWireframe(), FIGHTSTG_drawMessageBox(), FIGHTSTG_drawPageArrows(), FIGHTSTG_drawShadedQuad(), FIGHTSTG_drawTechMenu(), FIGHTSTG_drawWhiteFlash(), FIGHTSTG_fadeLights(), FIGHTSTG_fadeStage(), FIGHTSTG_finishMessage(), FIGHTSTG_queueMeshDraw(), FIGHTSTG_queueMeshWireframe(), FIGHTSTG_runScriptWait(), FIGHTSTG_stepConfusedMessage(), FIGHTSTG_stepHpTween(), FIGHTSTG_stepMessage(), FIGHTSTG_updateBattleCamera(), FIGHTSTG_updateCamera(), FIGHTSTG_updateCameraShots(), FIGHTSTG_updateCameraTurn(), FIGHTSTG_updateCursor(), FIGHTSTG_updateDigimonChange(), FIGHTSTG_updateEntrance(), FIGHTSTG_updateFace(), FIGHTSTG_updateHitEffect(), FIGHTSTG_updateHpTweens(), FIGHTSTG_updateLights(), FIGHTSTG_updatePartnerView(), FIGHTSTG_updateShotCamera(), FIGHTSTG_updateSpriteAnim(), FIGHTSTG_updateSwitchMenu(), FIGHTSTG_updateWhiteFlash(), findLayerSlot(), findOldestFile(), flyToDest(), freePrimBuffers(), getFrameCount(), getFrameTime(), getLayer(), getPrim(), getTime(), hidePile(), hidePlays(), hideSlots(), insertLayerSlot(), isFileLoading(), isOnScreen(), isOnScreen2(), layerClearOt(), layerDraw(), layerGetOt(), layerGetOtEntry(), layerGetOtEntryZ(), layerLoadLightMatrix(), layerLoadView(), layerSetKeepLightMatrix(), layerSetKeepView(), layerSkipEmptyOt(), loadFile(), main(), moveDisplay(), moveLayer(), moveTransitionTile(), moveWanderer(), moveWanderPair(), prepareStageModel(), readPadButtons(), removeLayerSlot(), requestFile(), resetGraphics(), returnToBattle(), runGauge(), runStopSlide(), runUsed(), setChangeClips(), setDisplayArea(), setDisplayMode(), setPrim(), setUpFieldScreen(), showPile(), showPlays(), showSlots(), slidePanelIn(), slidePanelOut(), SOUNDTST_updateSoundTest(), spinView(), spinViewBack(), spriteDrawerDraw(), spriteDrawerSetLayerId(), STAGSLCT_startStageSelect(), STCRDABM_drawAlbum(), STCRDABM_updateGrid(), STCRDDEK_drawEditor(), STCRDDEK_drawScreen(), STCRDDEK_stepEditor(), STCRDSHP_drawBuy(), STCRDSHP_drawPackOpen(), STCRDSHP_updateGrid(), STDGNAME_drawMenu(), STDGNAME_updateScene(), STDWTITL_drawEdgeFade(), STDWTITL_initDecEnv(), STDWTITL_stepTitle(), STDWTITL_tickMovie(), STDWTITL_tickMoviePlayer(), STDWTITL_tickScreen(), STDWTITL_tickSplash(), STDWTITL_tickSplashLoader(), stepAnimation(), stepAnimation2(), stepAnimationOnce(), stepAnimationOnce(), stepFallBody(), stepFieldMenuFade(), stepFloaterPart(), stepHeldAnimation(), stepLoopingAnimation(), stepMoverBody(), stepRiser(), stepTileAnimation(), stepTileAnimation(), stepTileAnimation(), stepTileAnimation2(), stepTileAnimation2(), stepTileAnimation3(), stepTileAnimation4(), stepTileLoop(), stepTileLoopAnimation(), stepTileSequences(), STFGTREP_drawPartner(), STFGTREP_drawReport(), STFGTREP_updateScene(), STGDGLAB_drawEntryList(), STGDGLAB_drawMenu(), STGDGLAB_drawPartyScreen(), STGDGLAB_drawRecipeScreen(), STGMCARD_drawSaves(), STGMCARD_updateInfo(), STGMCARD_updateMenu(), STGMCARD_updatePanel(), STGTRAIN_animatePartner(), STGTRAIN_drawMenu(), STGTRAIN_drawResult(), STGTRAIN_drawScreen(), STGTRAIN_drawSession(), STGTRAIN_updateRoot(), STGTRAIN_updateSprite(), STITSHOP_drawBuy(), STITSHOP_drawItemList(), STITSHOP_drawSell(), STPLNMET_drawChoice(), STPLNMET_drawConfirm(), STPLNMET_updateScene(), STPLNMET_updateScroll(), STPLNMET_updateShine(), STPLNMET_updateSparkles(), STPLNMET_updateWelcome(), STSTATUS_animateItemPortraits(), STSTATUS_animateSortPortraits(), STSTATUS_animateTechPortraits(), STSTATUS_drawCardScreen(), STSTATUS_drawDemoScreen(), STSTATUS_drawDigivolvePanel(), STSTATUS_drawEquipPanel(), STSTATUS_drawItemList(), STSTATUS_drawItemScreen(), STSTATUS_drawMapScreen(), STSTATUS_drawStatusScreen(), STSTATUS_drawTechScreen(), STSTATUS_stepItemCursor(), STSTATUS_stepSortArrow(), STSTATUS_stepSortCursor(), STSTATUS_stepStatusCursor(), STSTATUS_stepTechCursor(), textWindowDraw(), touchMarkedFiles(), turnAroundFighters(), turnInFlight(), updateActorMark(), updateByteAnims(), updateCursor(), updateDarkness(), updateEffect(), updateEvent1602(), updateEvent1604(), updateEvent1616(), updateEvent1618(), updateEvent9015(), updateFaller(), updateFarSprites(), updateFieldMenu(), updateFileCache(), updateFloater(), updateFloaterChain(), updateFlyer(), updateFlyerGate(), updateGlow(), updateHiding(), updateInnMenu(), updateListMenu(), updateMessageBoxFrame(), updateMover(), updateRisers(), updateScene(), updateScrollBar(), updateSpriteField(), updateSpritePair(), updateStageEffect(), updateTileLift(), updateTimer(), updateVibration(), vsyncCallback(), waitPhaseStep(), warpAway(), WFIGHTMN_endBattle(), WFIGHTMN_showWon(), WFIGHTMN_updateMenu(), WFIGHTTS_cameraList(), WFIGHTTS_fighterList(), WFIGHTTS_motionList(), WFIGHTTS_stageList(), wipeFromWireframe(), and wipeToWireframe().
|
extern |
The European version runs at 50 Hz (PAL) unless NTSC_MODE is set; its clocks then advance 0x133, 60/50 of 0x100, per frame.
Definition at line 14 of file eu_settings.c.
Referenced by drawFrame(), fadeOutSound(), FIELDSTG_createActor(), FIELDSTG_runActorAction(), initSound(), main(), and vsyncCallback().
|
extern |
moves both display areas 0x18 lines down
Definition at line 15 of file eu_settings.c.
Referenced by CARDGAME_dealHands(), CARDGAME_drawPanel(), CARDGAME_drawPanelIcon(), CARDGAME_flipSlotCard(), CARDGAME_getStepWindowPos(), CARDGAME_layOutSlots(), CARDGAME_moveSlotCard(), CARDGAME_removeMarkedSlots(), CARDGAME_showPlayedCard(), CARDGAME_stepAttack(), CARDGAME_stepSlotTotal(), dealNextCards(), setDisplayMode(), and showPlayedCard().
|
extern |
cardDrawerGetKind's kinds, by a card image's byte 3
Definition at line 138 of file card_drawer.c.
Referenced by cardDrawerGetKind().