papermario
Decompilation of Paper Mario
 
All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
Loading...
Searching...
No Matches
sprite.h File Reference

Data Structures

struct  SpriteComponent
 
struct  PlayerCurrentAnimInfo
 
struct  SpriteAnimComponent
 
struct  SpriteRasterCacheEntry
 
struct  SpriteAnimData
 Sprite data header. More...
 
struct  SpriteInstance
 
struct  PlayerRastersHeader
 
struct  PlayerSpriteSet
 
struct  PlayerSpriteCacheEntry
 
struct  Quad
 

Macros

#define SPR_PLAYER_COLOR_VARIATIONS   6
 
#define SPR_PEACH_BTL_PAL_STRIDE   4
 

Enumerations

enum  SpriteIDFields {
  SPRITE_ID_ANIM_MASK = 0x000000FF , SPRITE_ID_PAL_MASK = 0x0000FF00 , SPRITE_ID_SPR_MASK = 0x00FF0000 , SPRITE_ID_BACK_FACING = 0x01000000 ,
  SPRITE_ID_TAIL_ALLOCATE = 0x80000000
}
 
enum  DrawSpriteOptions {
  DRAW_SPRITE_USE_PLAYER_RASTERS = 0x08000000 , DRAW_SPRITE_UPSIDE_DOWN = 0x10000000 , DRAW_SPRITE_OVERRIDE_PALETTES = 0x20000000 , DRAW_SPRITE_OVERRIDE_YAW = 0x40000000 ,
  DRAW_SPRITE_OVERRIDE_ALPHA = 0x80000000
}
 
enum  { PLAYER_SPRITE_MAIN = 0 , PLAYER_SPRITE_AUX1 = 1 , PLAYER_SPRITE_AUX2 = 2 }
 
enum  { SPRITE_MODE_PLAYER = 0 , SPRITE_MODE_NPC = 1 }
 

Functions

void imgfx_init (void)
 
void spr_init_sprites (s32 playerSpriteSet)
 
void spr_render_init (void)
 
void spr_update_player_raster_cache (void)
 
s32 spr_update_player_sprite (s32 arg0, s32 arg1, f32 timescale)
 
s32 spr_draw_player_sprite (s32 spriteInstanceID, s32 yaw, s32 arg2, PAL_PTR *paletteList, Matrix4f mtx)
 
s32 func_802DDEC4 (s32 arg0)
 
void set_player_imgfx_comp (s32, s32, ImgFXType, s32, s32, s32, s32, s32)
 
void set_player_imgfx_all (s32, ImgFXType, s32, s32, s32, s32, s32)
 
IMG_PTR spr_get_player_raster (s32 rasterIndex, s32 playerSpriteID)
 
void spr_get_player_raster_info (SpriteRasterInfo *out, s32 playerSpriteID, s32 rasterIndex)
 
PAL_PTRspr_get_player_palettes (s32 spriteIndex)
 
s32 spr_load_npc_sprite (s32 animID, u32 *extraAnimList)
 
s32 spr_update_sprite (s32 spriteInstanceID, s32 animID, f32 timeScale)
 
s32 spr_draw_npc_sprite (s32 spriteInstanceID, s32 yaw, s32 arg2, PAL_PTR *paletteList, Matrix4f mtx)
 
s32 spr_get_notify_value (s32 arg0)
 
s32 spr_free_sprite (s32 spriteInstanceID)
 
s32 get_npc_comp_imgfx_idx (s32, s32)
 
void set_npc_imgfx_comp (s32, s32, ImgFXType, s32, s32, s32, s32, s32)
 
void set_npc_imgfx_all (s32 arg0, ImgFXType arg1, s32 arg2, s32 arg3, s32 arg4, s32 arg5, s32 arg6)
 
s32 spr_get_comp_position (s32 spriteIdx, s32 compListIdx, s32 *outX, s32 *outY, s32 *outZ)
 
s32 spr_get_npc_raster_info (SpriteRasterInfo *out, s32 npcSpriteID, s32 rasterIndex)
 
PAL_PTRspr_get_npc_palettes (s32 npcSpriteID)
 
