1
0
Fork 0
mirror of https://github.com/zeldaret/oot.git synced 2025-07-04 06:54:33 +00:00

Some doActionSegment usage cleanup to check R_START_LABEL_

This commit is contained in:
Dragorn421 2022-08-29 09:31:15 +02:00
parent 9ebd76d9af
commit 5fdf0f529f
No known key found for this signature in database
GPG key ID: 32B53D2D16FC4118
3 changed files with 17 additions and 16 deletions

View file

@ -625,6 +625,11 @@ typedef enum {
/* 0x1D */ DO_ACTION_MAX /* 0x1D */ DO_ACTION_MAX
} DoAction; } DoAction;
// 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 { typedef struct {
/* 0x0000 */ View view; /* 0x0000 */ View view;
/* 0x0128 */ Vtx* actionVtx; /* 0x0128 */ Vtx* actionVtx;

View file

@ -40,7 +40,7 @@ void Interface_Init(PlayState* play) {
DmaMgr_SendRequest1(interfaceCtx->parameterSegment, (u32)_parameter_staticSegmentRomStart, parameterSize, DmaMgr_SendRequest1(interfaceCtx->parameterSegment, (u32)_parameter_staticSegmentRomStart, parameterSize,
"../z_construct.c", 162); "../z_construct.c", 162);
interfaceCtx->doActionSegment = GameState_Alloc(&play->state, 0x480, "../z_construct.c", 166); interfaceCtx->doActionSegment = GameState_Alloc(&play->state, 3 * DO_ACTION_TEX_SIZE, "../z_construct.c", 166);
osSyncPrintf("DOアクション テクスチャ初期=%x\n", 0x480); // "DO Action Texture Initialization" osSyncPrintf("DOアクション テクスチャ初期=%x\n", 0x480); // "DO Action Texture Initialization"
osSyncPrintf("parameter->do_actionSegment=%x\n", interfaceCtx->doActionSegment); osSyncPrintf("parameter->do_actionSegment=%x\n", interfaceCtx->doActionSegment);
@ -48,26 +48,26 @@ void Interface_Init(PlayState* play) {
ASSERT(interfaceCtx->doActionSegment != NULL, "parameter->do_actionSegment != NULL", "../z_construct.c", 169); ASSERT(interfaceCtx->doActionSegment != NULL, "parameter->do_actionSegment != NULL", "../z_construct.c", 169);
if (gSaveContext.language == LANGUAGE_ENG) { if (gSaveContext.language == LANGUAGE_ENG) {
doActionOffset = 0; doActionOffset = (LANGUAGE_ENG * DO_ACTION_MAX + DO_ACTION_ATTACK) * DO_ACTION_TEX_SIZE;
} else if (gSaveContext.language == LANGUAGE_GER) { } else if (gSaveContext.language == LANGUAGE_GER) {
doActionOffset = 0x2B80; doActionOffset = (LANGUAGE_GER * DO_ACTION_MAX + DO_ACTION_ATTACK) * DO_ACTION_TEX_SIZE;
} else { } else {
doActionOffset = 0x5700; doActionOffset = (LANGUAGE_FRA * DO_ACTION_MAX + DO_ACTION_ATTACK) * DO_ACTION_TEX_SIZE;
} }
DmaMgr_SendRequest1(interfaceCtx->doActionSegment, (u32)_do_action_staticSegmentRomStart + doActionOffset, 0x300, DmaMgr_SendRequest1(interfaceCtx->doActionSegment, (u32)_do_action_staticSegmentRomStart + doActionOffset, 0x300,
"../z_construct.c", 174); "../z_construct.c", 174);
if (gSaveContext.language == LANGUAGE_ENG) { if (gSaveContext.language == LANGUAGE_ENG) {
doActionOffset = 0x480; doActionOffset = (LANGUAGE_ENG * DO_ACTION_MAX + DO_ACTION_RETURN) * DO_ACTION_TEX_SIZE;
} else if (gSaveContext.language == LANGUAGE_GER) { } else if (gSaveContext.language == LANGUAGE_GER) {
doActionOffset = 0x3000; doActionOffset = (LANGUAGE_GER * DO_ACTION_MAX + DO_ACTION_RETURN) * DO_ACTION_TEX_SIZE;
} else { } else {
doActionOffset = 0x5B80; doActionOffset = (LANGUAGE_FRA * DO_ACTION_MAX + DO_ACTION_RETURN) * DO_ACTION_TEX_SIZE;
} }
DmaMgr_SendRequest1(interfaceCtx->doActionSegment + 0x300, (u32)_do_action_staticSegmentRomStart + doActionOffset, DmaMgr_SendRequest1(interfaceCtx->doActionSegment + DO_ACTION_TEX_SIZE * 2,
0x180, "../z_construct.c", 178); (u32)_do_action_staticSegmentRomStart + doActionOffset, 0x180, "../z_construct.c", 178);
interfaceCtx->iconItemSegment = GameState_Alloc(&play->state, 0x4000, "../z_construct.c", 190); interfaceCtx->iconItemSegment = GameState_Alloc(&play->state, 0x4000, "../z_construct.c", 190);

View file

@ -4,11 +4,6 @@
#include "assets/textures/do_action_static/do_action_static.h" #include "assets/textures/do_action_static/do_action_static.h"
#include "assets/textures/icon_item_static/icon_item_static.h" #include "assets/textures/icon_item_static/icon_item_static.h"
// 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 { typedef struct {
/* 0x00 */ u8 sceneId; /* 0x00 */ u8 sceneId;
/* 0x01 */ u8 flags1; /* 0x01 */ u8 flags1;
@ -2080,8 +2075,9 @@ void Interface_LoadActionLabel(InterfaceContext* interfaceCtx, u16 action, s16 l
action += DO_ACTION_MAX; action += DO_ACTION_MAX;
} }
if ((action != DO_ACTION_NONE) && (action != DO_ACTION_MAX + DO_ACTION_NONE) && if ((action != LANGUAGE_ENG * DO_ACTION_MAX + DO_ACTION_NONE) &&
(action != 2 * DO_ACTION_MAX + DO_ACTION_NONE)) { (action != LANGUAGE_GER * DO_ACTION_MAX + DO_ACTION_NONE) &&
(action != LANGUAGE_FRA * DO_ACTION_MAX + DO_ACTION_NONE)) {
osCreateMesgQueue(&interfaceCtx->loadQueue, &interfaceCtx->loadMsg, 1); osCreateMesgQueue(&interfaceCtx->loadQueue, &interfaceCtx->loadMsg, 1);
DmaMgr_SendRequest2(&interfaceCtx->dmaRequest_160, DmaMgr_SendRequest2(&interfaceCtx->dmaRequest_160,
interfaceCtx->doActionSegment + (loadOffset * DO_ACTION_TEX_SIZE), interfaceCtx->doActionSegment + (loadOffset * DO_ACTION_TEX_SIZE),