summaryrefslogtreecommitdiff
path: root/src/code
diff options
context:
space:
mode:
authorengineer124 <engineer124engineer124@gmail.com>2022-05-23 18:39:26 +1000
committerengineer124 <engineer124engineer124@gmail.com>2022-05-23 18:39:26 +1000
commitc9c932a5fe3d6f6a238fdb70ab5217a37b2fdddb (patch)
tree0bb61fb59b1f35acbd589cdc167ebd7854d5f915 /src/code
parent1e5043b940e7b7eac05ec8050610570d4f42ea92 (diff)
More docs
Diffstat (limited to 'src/code')
-rw-r--r--src/code/z_message.c4
-rw-r--r--src/code/z_parameter.c25
2 files changed, 19 insertions, 10 deletions
diff --git a/src/code/z_message.c b/src/code/z_message.c
index 68634e1a3..784c97977 100644
--- a/src/code/z_message.c
+++ b/src/code/z_message.c
@@ -343,9 +343,9 @@ void func_80151938(GlobalContext* globalCtx, u16 textId) {
if (interfaceCtx->unk_222 == 0) {
if (textId != 0x1B93) {
- Interface_SetDoAction(globalCtx, 0x10);
+ Interface_SetDoAction(globalCtx, DO_ACTION_NEXT);
} else if (textId != 0xF8) {
- Interface_SetDoAction(globalCtx, 6);
+ Interface_SetDoAction(globalCtx, DO_ACTION_DECIDE);
}
}
msgCtx->unk1203C = msgCtx->unk1203A;
diff --git a/src/code/z_parameter.c b/src/code/z_parameter.c
index 8f38dd618..3d47f35e8 100644
--- a/src/code/z_parameter.c
+++ b/src/code/z_parameter.c
@@ -13,6 +13,11 @@ void func_801663C4(u8* arg0, u8* arg1, u32 arg2);
extern Gfx D_0E0001C8[]; // Display List
extern Gfx D_0E0002E0[]; // Display List
+// TODO extract this information from the texture definitions themselves
+#define DO_ACTION_TEX_WIDTH 48
+#define DO_ACTION_TEX_HEIGHT 16
+#define DO_ACTION_TEX_SIZE ((DO_ACTION_TEX_WIDTH * DO_ACTION_TEX_HEIGHT) / 2) // (sizeof(gCheckDoActionENGTex))
+
typedef struct {
/* 0x00 */ u8 scene;
/* 0x01 */ u8 flags1;
@@ -2981,9 +2986,10 @@ void Interface_LoadActionLabel(InterfaceContext* interfaceCtx, u16 action, s16 l
if (action != DO_ACTION_NONE) {
osCreateMesgQueue(&interfaceCtx->loadQueue, &interfaceCtx->loadMsg, 1);
- DmaMgr_SendRequestImpl(&interfaceCtx->dmaRequest_184, (u32)interfaceCtx->doActionSegment + (loadOffset * 0x180),
- (u32)SEGMENT_ROM_START(do_action_static) + (action * 0x180), 0x180, 0,
- &interfaceCtx->loadQueue, 0);
+ DmaMgr_SendRequestImpl(&interfaceCtx->dmaRequest_184,
+ (u32)interfaceCtx->doActionSegment + (loadOffset * DO_ACTION_TEX_SIZE),
+ (u32)SEGMENT_ROM_START(do_action_static) + (action * DO_ACTION_TEX_SIZE),
+ DO_ACTION_TEX_SIZE, 0, &interfaceCtx->loadQueue, 0);
osRecvMesg(&interfaceCtx->loadQueue, NULL, OS_MESG_BLOCK);
return;
}
@@ -3708,9 +3714,9 @@ void Interface_DrawItemButtons(GlobalContext* globalCtx) {
gDPSetEnvColor(OVERLAY_DISP++, 0, 0, 0, 0);
gDPSetCombineLERP(OVERLAY_DISP++, PRIMITIVE, ENVIRONMENT, TEXEL0, ENVIRONMENT, TEXEL0, 0, PRIMITIVE, 0,
PRIMITIVE, ENVIRONMENT, TEXEL0, ENVIRONMENT, TEXEL0, 0, PRIMITIVE, 0);
- gDPLoadTextureBlock_4b(OVERLAY_DISP++, interfaceCtx->doActionSegment + 0x300, G_IM_FMT_IA, 48, 16, 0,
- G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK,
- G_TX_NOLOD, G_TX_NOLOD);
+ gDPLoadTextureBlock_4b(OVERLAY_DISP++, interfaceCtx->doActionSegment + DO_ACTION_TEX_SIZE * 2, G_IM_FMT_IA,
+ DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 0, G_TX_NOMIRROR | G_TX_WRAP,
+ G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD);
gSPTextureRectangle(OVERLAY_DISP++, 0x01F8, 0x0054, 0x02D4, 0x009C, G_TX_RENDERTILE, 0, 0, 0x04A6, 0x04A6);
}
}
@@ -4028,10 +4034,13 @@ void func_80118BA4(GlobalContext* globalCtx) {
gSPMatrix(OVERLAY_DISP++, Matrix_NewMtx(globalCtx->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
gSPVertex(OVERLAY_DISP++, &interfaceCtx->actionVtx[8], 4, 0);
+ // Draw Action Label
if (((interfaceCtx->unk_210 < 2) || (interfaceCtx->unk_210 == 3))) {
- OVERLAY_DISP = func_8010DE38(OVERLAY_DISP, interfaceCtx->doActionSegment, 3, 0x30, 0x10, 0);
+ OVERLAY_DISP =
+ func_8010DE38(OVERLAY_DISP, interfaceCtx->doActionSegment, 3, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 0);
} else {
- OVERLAY_DISP = func_8010DE38(OVERLAY_DISP, interfaceCtx->doActionSegment + 0x180, 3, 0x30, 0x10, 0);
+ OVERLAY_DISP = func_8010DE38(OVERLAY_DISP, interfaceCtx->doActionSegment + DO_ACTION_TEX_SIZE, 3,
+ DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 0);
}
CLOSE_DISPS(globalCtx->state.gfxCtx);