s32 spr_get_npc_color_variations (s32 npcSpriteID)
 
void create_shading_palette (Matrix4f mtx, s32 uls, s32 ult, s32 lrs, s32 lrt, s32 alpha, s32)
 
SpriteAnimDataspr_load_sprite (s32 idx, s32 arg1, s32 arg2)
 

Variables

Quad spr_defaultQuad
 
Vp SprPauseVp
 
Vp SprPauseVpAlt
 
Gfx D_802DF3F0 []
 
Gfx D_802DF428 []
 
Gfx D_802DF460 []
 
Gfx D_802DF490 []
 
f32 spr_animUpdateTimeScale
 
PlayerSpriteSet spr_playerSpriteSets [7]
 

Data Structure Documentation

◆ SpriteComponent

struct SpriteComponent
Data Fields
Vec3f compPos
s32 curPalette
s32 curRaster
s32 imgfxIdx
s32 initialized
s32 loopCounter
Vec3f posOffset
s32 properties AABBCCCC : AA = unused?, BB = parent, CCCC = notify value.
s16 * readPos
Vec3i rot
Vec3f scale
f32 waitTime

◆ PlayerCurrentAnimInfo

struct PlayerCurrentAnimInfo
Data Fields
s32 animID
SpriteComponent ** componentList
s32 notifyValue

◆ SpriteAnimComponent

struct SpriteAnimComponent
Data Fields
u16 * cmdList
s16 cmdListSize
Vec3s compOffset

◆ SpriteRasterCacheEntry

struct SpriteRasterCacheEntry
Data Fields
u8 height
IMG_PTR image
s8 palette
s8 quadCacheIndex
u8 width

◆ SpriteAnimData

struct SpriteAnimData
Data Fields
SpriteAnimComponent ** animListStart[VLA]
s32 colorVariations
s32 maxComponents
PAL_PTR * palettesOffset
SpriteRasterCacheEntry ** rastersOffset

◆ SpriteInstance

struct SpriteInstance
Data Fields
SpriteComponent ** componentList
s32 curAnimID
s32 notifyValue
SpriteAnimData * spriteData
s32 spriteIndex

◆ PlayerRastersHeader

struct PlayerRastersHeader
Data Fields
s32 imageData
s32 indexRanges
s32 loadDescriptors

◆ PlayerSpriteSet

struct PlayerSpriteSet
Data Fields
s32 cacheSize Number of cache entries.
s32 initiallyLoaded Flags saying which rasters to load into the cache in spr_init_sprites(), with each bit corresponding to the Nth raster (with LSB = raster 0).
s32 rasterSize Maximum raster size.

◆ PlayerSpriteCacheEntry

struct PlayerSpriteCacheEntry
Data Fields
s32 lazyDeleteTime
IMG_PTR raster
s32 rasterIndex
s32 spriteIndex

◆ Quad

struct Quad
Data Fields
Vtx v[4]

Macro Definition Documentation

◆ SPR_PEACH_BTL_PAL_STRIDE

#define SPR_PEACH_BTL_PAL_STRIDE   4

◆ SPR_PLAYER_COLOR_VARIATIONS

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
PLAYER_SPRITE_MAIN 
PLAYER_SPRITE_AUX1 
PLAYER_SPRITE_AUX2 

◆ anonymous enum

anonymous enum
Enumerator
SPRITE_MODE_PLAYER 
SPRITE_MODE_NPC 

◆ DrawSpriteOptions

Enumerator
DRAW_SPRITE_USE_PLAYER_RASTERS 
DRAW_SPRITE_UPSIDE_DOWN 
DRAW_SPRITE_OVERRIDE_PALETTES 
DRAW_SPRITE_OVERRIDE_YAW 
DRAW_SPRITE_OVERRIDE_ALPHA 

◆ SpriteIDFields

Enumerator
SPRITE_ID_ANIM_MASK 
SPRITE_ID_PAL_MASK 
SPRITE_ID_SPR_MASK 
SPRITE_ID_BACK_FACING 
SPRITE_ID_TAIL_ALLOCATE 

Function Documentation

