6#define MAX_HUD_CACHE_ENTRIES 192
71 .tc = { 0x800, 0x800 },
125 s32*
pos = (s32*)anim;
187 if (
entry->id == -1) {
201 *
pos = (u16)(*
pos) | (i << 16);
205 }
else if (
entry->id == raster) {
209 *
pos = (u16)(*
pos) | (i << 16);
223 if (
entry->id == -1) {
237 *
pos = (u16)(*
pos) | (i << 16);
241 }
else if (
entry->id == palette) {
245 *
pos = (u16)(*
pos) | (i << 16);
266 s32 widthScale, heightScale;
270 s32 uly, lry, ulx, lrx;
278 u16 renderPosX, renderPosY;
397 lry = uly + 1024.0 / heightScale * 32.0;
432 lrx = ulx + 1024.0 / widthScale * 64.0;
492 gDPLoadTextureTile(
gMainGfxPos++, imageAddr,
G_IM_FMT_RGBA,
G_IM_SIZ_32b,
texSizeX,
texSizeY,
uls,
ult,
lrs,
lrt, 0,
495 gDPLoadTextureTile(
gMainGfxPos++, imageAddr,
G_IM_FMT_RGBA,
G_IM_SIZ_32b,
texSizeX,
texSizeY,
uls,
ult,
lrs,
lrt, 0,
520 gDPLoadTextureTile_4b(
gMainGfxPos++, imageAddr,
G_IM_FMT_CI,
texSizeX,
texSizeY,
uls,
ult,
lrs,
lrt, 0,
525 gDPLoadTextureTile_4b(
gMainGfxPos++, imageAddr,
G_IM_FMT_CI,
texSizeX,
texSizeY,
uls,
ult,
lrs,
lrt, 0,
529 gDPLoadTextureTile_4b(
gMainGfxPos++, imageAddr,
G_IM_FMT_CI,
texSizeX,
texSizeY,
uls,
ult,
lrs,
lrt, 0,
533 gDPLoadTextureTile_4b(
gMainGfxPos++, imageAddr,
G_IM_FMT_CI,
texSizeX,
texSizeY,
uls,
ult,
lrs,
lrt, 0,
537 gDPLoadTextureTile_4b(
gMainGfxPos++, imageAddr,
G_IM_FMT_CI,
texSizeX,
texSizeY,
uls,
ult,
lrs,
lrt, 0,
543 gDPLoadTextureTile_4b(
gMainGfxPos++, imageAddr,
G_IM_FMT_CI,
texSizeX,
texSizeY,
uls,
ult,
lrs,
lrt, 0,
555 gDPLoadTextureTile(
gMainGfxPos++, imageAddr,
G_IM_FMT_IA,
G_IM_SIZ_8b,
texSizeX,
texSizeY,
uls,
ult,
lrs,
lrt, 0,
559 gDPLoadTextureTile(
gMainGfxPos++, imageAddr,
G_IM_FMT_IA,
G_IM_SIZ_8b,
texSizeX,
texSizeY,
uls,
ult,
lrs,
lrt, 0,
563 gDPLoadTextureTile(
gMainGfxPos++, imageAddr,
G_IM_FMT_IA,
G_IM_SIZ_8b,
texSizeX,
texSizeY,
uls,
ult,
lrs,
lrt, 0,
567 gDPLoadTextureTile(
gMainGfxPos++, imageAddr,
G_IM_FMT_IA,
G_IM_SIZ_8b,
texSizeX,
texSizeY,
uls,
ult,
lrs,
lrt, 0,
572 gDPLoadTextureTile(
gMainGfxPos++, imageAddr,
G_IM_FMT_IA,
G_IM_SIZ_8b,
texSizeX,
texSizeY,
uls,
ult,
lrs,
lrt, 0,
576 gDPLoadTextureTile(
gMainGfxPos++, imageAddr,
G_IM_FMT_IA,
G_IM_SIZ_8b,
texSizeX,
texSizeY,
uls,
ult,
lrs,
lrt, 0,
590 ulx += 1024.0 / widthScale * 64.0;
599 uly += 1024.0 / heightScale * 32.0;
651 (*gHudElements)[i] =
NULL;
783 if (
elem->updateTimer == 0) {
787 elem->unkImgScale[0] +=
elem->deltaSizeX;
788 elem->unkImgScale[1] +=
elem->deltaSizeY;
818 switch (*nextPos++) {
1020 tileSizePreset = *nextPos++;
1045 tileSizePreset = *nextPos++;
1046 drawSizePreset = *nextPos++;
1083 uniformScale = (
f32)*nextPos++;
1084 uniformScale /= 65536;
1203 for (i = 0; i < count - 1; i++) {
1204 for (
j = i + 1;
j < count;
j++) {
1207 if ((*
gHudElements)[
el1]->worldPosOffset.z < (*gHudElements)[
el2]->worldPosOffset.z) {
1214 for (i = 0; i < count; i++) {
1319 for (i = 0; i < count - 1; i++) {
1320 for (
j = i + 1;
j < count;
j++) {
1323 if ((*
gHudElements)[
el1]->worldPosOffset.z < (*gHudElements)[
el2]->worldPosOffset.z) {
1330 for (i = 0; i < count; i++) {
1523 ifxImg.xOffset = -width / 2;
1524 ifxImg.yOffset = height / 2;
1526 ifxImg.palette = palette;
1547 vtx2->v.ob[0] = -width / 2;
1548 vtx2->v.ob[1] = -height / 2;
1551 vtx2->v.tc[1] = height * 32;
1553 vtx2[0].v.ob[0] = (width / 2) - 1;
1554 vtx2[0].v.ob[1] = -height / 2;
1555 vtx2[0].v.ob[2] = 0;
1556 vtx2[0].v.tc[0] = width * 32;
1557 vtx2[0].v.tc[1] = height * 32;
1558 vtx[2].v.ob[0] = (width / 2) - 1;
1559 vtx[2].v.ob[1] = (height / 2) - 1;
1561 vtx[2].v.tc[0] = width * 32;
1563 vtx[3].v.ob[0] = -width / 2;
1564 vtx[3].v.ob[1] = (height / 2) - 1;
1644 for (i = 0; i < count - 1; i++) {
1645 for (
j = i + 1;
j < count;
j++) {
1649 if ((*
gHudElements)[
el1]->worldPosOffset.z < (*gHudElements)[
el2]->worldPosOffset.z) {
1665 for (i = 0; i < count; i++) {
1706 for (i = 0; i < count - 1; i++) {
1707 for (
j = i + 1;
j < count;
j++) {
1711 if ((*
gHudElements)[
el1]->worldPosOffset.z < (*gHudElements)[
el2]->worldPosOffset.z) {
1727 for (i = 0; i < count; i++) {
1767 guOrthoF(
camera->mtxPerspective, 0.0f, 320.0f, -240.0f, 0.0f, -1000.0f, 1000.0f, 1.0f);
1839 s32 offsetX, offsetY;
1914 offsetX = -
elem->unkImgScale[0] / 2;
1915 offsetY = -
elem->unkImgScale[1] / 2;
2120 if (opacity == 255) {
2137 element->hudTransform = transform;
2141 transform->
pos.
x = 0.0f;
2142 transform->
pos.
y = 0.0f;
2143 transform->
pos.
z = 0.0f;
2144 transform->
rot.
x = 0.0f;
2145 transform->
rot.
y = 0.0f;
2146 transform->
rot.
z = 0.0f;
2147 transform->
scale.
x = 1.0f;
2148 transform->
scale.
y = 1.0f;
2149 transform->
scale.
z = 1.0f;
2159 element->hudTransform = transform;
2163 transform->
pos.
x = 0.0f;
2164 transform->
pos.
y = 0.0f;
2165 transform->
pos.
z = 0.0f;
2166 transform->
rot.
x = 0.0f;
2167 transform->
rot.
y = 0.0f;
2168 transform->
rot.
z = 0.0f;
2169 transform->
scale.
x = 1.0f;
2170 transform->
scale.
y = 1.0f;
2171 transform->
scale.
z = 1.0f;
2179 element->hudTransform = transform;
2183 transform->
pos.
x = 0.0f;
2184 transform->
pos.
y = 0.0f;
2185 transform->
pos.
z = 0.0f;
2186 transform->
rot.
x = 0.0f;
2187 transform->
rot.
y = 0.0f;
2188 transform->
rot.
z = 0.0f;
2189 transform->
scale.
x = 1.0f;
2190 transform->
scale.
y = 1.0f;
2191 transform->
scale.
z = 1.0f;
2213 transform->
pos.
x = x;
2214 transform->
pos.
y = y;
2215 transform->
pos.
z = z;
2235 transform->
rot.
x = x;
2236 transform->
rot.
y = y;
2237 transform->
rot.
z = z;
BSS s32 PopupMenu_SelectedIndex
#define general_heap_malloc
#define ASSERT(condition)
@ CAMERA_FLAG_LEAD_PLAYER
s32 imgfx_appendGfx_component(s32, ImgFXTexture *, u32, Matrix4f)
s32 imgfx_get_free_instances(s32)
s32 general_heap_free(void *data)
void imgfx_release_instance(u32)
void imgfx_update(u32, ImgFXType, s32, s32, s32, s32, s32)
void * heap_malloc(s32 size)
void set_cam_viewport(s16 id, s16 x, s16 y, s16 width, s16 height)
s32 func_80144E4C(s32 id)
BSS HudCacheEntry gHudElementCacheTablePaletteWorld[192]
Gfx gHudElementsDLBackUI[]
void hud_element_setup_cam(void)
u8 * gHudElementCacheBuffer
void hud_element_create_transform_C(s32 id)
void hud_element_get_render_pos(s32 id, s32 *x, s32 *y)
void hud_element_set_aux_cache(void *base, s32 size)
void func_80144238(s32 id)
HudCacheEntry * gHudElementCacheTablePalette
BSS HudCacheEntry gHudElementCacheTableRasterWorld[192]
void render_hud_element(HudElement *hudElement)
void hud_element_create_transform_A(s32 id)
void hud_element_set_scale(s32 index, f32 scale)
void hud_element_set_alpha(s32 id, s32 opacity)
void func_80144258(s32 id)
void render_hud_elements_frontUI(void)
BSS HudElementList * gHudElements
s32 hud_element_update(HudElement *hudElement)
s32 * gHudElementCacheSize
void func_80144278(s32 id)
void hud_element_draw_without_clipping(s32 id)
void hud_element_set_script(s32 id, HudScript *anim)
void update_hud_elements(void)
void render_hud_elements_backUI(void)
HudCacheEntry * gHudElementCacheTableRaster
#define MAX_HUD_CACHE_ENTRIES
HudElementSize gHudElementSizes[]
BSS u8 * gHudElementCacheBufferWorld
void hud_element_set_render_depth(s32 id, s32 z)
void hud_element_create_transform_B(s32 id)
HudScript * hud_element_get_script(s32 id)
BSS HudElementList gHudElementsWorld
void hud_element_set_transform_pos(s32 id, f32 x, f32 y, f32 z)
void hud_element_clear_cache(void)
void hud_element_draw_rect(HudElement *hudElement, s16 texSizeX, s16 texSizeY, s16 drawSizeX, s16 drawSizeY, s16 offsetX, s16 offsetY, s32 clamp, s32 dropShadow)
BSS s32 gHudElementCacheSizeBattle
void hud_element_draw_next(s32 id)
void init_hud_element_list(void)
void hud_element_set_tint(s32 id, s32 r, s32 g, s32 b)
BSS HudElementList gHudElementsBattle
void hud_element_set_transform_rotation(s32 id, f32 x, f32 y, f32 z)
void func_80143C48(s32 elemID, s32 arg1, s32 camID)
void hud_element_use_preset_size(s32 id, s8 sizePreset)
BSS s32 gHudElementCacheSizeWorld
BSS HudCacheEntry gHudElementCacheTableRasterBattle[192]
BSS u8 * gHudElementCacheBufferBattle
void hud_element_set_render_pos(s32 id, s32 x, s32 y)
void hud_element_set_transform_rotation_pivot(s32 id, s32 dx, s32 dy)
s32 hud_element_create(HudScript *anim)
Creates a new HUD element and returns its ID.
void hud_element_load_script(HudElement *hudElement, HudScript *anim)
BSS HudCacheEntry gHudElementCacheTablePaletteBattle[192]
HudElement * get_hud_element(s32 id)
void hud_element_set_flags(s32 id, s32 flags)
Turns on the given flags.
void hud_element_clear_flags(s32 id, s32 flags)
Turns off the given flags.
void hud_element_draw_clipped(s32 id)
void hud_element_set_transform_scale(s32 id, f32 x, f32 y, f32 z)
Gfx gHudElementsDLFrontUI[]
s32 gHudElementCacheCapacity
void hud_element_free(s32 id)
void render_transformed_hud_elements(void)
void func_80144E74(s32 id, s32 arg1)
void func_80144218(s32 id)
void hud_element_free_transform(s32 id)
void copy_world_hud_element_ref_to_battle(s32 worldID, s32 battleID)
void draw_hud_element_internal(s32 id, s32 clipMode)
void ALT_clear_hud_element_cache(void)
#define HUD_ELEMENT_BATTLE_ID_MASK
HudElement * HudElementList[320]
@ HUD_ELEMENT_OP_SetPivot
@ HUD_ELEMENT_OP_SetVisible
@ HUD_ELEMENT_OP_AddTexelOffsetY
@ HUD_ELEMENT_OP_SetScale
@ HUD_ELEMENT_OP_SetImage
@ HUD_ELEMENT_OP_RandomBranch
@ HUD_ELEMENT_OP_PlaySound
@ HUD_ELEMENT_OP_SetSizesAutoScale
@ HUD_ELEMENT_OP_SetTexelOffset
@ HUD_ELEMENT_OP_RandomDelay
@ HUD_ELEMENT_OP_SetFlags
@ HUD_ELEMENT_OP_SetAlpha
@ HUD_ELEMENT_OP_SetTileSize
@ HUD_ELEMENT_OP_SetSizesFixedScale
@ HUD_ELEMENT_OP_RandomRestart
@ HUD_ELEMENT_OP_SetCustomSize
@ HUD_ELEMENT_OP_AddTexelOffsetX
@ HUD_ELEMENT_OP_ClearFlags
@ HUD_ELEMENT_OP_SetHidden
@ HUD_ELEMENT_FLAG_200000
@ HUD_ELEMENT_FLAG_ANTIALIASING
@ HUD_ELEMENT_FLAG_4000000
@ HUD_ELEMENT_FLAG_DELETE
@ HUD_ELEMENT_FLAG_DISABLED
@ HUD_ELEMENT_FLAG_SCALED
@ HUD_ELEMENT_FLAG_1000000
@ HUD_ELEMENT_FLAG_10000000
@ HUD_ELEMENT_FLAG_MEMOFFSET
@ HUD_ELEMENT_FLAG_FMT_IA8
@ HUD_ELEMENT_FLAG_CUSTOM_SIZE
@ HUD_ELEMENT_FLAG_FIXEDSCALE
@ HUD_ELEMENT_FLAG_REPEATED
@ HUD_ELEMENT_FLAG_INITIALIZED
@ HUD_ELEMENT_FLAG_8000000
@ HUD_ELEMENT_FLAG_DROP_SHADOW
@ HUD_ELEMENT_FLAG_2000000
@ HUD_ELEMENT_FLAG_40000000
@ HUD_ELEMENT_FLAG_NO_FOLD
@ HUD_ELEMENT_FLAG_ANIMATION_FINISHED
@ HUD_ELEMENT_FLAG_BATTLE
@ HUD_ELEMENT_FLAG_FRONTUI
@ HUD_ELEMENT_FLAG_FMT_CI4
@ HUD_ELEMENT_FLAG_TRANSFORM
@ HUD_ELEMENT_FLAG_FILTER_TEX
@ HUD_ELEMENT_FLAG_TRANSPARENT
@ HUD_ELEMENT_DRAW_FIRST_WITH_CLIPPING
@ HUD_ELEMENT_DRAW_FIRST_WITHOUT_CLIPPING
void sfx_play_sound(s32 soundID)
#define X10(f)
X.10 fixed-point literal.
#define VIRTUAL_TO_PHYSICAL(addr)
u8 Addr[]
Linker symbol address, as in ld_addrs.h.
GameStatus * gGameStatusPtr
DisplayContext * gDisplayContext