◆ create_shading_palette()

void create_shading_palette ( Matrix4f mtx,
s32 uls,
s32 ult,
s32 lrs,
s32 lrt,
s32 alpha,
s32 otherModeLBits )

◆ func_802DDEC4()

s32 func_802DDEC4 ( s32 arg0)

Referenced by appendGfx_npc().

◆ get_npc_comp_imgfx_idx()

s32 get_npc_comp_imgfx_idx ( s32 spriteIdx,
s32 compIdx )

◆ imgfx_init()

void imgfx_init ( void )

Referenced by spr_init_sprites().

◆ set_npc_imgfx_all()

◆ set_npc_imgfx_comp()

void set_npc_imgfx_comp ( s32 spriteIdx,
s32 compIdx,
ImgFXType imgfx,
s32 imgfxArg1,
s32 imgfxArg2,
s32 imgfxArg3,
s32 imgfxArg4,
s32 imgfxArg5 )

Referenced by set_npc_imgfx_all().

◆ set_player_imgfx_all()

◆ set_player_imgfx_comp()

void set_player_imgfx_comp ( s32 spriteIdx,
s32 compIdx,
ImgFXType imgfx,
s32 imgfxArg1,
s32 imgfxArg2,
s32 imgfxArg3,
s32 imgfxArg4,
s32 flags )

◆ spr_draw_npc_sprite()

◆ spr_draw_player_sprite()

◆ spr_free_sprite()

◆ spr_get_comp_position()

s32 spr_get_comp_position ( s32 spriteIdx,
s32 compListIdx,
s32 * outX,
s32 * outY,
s32 * outZ )

◆ spr_get_notify_value()

◆ spr_get_npc_color_variations()

◆ spr_get_npc_palettes()

◆ spr_get_npc_raster_info()

s32 spr_get_npc_raster_info ( SpriteRasterInfo * out,
s32 npcSpriteID,
s32 rasterIndex )

◆ spr_get_player_palettes()

◆ spr_get_player_raster()

IMG_PTR spr_get_player_raster ( s32 rasterIndex,
s32 playerSpriteID )

◆ spr_get_player_raster_info()

void spr_get_player_raster_info ( SpriteRasterInfo * out,
s32 playerSpriteID,
s32 rasterIndex )

◆ spr_init_sprites()

◆ spr_load_npc_sprite()

s32 spr_load_npc_sprite ( s32 animID,
u32 * extraAnimList )
Parameters
animID- Set MSB for tail allocation (i.e. 0x80XXYYZZ)

Referenced by create_actor(), create_npc_impl(), load_partner_actor(), npc_reload_all(), pause_init(), pause_partners_init(), pause_spirits_init(), set_npc_sprite(), and update_npcs().

◆ spr_load_sprite()

SpriteAnimData * spr_load_sprite ( s32 idx,
s32 arg1,
s32 arg2 )

◆ spr_render_init()

void spr_render_init ( void )

Referenced by gfx_draw_frame().

◆ spr_update_player_raster_cache()

void spr_update_player_raster_cache ( void )

Referenced by spr_render_init().

◆ spr_update_player_sprite()

◆ spr_update_sprite()

Variable Documentation

◆ D_802DF3F0

Gfx D_802DF3F0[]
extern

Referenced by spr_appendGfx_component().

◆ D_802DF428

Gfx D_802DF428[]
extern

Referenced by spr_appendGfx_component().

◆ D_802DF460

Gfx D_802DF460[]
extern

Referenced by spr_appendGfx_component().

◆ D_802DF490

Gfx D_802DF490[]
extern

Referenced by spr_appendGfx_component().

◆ spr_animUpdateTimeScale

f32 spr_animUpdateTimeScale
extern

◆ spr_defaultQuad

Quad spr_defaultQuad
extern

Referenced by spr_make_quad_for_size().

◆ spr_playerSpriteSets

PlayerSpriteSet spr_playerSpriteSets[7]
extern

Referenced by spr_init_sprites().

◆ SprPauseVp

Vp SprPauseVp
extern

◆ SprPauseVpAlt

Vp SprPauseVpAlt
extern