mirror of
https://github.com/pmret/papermario.git
synced 2024-11-08 12:02:30 +01:00
Decompile most of code_b72b0_len_15ed0.c (#256)
This commit is contained in:
parent
8fbdc83055
commit
3fd09d2a7c
@ -331,7 +331,13 @@ typedef struct Entity {
|
||||
|
||||
typedef Entity* EntityList[MAX_ENTITIES];
|
||||
|
||||
typedef UNK_TYPE* DynamicEntityList[MAX_DYNAMIC_ENTITIES];
|
||||
typedef struct DynamicEntity {
|
||||
/* 0x00 */ s32 flags;
|
||||
/* 0x04 */ void (*update)(void);
|
||||
/* 0x08 */ void (*draw)(void);
|
||||
} DynamicEntity;
|
||||
|
||||
typedef DynamicEntity* DynamicEntityList[MAX_DYNAMIC_ENTITIES];
|
||||
|
||||
typedef struct StaticEntityData {
|
||||
/* 0x00 */ s16 flags;
|
||||
@ -1828,4 +1834,23 @@ typedef struct Temp8025D160_2 {
|
||||
/* 0x2C */ s32 unk_2C;
|
||||
} Temp8025D160_2; // size = 0x30 (?)
|
||||
|
||||
typedef struct EntityModel {
|
||||
/* 0x00 */ s32 flags;
|
||||
/* 0x04 */ u8 renderMode;
|
||||
/* 0x05 */ u8 unk_05;
|
||||
/* 0x06 */ u8 unk_06;
|
||||
/* 0x07 */ u8 unk_07;
|
||||
/* 0x08 */ f32 nextFrameTime; ///< Set to 1.0 after each update
|
||||
/* 0x0C */ f32 timeScale; ///< Default is 1.0
|
||||
/* 0x10 */ s32* cmdListReadPos;
|
||||
/* 0x14 */ Gfx* displayList;
|
||||
/* 0x18 */ Matrix4s transform;
|
||||
/* 0x58 */ s32 cmdListSavedPos;
|
||||
/* 0x5C */ Vtx* vertexArray;
|
||||
/* 0x60 */ UNK_FUN_PTR(fpSetupGfxCallback);
|
||||
/* 0x64 */ s32 setupGfxCallbackArg0;
|
||||
} EntityModel; // size = 0x68
|
||||
|
||||
typedef EntityModel* EntityModelList[MAX_ENTITY_MODELS];
|
||||
|
||||
#endif
|
||||
|
@ -215,7 +215,7 @@ ItemEntity* get_item_entity(s32 itemEntityIndex);
|
||||
s32 make_item_entity_nodelay(s32 itemID, f32 x, f32 y, f32 z, ItemSpawnMode itemSpawnMode, s32 pickupVar);
|
||||
void set_item_entity_flags(s32 itemEntityIndex, s32 flag);
|
||||
|
||||
s32 bind_dynamic_entity_7(s32* updateFunc, void (*drawFunc)(void));
|
||||
s32 bind_dynamic_entity_7(void (*updateFunc)(void), void (*drawFunc)(void));
|
||||
s32 get_dynamic_entity(s32 arg0);
|
||||
|
||||
void set_cam_viewport(s16 id, s16 x, s16 y, s16 width, s16 height);
|
||||
|
@ -36,6 +36,7 @@
|
||||
|
||||
#define MAX_ANIMATED_MODELS 16
|
||||
#define MAX_ANIMATED_MESHES 16
|
||||
#define MAX_ENTITY_MODELS 256
|
||||
#define MAX_MODELS 256
|
||||
#define MAX_SCRIPTS 128
|
||||
#define MAX_NPCS 64
|
||||
@ -54,8 +55,7 @@
|
||||
{ \
|
||||
ScriptList** temp = &gCurrentScriptListPtr; \
|
||||
s32 *numScripts = &gNumScripts; \
|
||||
new = heap_malloc(sizeof(ScriptInstance)); \
|
||||
(**temp)[index] = new; \
|
||||
(**temp)[index] = new = heap_malloc(sizeof(ScriptInstance)); \
|
||||
(*numScripts)++; \
|
||||
ASSERT(new != NULL); \
|
||||
}
|
||||
|
@ -1,6 +1,10 @@
|
||||
#include "common.h"
|
||||
|
||||
extern s32** gCurrentEntityModelList;
|
||||
extern EntityModelList gWorldEntityModelList;
|
||||
extern EntityModelList gBattleEntityModelList;
|
||||
extern EntityModelList* gCurrentEntityModelList;
|
||||
extern s32 gEntityModelCount;
|
||||
extern s32 D_8014C260[];
|
||||
extern s32 D_80154378; // entity fog enabled
|
||||
extern s32 D_8015437C; // entity fog red
|
||||
extern s32 D_80154380; // entity fog green
|
||||
@ -9,17 +13,194 @@ extern s32 D_80154388; // entity fog alpha
|
||||
extern s32 D_8015438C; // entity fog dist min
|
||||
extern s32 D_80154390; // entity fog dist max
|
||||
|
||||
INCLUDE_ASM(s32, "code_b72b0_len_15ed0", clear_entity_models);
|
||||
s32 step_entity_rendercmd(EntityModel* entityModel);
|
||||
|
||||
INCLUDE_ASM(s32, "code_b72b0_len_15ed0", init_entity_models);
|
||||
void clear_entity_models(void) {
|
||||
s32 i;
|
||||
|
||||
INCLUDE_ASM(s32, "code_b72b0_len_15ed0", load_entity_model);
|
||||
if (!gGameStatusPtr->isBattle) {
|
||||
gCurrentEntityModelList = &gWorldEntityModelList;
|
||||
} else {
|
||||
gCurrentEntityModelList = &gBattleEntityModelList;
|
||||
}
|
||||
|
||||
INCLUDE_ASM(s32, "code_b72b0_len_15ed0", ALT_load_entity_model);
|
||||
for (i = 0; i < MAX_ENTITY_MODELS; i++) {
|
||||
(*gCurrentEntityModelList)[i] = NULL;
|
||||
}
|
||||
|
||||
INCLUDE_ASM(s32, "code_b72b0_len_15ed0", update_entity_rendercmd);
|
||||
D_8015437C = 10;
|
||||
D_80154380 = 10;
|
||||
D_80154384 = 10;
|
||||
D_80154388 = 10;
|
||||
D_8015438C = 800;
|
||||
gEntityModelCount = 0;
|
||||
D_80154378 = 0;
|
||||
D_80154390 = 1000;
|
||||
}
|
||||
|
||||
INCLUDE_ASM(s32, "code_b72b0_len_15ed0", step_entity_rendercmd);
|
||||
void init_entity_models(void) {
|
||||
s32 i;
|
||||
|
||||
if (!gGameStatusPtr->isBattle) {
|
||||
gCurrentEntityModelList = &gWorldEntityModelList;
|
||||
} else {
|
||||
gCurrentEntityModelList = &gBattleEntityModelList;
|
||||
}
|
||||
|
||||
D_8015437C = 10;
|
||||
D_80154380 = 10;
|
||||
D_80154384 = 10;
|
||||
D_80154388 = 10;
|
||||
D_8015438C = 800;
|
||||
gEntityModelCount = 0;
|
||||
D_80154378 = 0;
|
||||
D_80154390 = 1000;
|
||||
}
|
||||
|
||||
s32 load_entity_model(s32* cmdList) {
|
||||
EntityModel* newEntityModel;
|
||||
s32 i;
|
||||
|
||||
for (i = 0; i < MAX_ENTITY_MODELS; i++) {
|
||||
if ((*gCurrentEntityModelList)[i] == NULL) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
ASSERT(i < MAX_ENTITY_MODELS);
|
||||
|
||||
{
|
||||
s32* entityModelCount;
|
||||
(*gCurrentEntityModelList)[i] = newEntityModel = heap_malloc(sizeof(EntityModel));
|
||||
entityModelCount = &gEntityModelCount;
|
||||
(*entityModelCount)++;
|
||||
}
|
||||
ASSERT(newEntityModel != NULL);
|
||||
|
||||
newEntityModel->flags = 0x17;
|
||||
newEntityModel->renderMode = 1;
|
||||
newEntityModel->displayList = NULL;
|
||||
newEntityModel->cmdListReadPos = cmdList;
|
||||
newEntityModel->nextFrameTime = 1.0f;
|
||||
newEntityModel->timeScale = 1.0f;
|
||||
if (cmdList == NULL) {
|
||||
newEntityModel->cmdListReadPos = &D_8014C260;
|
||||
}
|
||||
newEntityModel->vertexArray = NULL;
|
||||
newEntityModel->fpSetupGfxCallback = NULL;
|
||||
newEntityModel->cmdListSavedPos = newEntityModel->cmdListReadPos;
|
||||
|
||||
if (gGameStatusPtr->isBattle) {
|
||||
i |= 0x800;
|
||||
}
|
||||
return i;
|
||||
}
|
||||
|
||||
s32 ALT_load_entity_model(s32* cmdList) {
|
||||
EntityModel* newEntityModel;
|
||||
Gfx* newDisplayList;
|
||||
s32 i;
|
||||
|
||||
for (i = 0; i < MAX_ENTITY_MODELS; i++) {
|
||||
if ((*gCurrentEntityModelList)[i] == NULL) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
ASSERT(i < MAX_ENTITY_MODELS);
|
||||
|
||||
{
|
||||
s32* entityModelCount;
|
||||
(*gCurrentEntityModelList)[i] = newEntityModel = heap_malloc(sizeof(EntityModel));
|
||||
entityModelCount = &gEntityModelCount;
|
||||
(*entityModelCount)++;
|
||||
}
|
||||
|
||||
ASSERT(newEntityModel != NULL);
|
||||
|
||||
newEntityModel->displayList = newDisplayList = heap_malloc(sizeof(Gfx) * 2);
|
||||
ASSERT(newDisplayList != NULL);
|
||||
|
||||
newEntityModel->flags = 0x417;
|
||||
newEntityModel->renderMode = 1;
|
||||
newEntityModel->cmdListReadPos = cmdList;
|
||||
newEntityModel->nextFrameTime = 1.0f;
|
||||
newEntityModel->timeScale = 1.0f;
|
||||
if (cmdList == NULL) {
|
||||
newEntityModel->cmdListReadPos = &D_8014C260;
|
||||
}
|
||||
newEntityModel->vertexArray = NULL;
|
||||
newEntityModel->fpSetupGfxCallback = NULL;
|
||||
newEntityModel->cmdListSavedPos = newEntityModel->cmdListReadPos;
|
||||
|
||||
if (gGameStatusPtr->isBattle) {
|
||||
i |= 0x800;
|
||||
}
|
||||
return i;
|
||||
}
|
||||
|
||||
void update_entity_rendercmd(s32 idx) {
|
||||
EntityModel* entityModel;
|
||||
void* temp_v0_2;
|
||||
|
||||
if (!gGameStatusPtr->isBattle || (idx & 0x800)) {
|
||||
idx &= ~0x800;
|
||||
entityModel = (*gCurrentEntityModelList)[idx];
|
||||
if (entityModel != NULL && (entityModel->flags)) {
|
||||
if (!(entityModel->flags & 0x20)) {
|
||||
if(!(entityModel->flags & 0x20000)) {
|
||||
entityModel->flags &= ~0x100;
|
||||
entityModel->nextFrameTime -= entityModel->timeScale;
|
||||
if (entityModel->nextFrameTime <= 0.0f) {
|
||||
while (step_entity_rendercmd(entityModel));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
s32 step_entity_rendercmd(EntityModel* entityModel) {
|
||||
Gfx* displayList;
|
||||
|
||||
u32* curPos = entityModel->cmdListReadPos;
|
||||
switch (*curPos++) {
|
||||
case 0: // kill model
|
||||
free_entity_model_by_ref(entityModel);
|
||||
return 1;
|
||||
case 1: // set display list ptr
|
||||
entityModel->nextFrameTime = *curPos++;
|
||||
entityModel->displayList = *curPos++;
|
||||
entityModel->cmdListReadPos = curPos;
|
||||
break;
|
||||
case 2: // restore saved position
|
||||
entityModel->cmdListReadPos = entityModel->cmdListSavedPos;
|
||||
return 1;
|
||||
case 3: // set saved position
|
||||
entityModel->cmdListReadPos = entityModel->cmdListSavedPos = curPos;
|
||||
return 1;
|
||||
case 4: // set render mode
|
||||
entityModel->renderMode = *curPos++;
|
||||
entityModel->cmdListReadPos = curPos;
|
||||
return 1;
|
||||
case 5: // set flags
|
||||
entityModel->flags |= *curPos++;
|
||||
entityModel->cmdListReadPos = curPos;
|
||||
return 1;
|
||||
case 6: // clear flags
|
||||
entityModel->flags &= ~*curPos++;
|
||||
entityModel->cmdListReadPos = curPos;
|
||||
return 1;
|
||||
case 7: // populate display list
|
||||
displayList = entityModel->displayList;
|
||||
entityModel->nextFrameTime = *curPos++;
|
||||
displayList[0].words.w0 = *curPos++;
|
||||
displayList[0].words.w1 = *curPos++;
|
||||
displayList[1].words.w0 = *curPos++;
|
||||
displayList[1].words.w1 = *curPos++;
|
||||
entityModel->cmdListReadPos = curPos;
|
||||
break;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
void make_mtx_flipZ(Matrix4f mtx) {
|
||||
guMtxIdentF(*mtx);
|
||||
@ -41,25 +222,92 @@ INCLUDE_ASM(s32, "code_b72b0_len_15ed0", draw_entity_model_extra2);
|
||||
|
||||
INCLUDE_ASM(s32, "code_b72b0_len_15ed0", draw_entity_model_extra3);
|
||||
|
||||
INCLUDE_ASM(s32, "code_b72b0_len_15ed0", func_80122D7C);
|
||||
void func_80122D7C(s32 idx, u32* arg1) {
|
||||
u32* phi_a1;
|
||||
EntityModel* entityModel = (*gCurrentEntityModelList)[idx & ~0x800];
|
||||
|
||||
s32 func_80122DDC(s32 arg0) {
|
||||
return gCurrentEntityModelList[arg0 & ~0x800];
|
||||
if (entityModel != NULL && entityModel->flags) {
|
||||
phi_a1 = arg1;
|
||||
if (arg1 == NULL) {
|
||||
phi_a1 = &D_8014C260;
|
||||
}
|
||||
entityModel->cmdListReadPos = phi_a1;
|
||||
entityModel->cmdListSavedPos = phi_a1;
|
||||
entityModel->nextFrameTime = 1.0f;
|
||||
entityModel->timeScale = 1.0f;
|
||||
}
|
||||
}
|
||||
|
||||
INCLUDE_ASM(s32, "code_b72b0_len_15ed0", free_entity_model_by_index);
|
||||
EntityModel* func_80122DDC(s32 listIndex) {
|
||||
return (*gCurrentEntityModelList)[listIndex & ~0x800];
|
||||
}
|
||||
|
||||
INCLUDE_ASM(s32, "code_b72b0_len_15ed0", free_entity_model_by_ref);
|
||||
void free_entity_model_by_index(s32 idx) {
|
||||
s32 index = idx & ~0x800;
|
||||
EntityModelList** entityModelList = &gCurrentEntityModelList;
|
||||
EntityModel* entityModel = (**entityModelList)[index];
|
||||
|
||||
INCLUDE_ASM(s32, "code_b72b0_len_15ed0", set_entity_model_flags);
|
||||
if (entityModel != NULL && entityModel->flags) {
|
||||
if (entityModel->flags & 0x400) {
|
||||
heap_free(entityModel->displayList);
|
||||
}
|
||||
{
|
||||
s32* modelCount = &gEntityModelCount;
|
||||
heap_free((**entityModelList)[index]);
|
||||
(**entityModelList)[index] = NULL;
|
||||
(*modelCount)--;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
INCLUDE_ASM(s32, "code_b72b0_len_15ed0", clear_entity_model_flags);
|
||||
void free_entity_model_by_ref(EntityModel* entityModel) {
|
||||
s32 i;
|
||||
|
||||
INCLUDE_ASM(s32, "code_b72b0_len_15ed0", func_80122F64);
|
||||
for (i = 0; i < MAX_ENTITY_MODELS; i++) {
|
||||
if ((*gCurrentEntityModelList)[i] == entityModel) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
INCLUDE_ASM(s32, "code_b72b0_len_15ed0", func_80122F8C);
|
||||
if (i < MAX_ENTITY_MODELS) {
|
||||
free_entity_model_by_index(i);
|
||||
}
|
||||
}
|
||||
|
||||
INCLUDE_ASM(s32, "code_b72b0_len_15ed0", func_80122FB8);
|
||||
void set_entity_model_flags(s32 idx, s32 newFlags) {
|
||||
EntityModel* entityModel = (*gCurrentEntityModelList)[idx & ~0x800];
|
||||
|
||||
if (entityModel != NULL && entityModel->flags) {
|
||||
entityModel->flags |= newFlags;
|
||||
}
|
||||
}
|
||||
|
||||
void clear_entity_model_flags(s32 idx, s32 newFlags) {
|
||||
EntityModel* entityModel = (*gCurrentEntityModelList)[idx & ~0x800];
|
||||
|
||||
if (entityModel != NULL && entityModel->flags) {
|
||||
entityModel->flags &= ~newFlags;
|
||||
}
|
||||
}
|
||||
|
||||
void func_80122F64(s32 idx, s32 setupGfxCallbackArg0, UNK_FUN_PTR(fpSetupGfxCallback)) {
|
||||
EntityModel* entityModel = (*gCurrentEntityModelList)[idx & ~0x800];
|
||||
|
||||
entityModel->fpSetupGfxCallback = fpSetupGfxCallback;
|
||||
entityModel->setupGfxCallbackArg0 = setupGfxCallbackArg0;
|
||||
}
|
||||
|
||||
void func_80122F8C(s32 idx, s32 newFlags) {
|
||||
EntityModel* entityModel = (*gCurrentEntityModelList)[idx & ~0x800];
|
||||
|
||||
entityModel->flags |= newFlags;
|
||||
}
|
||||
|
||||
void func_80122FB8(s32 idx, s32 newFlags) {
|
||||
EntityModel* entityModel = (*gCurrentEntityModelList)[idx & ~0x800];
|
||||
|
||||
entityModel->flags = (entityModel->flags & ~0xF) | newFlags;
|
||||
}
|
||||
|
||||
void enable_entity_fog(void) {
|
||||
D_80154378 = 1;
|
||||
@ -100,7 +348,19 @@ void get_entity_fog_color(s32* r, s32* g, s32* b, s32* a) {
|
||||
void stub_dynamic_entity_delegate(void) {
|
||||
}
|
||||
|
||||
INCLUDE_ASM(s32, "code_b72b0_len_15ed0", clear_dynamic_entity_list);
|
||||
void clear_dynamic_entity_list(void) {
|
||||
s32 i;
|
||||
|
||||
if (!gGameStatusPtr->isBattle) {
|
||||
gCurrentDynamicEntityListPtr = &gWorldDynamicEntityList;
|
||||
} else {
|
||||
gCurrentDynamicEntityListPtr = &gBattleDynamicEntityList;
|
||||
}
|
||||
|
||||
for (i = 0; i < MAX_DYNAMIC_ENTITIES; i++) {
|
||||
(*gCurrentDynamicEntityListPtr)[i] = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
void init_dynamic_entity_list(void) {
|
||||
if (!gGameStatusPtr->isBattle) {
|
||||
@ -110,22 +370,162 @@ void init_dynamic_entity_list(void) {
|
||||
}
|
||||
}
|
||||
|
||||
INCLUDE_ASM(s32, "code_b72b0_len_15ed0", bind_dynamic_entity_3);
|
||||
s32 bind_dynamic_entity_3(void (*updateFunc)(void), void (*drawFunc)(void)) {
|
||||
s32 i;
|
||||
DynamicEntity* newDynEntity;
|
||||
|
||||
INCLUDE_ASM(s32, "code_b72b0_len_15ed0", bind_dynamic_entity_7, s32* updateFunc, void (*drawFunc)(void));
|
||||
for (i = 0; i < MAX_DYNAMIC_ENTITIES; i++) {
|
||||
DynamicEntity* dynEntity = (*gCurrentDynamicEntityListPtr)[i];
|
||||
if (dynEntity == NULL) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
ASSERT(i < MAX_DYNAMIC_ENTITIES);
|
||||
|
||||
INCLUDE_ASM(s32, "code_b72b0_len_15ed0", bind_dynamic_entity_B);
|
||||
(*gCurrentDynamicEntityListPtr)[i] = newDynEntity = heap_malloc(sizeof(DynamicEntity));
|
||||
ASSERT(newDynEntity != NULL);
|
||||
|
||||
INCLUDE_ASM(s32, "code_b72b0_len_15ed0", update_dynamic_entities);
|
||||
newDynEntity->flags = 3;
|
||||
newDynEntity->update = updateFunc;
|
||||
if (updateFunc == NULL) {
|
||||
newDynEntity->update = &stub_dynamic_entity_delegate;
|
||||
}
|
||||
newDynEntity->draw = drawFunc;
|
||||
if (drawFunc == NULL) {
|
||||
newDynEntity->draw = &stub_dynamic_entity_delegate;
|
||||
}
|
||||
|
||||
INCLUDE_ASM(s32, "code_b72b0_len_15ed0", render_dynamic_entities);
|
||||
|
||||
INCLUDE_ASM(s32, "code_b72b0_len_15ed0", func_801234E0);
|
||||
|
||||
INCLUDE_ASM(s32, "code_b72b0_len_15ed0", func_80123550);
|
||||
|
||||
INCLUDE_ASM(s32, "code_b72b0_len_15ed0", func_801235C0);
|
||||
|
||||
s32 get_dynamic_entity(s32 arg0) {
|
||||
return (*gCurrentDynamicEntityListPtr)[arg0 & ~0x800];
|
||||
if (gGameStatusPtr->isBattle) {
|
||||
i |= 0x800;
|
||||
}
|
||||
return i;
|
||||
}
|
||||
|
||||
s32 bind_dynamic_entity_7(void (*updateFunc)(void), void (*drawFunc)(void)) {
|
||||
s32 i;
|
||||
DynamicEntity* newDynEntity;
|
||||
|
||||
for (i = 0; i < MAX_DYNAMIC_ENTITIES; i++) {
|
||||
DynamicEntity* dynEntity = (*gCurrentDynamicEntityListPtr)[i];
|
||||
if (dynEntity == NULL) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
ASSERT(i < MAX_DYNAMIC_ENTITIES);
|
||||
|
||||
(*gCurrentDynamicEntityListPtr)[i] = newDynEntity = heap_malloc(sizeof(DynamicEntity));
|
||||
ASSERT(newDynEntity != NULL);
|
||||
|
||||
newDynEntity->flags = 7;
|
||||
newDynEntity->update = updateFunc;
|
||||
if (updateFunc == NULL) {
|
||||
newDynEntity->update = &stub_dynamic_entity_delegate;
|
||||
}
|
||||
newDynEntity->draw = drawFunc;
|
||||
if (drawFunc == NULL) {
|
||||
newDynEntity->draw = &stub_dynamic_entity_delegate;
|
||||
}
|
||||
|
||||
if (gGameStatusPtr->isBattle) {
|
||||
i |= 0x800;
|
||||
}
|
||||
return i;
|
||||
}
|
||||
|
||||
s32 bind_dynamic_entity_B(void (*updateFunc)(void), void (*drawFunc)(void)) {
|
||||
s32 i;
|
||||
DynamicEntity* newDynEntity;
|
||||
|
||||
for (i = 0; i < MAX_DYNAMIC_ENTITIES; i++) {
|
||||
DynamicEntity* dynEntity = (*gCurrentDynamicEntityListPtr)[i];
|
||||
if (dynEntity == NULL) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
ASSERT(i < MAX_DYNAMIC_ENTITIES);
|
||||
|
||||
(*gCurrentDynamicEntityListPtr)[i] = newDynEntity = heap_malloc(sizeof(DynamicEntity));
|
||||
ASSERT(newDynEntity != NULL);
|
||||
|
||||
newDynEntity->flags = 0xB;
|
||||
newDynEntity->update = updateFunc;
|
||||
if (updateFunc == NULL) {
|
||||
newDynEntity->update = &stub_dynamic_entity_delegate;
|
||||
}
|
||||
newDynEntity->draw = drawFunc;
|
||||
if (drawFunc == NULL) {
|
||||
newDynEntity->draw = &stub_dynamic_entity_delegate;
|
||||
}
|
||||
|
||||
if (gGameStatusPtr->isBattle) {
|
||||
i |= 0x800;
|
||||
}
|
||||
return i;
|
||||
}
|
||||
|
||||
void update_dynamic_entities(void) {
|
||||
s32 i;
|
||||
|
||||
for (i = 0; i < MAX_DYNAMIC_ENTITIES; i++) {
|
||||
DynamicEntity* entity = (*gCurrentDynamicEntityListPtr)[i];
|
||||
if (entity != NULL) {
|
||||
entity->flags &= ~2;
|
||||
entity->update();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void render_dynamic_entities(void) {
|
||||
s32 i;
|
||||
|
||||
for (i = 0; i < MAX_DYNAMIC_ENTITIES; i++) {
|
||||
DynamicEntity* entity = (*gCurrentDynamicEntityListPtr)[i];
|
||||
if (entity != NULL && !(entity->flags & 2)) {
|
||||
if (!(entity->flags & 4)) {
|
||||
entity->draw();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void func_801234E0(void) {
|
||||
s32 i;
|
||||
|
||||
for (i = 0; i < MAX_DYNAMIC_ENTITIES; i++) {
|
||||
DynamicEntity* entity = (*gCurrentDynamicEntityListPtr)[i];
|
||||
if (entity != NULL && !(entity->flags & 2)) {
|
||||
if (entity->flags & 4) {
|
||||
entity->draw();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void func_80123550(void) {
|
||||
s32 i;
|
||||
|
||||
for (i = 0; i < MAX_DYNAMIC_ENTITIES; i++) {
|
||||
DynamicEntity* entity = (*gCurrentDynamicEntityListPtr)[i];
|
||||
if (entity != NULL && !(entity->flags & 2)) {
|
||||
if (entity->flags & 8) {
|
||||
entity->draw();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void func_801235C0(s32 idx) {
|
||||
if (!gGameStatusPtr->isBattle || (idx & 0x800)) {
|
||||
DynamicEntityList** curDynEntityList = &gCurrentDynamicEntityListPtr;
|
||||
|
||||
idx &= ~0x800;
|
||||
if ((**curDynEntityList)[idx] != NULL) {
|
||||
heap_free((**curDynEntityList)[idx]);
|
||||
(**curDynEntityList)[idx] = NULL;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
s32 get_dynamic_entity(s32 idx) {
|
||||
return (*gCurrentDynamicEntityListPtr)[idx & ~0x800];
|
||||
}
|
||||
|
@ -1,86 +0,0 @@
|
||||
.set noat # allow manual use of $at
|
||||
.set noreorder # don't insert nops after branches
|
||||
|
||||
glabel ALT_load_entity_model
|
||||
/* B74E4 80120DE4 3C038015 */ lui $v1, %hi(gCurrentEntityModelList)
|
||||
/* B74E8 80120DE8 8C634370 */ lw $v1, %lo(gCurrentEntityModelList)($v1)
|
||||
/* B74EC 80120DEC 27BDFFE0 */ addiu $sp, $sp, -0x20
|
||||
/* B74F0 80120DF0 AFB20018 */ sw $s2, 0x18($sp)
|
||||
/* B74F4 80120DF4 0080902D */ daddu $s2, $a0, $zero
|
||||
/* B74F8 80120DF8 AFB10014 */ sw $s1, 0x14($sp)
|
||||
/* B74FC 80120DFC 0000882D */ daddu $s1, $zero, $zero
|
||||
/* B7500 80120E00 AFBF001C */ sw $ra, 0x1c($sp)
|
||||
/* B7504 80120E04 AFB00010 */ sw $s0, 0x10($sp)
|
||||
.L80120E08:
|
||||
/* B7508 80120E08 8C620000 */ lw $v0, ($v1)
|
||||
/* B750C 80120E0C 10400006 */ beqz $v0, .L80120E28
|
||||
/* B7510 80120E10 2A220100 */ slti $v0, $s1, 0x100
|
||||
/* B7514 80120E14 26310001 */ addiu $s1, $s1, 1
|
||||
/* B7518 80120E18 2A220100 */ slti $v0, $s1, 0x100
|
||||
/* B751C 80120E1C 1440FFFA */ bnez $v0, .L80120E08
|
||||
/* B7520 80120E20 24630004 */ addiu $v1, $v1, 4
|
||||
/* B7524 80120E24 2A220100 */ slti $v0, $s1, 0x100
|
||||
.L80120E28:
|
||||
/* B7528 80120E28 14400003 */ bnez $v0, .L80120E38
|
||||
/* B752C 80120E2C 00000000 */ nop
|
||||
.L80120E30:
|
||||
/* B7530 80120E30 0804838C */ j .L80120E30
|
||||
/* B7534 80120E34 00000000 */ nop
|
||||
.L80120E38:
|
||||
/* B7538 80120E38 0C00AB39 */ jal heap_malloc
|
||||
/* B753C 80120E3C 24040068 */ addiu $a0, $zero, 0x68
|
||||
/* B7540 80120E40 00112080 */ sll $a0, $s1, 2
|
||||
/* B7544 80120E44 3C038015 */ lui $v1, %hi(gCurrentEntityModelList)
|
||||
/* B7548 80120E48 8C634370 */ lw $v1, %lo(gCurrentEntityModelList)($v1)
|
||||
/* B754C 80120E4C 3C058015 */ lui $a1, %hi(gEntityModelCount)
|
||||
/* B7550 80120E50 24A51318 */ addiu $a1, $a1, %lo(gEntityModelCount)
|
||||
/* B7554 80120E54 00832021 */ addu $a0, $a0, $v1
|
||||
/* B7558 80120E58 8CA30000 */ lw $v1, ($a1)
|
||||
/* B755C 80120E5C 0040802D */ daddu $s0, $v0, $zero
|
||||
/* B7560 80120E60 AC900000 */ sw $s0, ($a0)
|
||||
/* B7564 80120E64 24630001 */ addiu $v1, $v1, 1
|
||||
/* B7568 80120E68 16000003 */ bnez $s0, .L80120E78
|
||||
/* B756C 80120E6C ACA30000 */ sw $v1, ($a1)
|
||||
.L80120E70:
|
||||
/* B7570 80120E70 0804839C */ j .L80120E70
|
||||
/* B7574 80120E74 00000000 */ nop
|
||||
.L80120E78:
|
||||
/* B7578 80120E78 0C00AB39 */ jal heap_malloc
|
||||
/* B757C 80120E7C 24040010 */ addiu $a0, $zero, 0x10
|
||||
/* B7580 80120E80 14400003 */ bnez $v0, .L80120E90
|
||||
/* B7584 80120E84 AE020014 */ sw $v0, 0x14($s0)
|
||||
.L80120E88:
|
||||
/* B7588 80120E88 080483A2 */ j .L80120E88
|
||||
/* B758C 80120E8C 00000000 */ nop
|
||||
.L80120E90:
|
||||
/* B7590 80120E90 3C013F80 */ lui $at, 0x3f80
|
||||
/* B7594 80120E94 44810000 */ mtc1 $at, $f0
|
||||
/* B7598 80120E98 24020417 */ addiu $v0, $zero, 0x417
|
||||
/* B759C 80120E9C AE020000 */ sw $v0, ($s0)
|
||||
/* B75A0 80120EA0 24020001 */ addiu $v0, $zero, 1
|
||||
/* B75A4 80120EA4 A2020004 */ sb $v0, 4($s0)
|
||||
/* B75A8 80120EA8 AE120010 */ sw $s2, 0x10($s0)
|
||||
/* B75AC 80120EAC E6000008 */ swc1 $f0, 8($s0)
|
||||
/* B75B0 80120EB0 16400004 */ bnez $s2, .L80120EC4
|
||||
/* B75B4 80120EB4 E600000C */ swc1 $f0, 0xc($s0)
|
||||
/* B75B8 80120EB8 3C028015 */ lui $v0, %hi(D_8014C260)
|
||||
/* B75BC 80120EBC 2442C260 */ addiu $v0, $v0, %lo(D_8014C260)
|
||||
/* B75C0 80120EC0 AE020010 */ sw $v0, 0x10($s0)
|
||||
.L80120EC4:
|
||||
/* B75C4 80120EC4 8E020010 */ lw $v0, 0x10($s0)
|
||||
/* B75C8 80120EC8 3C038007 */ lui $v1, %hi(gGameStatusPtr)
|
||||
/* B75CC 80120ECC 8C63419C */ lw $v1, %lo(gGameStatusPtr)($v1)
|
||||
/* B75D0 80120ED0 AE00005C */ sw $zero, 0x5c($s0)
|
||||
/* B75D4 80120ED4 AE000060 */ sw $zero, 0x60($s0)
|
||||
/* B75D8 80120ED8 AE020058 */ sw $v0, 0x58($s0)
|
||||
/* B75DC 80120EDC 80620070 */ lb $v0, 0x70($v1)
|
||||
/* B75E0 80120EE0 54400001 */ bnel $v0, $zero, .L80120EE8
|
||||
/* B75E4 80120EE4 36310800 */ ori $s1, $s1, 0x800
|
||||
.L80120EE8:
|
||||
/* B75E8 80120EE8 0220102D */ daddu $v0, $s1, $zero
|
||||
/* B75EC 80120EEC 8FBF001C */ lw $ra, 0x1c($sp)
|
||||
/* B75F0 80120EF0 8FB20018 */ lw $s2, 0x18($sp)
|
||||
/* B75F4 80120EF4 8FB10014 */ lw $s1, 0x14($sp)
|
||||
/* B75F8 80120EF8 8FB00010 */ lw $s0, 0x10($sp)
|
||||
/* B75FC 80120EFC 03E00008 */ jr $ra
|
||||
/* B7600 80120F00 27BD0020 */ addiu $sp, $sp, 0x20
|
@ -1,70 +0,0 @@
|
||||
.set noat # allow manual use of $at
|
||||
.set noreorder # don't insert nops after branches
|
||||
|
||||
glabel bind_dynamic_entity_3
|
||||
/* B9858 80123158 3C038015 */ lui $v1, %hi(gCurrentDynamicEntityListPtr)
|
||||
/* B985C 8012315C 8C634420 */ lw $v1, %lo(gCurrentDynamicEntityListPtr)($v1)
|
||||
/* B9860 80123160 27BDFFE0 */ addiu $sp, $sp, -0x20
|
||||
/* B9864 80123164 AFB10014 */ sw $s1, 0x14($sp)
|
||||
/* B9868 80123168 0080882D */ daddu $s1, $a0, $zero
|
||||
/* B986C 8012316C AFB20018 */ sw $s2, 0x18($sp)
|
||||
/* B9870 80123170 00A0902D */ daddu $s2, $a1, $zero
|
||||
/* B9874 80123174 AFB00010 */ sw $s0, 0x10($sp)
|
||||
/* B9878 80123178 0000802D */ daddu $s0, $zero, $zero
|
||||
/* B987C 8012317C AFBF001C */ sw $ra, 0x1c($sp)
|
||||
.L80123180:
|
||||
/* B9880 80123180 8C620000 */ lw $v0, ($v1)
|
||||
/* B9884 80123184 10400006 */ beqz $v0, .L801231A0
|
||||
/* B9888 80123188 2A020010 */ slti $v0, $s0, 0x10
|
||||
/* B988C 8012318C 26100001 */ addiu $s0, $s0, 1
|
||||
/* B9890 80123190 2A020010 */ slti $v0, $s0, 0x10
|
||||
/* B9894 80123194 1440FFFA */ bnez $v0, .L80123180
|
||||
/* B9898 80123198 24630004 */ addiu $v1, $v1, 4
|
||||
/* B989C 8012319C 2A020010 */ slti $v0, $s0, 0x10
|
||||
.L801231A0:
|
||||
/* B98A0 801231A0 14400003 */ bnez $v0, .L801231B0
|
||||
/* B98A4 801231A4 00000000 */ nop
|
||||
.L801231A8:
|
||||
/* B98A8 801231A8 08048C6A */ j .L801231A8
|
||||
/* B98AC 801231AC 00000000 */ nop
|
||||
.L801231B0:
|
||||
/* B98B0 801231B0 0C00AB39 */ jal heap_malloc
|
||||
/* B98B4 801231B4 2404000C */ addiu $a0, $zero, 0xc
|
||||
/* B98B8 801231B8 3C048015 */ lui $a0, %hi(gCurrentDynamicEntityListPtr)
|
||||
/* B98BC 801231BC 8C844420 */ lw $a0, %lo(gCurrentDynamicEntityListPtr)($a0)
|
||||
/* B98C0 801231C0 00101880 */ sll $v1, $s0, 2
|
||||
/* B98C4 801231C4 00641821 */ addu $v1, $v1, $a0
|
||||
/* B98C8 801231C8 0040202D */ daddu $a0, $v0, $zero
|
||||
/* B98CC 801231CC 14800003 */ bnez $a0, .L801231DC
|
||||
/* B98D0 801231D0 AC640000 */ sw $a0, ($v1)
|
||||
.L801231D4:
|
||||
/* B98D4 801231D4 08048C75 */ j .L801231D4
|
||||
/* B98D8 801231D8 00000000 */ nop
|
||||
.L801231DC:
|
||||
/* B98DC 801231DC 24020003 */ addiu $v0, $zero, 3
|
||||
/* B98E0 801231E0 AC820000 */ sw $v0, ($a0)
|
||||
/* B98E4 801231E4 16200004 */ bnez $s1, .L801231F8
|
||||
/* B98E8 801231E8 AC910004 */ sw $s1, 4($a0)
|
||||
/* B98EC 801231EC 3C028012 */ lui $v0, %hi(stub_dynamic_entity_delegate)
|
||||
/* B98F0 801231F0 244230B0 */ addiu $v0, $v0, %lo(stub_dynamic_entity_delegate)
|
||||
/* B98F4 801231F4 AC820004 */ sw $v0, 4($a0)
|
||||
.L801231F8:
|
||||
/* B98F8 801231F8 16400004 */ bnez $s2, .L8012320C
|
||||
/* B98FC 801231FC AC920008 */ sw $s2, 8($a0)
|
||||
/* B9900 80123200 3C028012 */ lui $v0, %hi(stub_dynamic_entity_delegate)
|
||||
/* B9904 80123204 244230B0 */ addiu $v0, $v0, %lo(stub_dynamic_entity_delegate)
|
||||
/* B9908 80123208 AC820008 */ sw $v0, 8($a0)
|
||||
.L8012320C:
|
||||
/* B990C 8012320C 3C028007 */ lui $v0, %hi(gGameStatusPtr)
|
||||
/* B9910 80123210 8C42419C */ lw $v0, %lo(gGameStatusPtr)($v0)
|
||||
/* B9914 80123214 80420070 */ lb $v0, 0x70($v0)
|
||||
/* B9918 80123218 54400001 */ bnel $v0, $zero, .L80123220
|
||||
/* B991C 8012321C 36100800 */ ori $s0, $s0, 0x800
|
||||
.L80123220:
|
||||
/* B9920 80123220 0200102D */ daddu $v0, $s0, $zero
|
||||
/* B9924 80123224 8FBF001C */ lw $ra, 0x1c($sp)
|
||||
/* B9928 80123228 8FB20018 */ lw $s2, 0x18($sp)
|
||||
/* B992C 8012322C 8FB10014 */ lw $s1, 0x14($sp)
|
||||
/* B9930 80123230 8FB00010 */ lw $s0, 0x10($sp)
|
||||
/* B9934 80123234 03E00008 */ jr $ra
|
||||
/* B9938 80123238 27BD0020 */ addiu $sp, $sp, 0x20
|
@ -1,70 +0,0 @@
|
||||
.set noat # allow manual use of $at
|
||||
.set noreorder # don't insert nops after branches
|
||||
|
||||
glabel bind_dynamic_entity_7
|
||||
/* B993C 8012323C 3C038015 */ lui $v1, %hi(gCurrentDynamicEntityListPtr)
|
||||
/* B9940 80123240 8C634420 */ lw $v1, %lo(gCurrentDynamicEntityListPtr)($v1)
|
||||
/* B9944 80123244 27BDFFE0 */ addiu $sp, $sp, -0x20
|
||||
/* B9948 80123248 AFB10014 */ sw $s1, 0x14($sp)
|
||||
/* B994C 8012324C 0080882D */ daddu $s1, $a0, $zero
|
||||
/* B9950 80123250 AFB20018 */ sw $s2, 0x18($sp)
|
||||
/* B9954 80123254 00A0902D */ daddu $s2, $a1, $zero
|
||||
/* B9958 80123258 AFB00010 */ sw $s0, 0x10($sp)
|
||||
/* B995C 8012325C 0000802D */ daddu $s0, $zero, $zero
|
||||
/* B9960 80123260 AFBF001C */ sw $ra, 0x1c($sp)
|
||||
.L80123264:
|
||||
/* B9964 80123264 8C620000 */ lw $v0, ($v1)
|
||||
/* B9968 80123268 10400006 */ beqz $v0, .L80123284
|
||||
/* B996C 8012326C 2A020010 */ slti $v0, $s0, 0x10
|
||||
/* B9970 80123270 26100001 */ addiu $s0, $s0, 1
|
||||
/* B9974 80123274 2A020010 */ slti $v0, $s0, 0x10
|
||||
/* B9978 80123278 1440FFFA */ bnez $v0, .L80123264
|
||||
/* B997C 8012327C 24630004 */ addiu $v1, $v1, 4
|
||||
/* B9980 80123280 2A020010 */ slti $v0, $s0, 0x10
|
||||
.L80123284:
|
||||
/* B9984 80123284 14400003 */ bnez $v0, .L80123294
|
||||
/* B9988 80123288 00000000 */ nop
|
||||
.L8012328C:
|
||||
/* B998C 8012328C 08048CA3 */ j .L8012328C
|
||||
/* B9990 80123290 00000000 */ nop
|
||||
.L80123294:
|
||||
/* B9994 80123294 0C00AB39 */ jal heap_malloc
|
||||
/* B9998 80123298 2404000C */ addiu $a0, $zero, 0xc
|
||||
/* B999C 8012329C 3C048015 */ lui $a0, %hi(gCurrentDynamicEntityListPtr)
|
||||
/* B99A0 801232A0 8C844420 */ lw $a0, %lo(gCurrentDynamicEntityListPtr)($a0)
|
||||
/* B99A4 801232A4 00101880 */ sll $v1, $s0, 2
|
||||
/* B99A8 801232A8 00641821 */ addu $v1, $v1, $a0
|
||||
/* B99AC 801232AC 0040202D */ daddu $a0, $v0, $zero
|
||||
/* B99B0 801232B0 14800003 */ bnez $a0, .L801232C0
|
||||
/* B99B4 801232B4 AC640000 */ sw $a0, ($v1)
|
||||
.L801232B8:
|
||||
/* B99B8 801232B8 08048CAE */ j .L801232B8
|
||||
/* B99BC 801232BC 00000000 */ nop
|
||||
.L801232C0:
|
||||
/* B99C0 801232C0 24020007 */ addiu $v0, $zero, 7
|
||||
/* B99C4 801232C4 AC820000 */ sw $v0, ($a0)
|
||||
/* B99C8 801232C8 16200004 */ bnez $s1, .L801232DC
|
||||
/* B99CC 801232CC AC910004 */ sw $s1, 4($a0)
|
||||
/* B99D0 801232D0 3C028012 */ lui $v0, %hi(stub_dynamic_entity_delegate)
|
||||
/* B99D4 801232D4 244230B0 */ addiu $v0, $v0, %lo(stub_dynamic_entity_delegate)
|
||||
/* B99D8 801232D8 AC820004 */ sw $v0, 4($a0)
|
||||
.L801232DC:
|
||||
/* B99DC 801232DC 16400004 */ bnez $s2, .L801232F0
|
||||
/* B99E0 801232E0 AC920008 */ sw $s2, 8($a0)
|
||||
/* B99E4 801232E4 3C028012 */ lui $v0, %hi(stub_dynamic_entity_delegate)
|
||||
/* B99E8 801232E8 244230B0 */ addiu $v0, $v0, %lo(stub_dynamic_entity_delegate)
|
||||
/* B99EC 801232EC AC820008 */ sw $v0, 8($a0)
|
||||
.L801232F0:
|
||||
/* B99F0 801232F0 3C028007 */ lui $v0, %hi(gGameStatusPtr)
|
||||
/* B99F4 801232F4 8C42419C */ lw $v0, %lo(gGameStatusPtr)($v0)
|
||||
/* B99F8 801232F8 80420070 */ lb $v0, 0x70($v0)
|
||||
/* B99FC 801232FC 54400001 */ bnel $v0, $zero, .L80123304
|
||||
/* B9A00 80123300 36100800 */ ori $s0, $s0, 0x800
|
||||
.L80123304:
|
||||
/* B9A04 80123304 0200102D */ daddu $v0, $s0, $zero
|
||||
/* B9A08 80123308 8FBF001C */ lw $ra, 0x1c($sp)
|
||||
/* B9A0C 8012330C 8FB20018 */ lw $s2, 0x18($sp)
|
||||
/* B9A10 80123310 8FB10014 */ lw $s1, 0x14($sp)
|
||||
/* B9A14 80123314 8FB00010 */ lw $s0, 0x10($sp)
|
||||
/* B9A18 80123318 03E00008 */ jr $ra
|
||||
/* B9A1C 8012331C 27BD0020 */ addiu $sp, $sp, 0x20
|
@ -1,70 +0,0 @@
|
||||
.set noat # allow manual use of $at
|
||||
.set noreorder # don't insert nops after branches
|
||||
|
||||
glabel bind_dynamic_entity_B
|
||||
/* B9A20 80123320 3C038015 */ lui $v1, %hi(gCurrentDynamicEntityListPtr)
|
||||
/* B9A24 80123324 8C634420 */ lw $v1, %lo(gCurrentDynamicEntityListPtr)($v1)
|
||||
/* B9A28 80123328 27BDFFE0 */ addiu $sp, $sp, -0x20
|
||||
/* B9A2C 8012332C AFB10014 */ sw $s1, 0x14($sp)
|
||||
/* B9A30 80123330 0080882D */ daddu $s1, $a0, $zero
|
||||
/* B9A34 80123334 AFB20018 */ sw $s2, 0x18($sp)
|
||||
/* B9A38 80123338 00A0902D */ daddu $s2, $a1, $zero
|
||||
/* B9A3C 8012333C AFB00010 */ sw $s0, 0x10($sp)
|
||||
/* B9A40 80123340 0000802D */ daddu $s0, $zero, $zero
|
||||
/* B9A44 80123344 AFBF001C */ sw $ra, 0x1c($sp)
|
||||
.L80123348:
|
||||
/* B9A48 80123348 8C620000 */ lw $v0, ($v1)
|
||||
/* B9A4C 8012334C 10400006 */ beqz $v0, .L80123368
|
||||
/* B9A50 80123350 2A020010 */ slti $v0, $s0, 0x10
|
||||
/* B9A54 80123354 26100001 */ addiu $s0, $s0, 1
|
||||
/* B9A58 80123358 2A020010 */ slti $v0, $s0, 0x10
|
||||
/* B9A5C 8012335C 1440FFFA */ bnez $v0, .L80123348
|
||||
/* B9A60 80123360 24630004 */ addiu $v1, $v1, 4
|
||||
/* B9A64 80123364 2A020010 */ slti $v0, $s0, 0x10
|
||||
.L80123368:
|
||||
/* B9A68 80123368 14400003 */ bnez $v0, .L80123378
|
||||
/* B9A6C 8012336C 00000000 */ nop
|
||||
.L80123370:
|
||||
/* B9A70 80123370 08048CDC */ j .L80123370
|
||||
/* B9A74 80123374 00000000 */ nop
|
||||
.L80123378:
|
||||
/* B9A78 80123378 0C00AB39 */ jal heap_malloc
|
||||
/* B9A7C 8012337C 2404000C */ addiu $a0, $zero, 0xc
|
||||
/* B9A80 80123380 3C048015 */ lui $a0, %hi(gCurrentDynamicEntityListPtr)
|
||||
/* B9A84 80123384 8C844420 */ lw $a0, %lo(gCurrentDynamicEntityListPtr)($a0)
|
||||
/* B9A88 80123388 00101880 */ sll $v1, $s0, 2
|
||||
/* B9A8C 8012338C 00641821 */ addu $v1, $v1, $a0
|
||||
/* B9A90 80123390 0040202D */ daddu $a0, $v0, $zero
|
||||
/* B9A94 80123394 14800003 */ bnez $a0, .L801233A4
|
||||
/* B9A98 80123398 AC640000 */ sw $a0, ($v1)
|
||||
.L8012339C:
|
||||
/* B9A9C 8012339C 08048CE7 */ j .L8012339C
|
||||
/* B9AA0 801233A0 00000000 */ nop
|
||||
.L801233A4:
|
||||
/* B9AA4 801233A4 2402000B */ addiu $v0, $zero, 0xb
|
||||
/* B9AA8 801233A8 AC820000 */ sw $v0, ($a0)
|
||||
/* B9AAC 801233AC 16200004 */ bnez $s1, .L801233C0
|
||||
/* B9AB0 801233B0 AC910004 */ sw $s1, 4($a0)
|
||||
/* B9AB4 801233B4 3C028012 */ lui $v0, %hi(stub_dynamic_entity_delegate)
|
||||
/* B9AB8 801233B8 244230B0 */ addiu $v0, $v0, %lo(stub_dynamic_entity_delegate)
|
||||
/* B9ABC 801233BC AC820004 */ sw $v0, 4($a0)
|
||||
.L801233C0:
|
||||
/* B9AC0 801233C0 16400004 */ bnez $s2, .L801233D4
|
||||
/* B9AC4 801233C4 AC920008 */ sw $s2, 8($a0)
|
||||
/* B9AC8 801233C8 3C028012 */ lui $v0, %hi(stub_dynamic_entity_delegate)
|
||||
/* B9ACC 801233CC 244230B0 */ addiu $v0, $v0, %lo(stub_dynamic_entity_delegate)
|
||||
/* B9AD0 801233D0 AC820008 */ sw $v0, 8($a0)
|
||||
.L801233D4:
|
||||
/* B9AD4 801233D4 3C028007 */ lui $v0, %hi(gGameStatusPtr)
|
||||
/* B9AD8 801233D8 8C42419C */ lw $v0, %lo(gGameStatusPtr)($v0)
|
||||
/* B9ADC 801233DC 80420070 */ lb $v0, 0x70($v0)
|
||||
/* B9AE0 801233E0 54400001 */ bnel $v0, $zero, .L801233E8
|
||||
/* B9AE4 801233E4 36100800 */ ori $s0, $s0, 0x800
|
||||
.L801233E8:
|
||||
/* B9AE8 801233E8 0200102D */ daddu $v0, $s0, $zero
|
||||
/* B9AEC 801233EC 8FBF001C */ lw $ra, 0x1c($sp)
|
||||
/* B9AF0 801233F0 8FB20018 */ lw $s2, 0x18($sp)
|
||||
/* B9AF4 801233F4 8FB10014 */ lw $s1, 0x14($sp)
|
||||
/* B9AF8 801233F8 8FB00010 */ lw $s0, 0x10($sp)
|
||||
/* B9AFC 801233FC 03E00008 */ jr $ra
|
||||
/* B9B00 80123400 27BD0020 */ addiu $sp, $sp, 0x20
|
@ -1,30 +0,0 @@
|
||||
.set noat # allow manual use of $at
|
||||
.set noreorder # don't insert nops after branches
|
||||
|
||||
glabel clear_dynamic_entity_list
|
||||
/* B97B8 801230B8 3C028007 */ lui $v0, %hi(gGameStatusPtr)
|
||||
/* B97BC 801230BC 8C42419C */ lw $v0, %lo(gGameStatusPtr)($v0)
|
||||
/* B97C0 801230C0 80420070 */ lb $v0, 0x70($v0)
|
||||
/* B97C4 801230C4 14400005 */ bnez $v0, .L801230DC
|
||||
/* B97C8 801230C8 00000000 */ nop
|
||||
/* B97CC 801230CC 3C028015 */ lui $v0, %hi(gWorldDynamicEntityList)
|
||||
/* B97D0 801230D0 244243A0 */ addiu $v0, $v0, %lo(gWorldDynamicEntityList)
|
||||
/* B97D4 801230D4 08048C39 */ j .L801230E4
|
||||
/* B97D8 801230D8 00000000 */ nop
|
||||
.L801230DC:
|
||||
/* B97DC 801230DC 3C028015 */ lui $v0, %hi(gBattleDynamicEntityList)
|
||||
/* B97E0 801230E0 244243E0 */ addiu $v0, $v0, %lo(gBattleDynamicEntityList)
|
||||
.L801230E4:
|
||||
/* B97E4 801230E4 3C018015 */ lui $at, %hi(gCurrentDynamicEntityListPtr)
|
||||
/* B97E8 801230E8 AC224420 */ sw $v0, %lo(gCurrentDynamicEntityListPtr)($at)
|
||||
/* B97EC 801230EC 3C028015 */ lui $v0, %hi(gCurrentDynamicEntityListPtr)
|
||||
/* B97F0 801230F0 8C424420 */ lw $v0, %lo(gCurrentDynamicEntityListPtr)($v0)
|
||||
/* B97F4 801230F4 2403000F */ addiu $v1, $zero, 0xf
|
||||
/* B97F8 801230F8 2442003C */ addiu $v0, $v0, 0x3c
|
||||
.L801230FC:
|
||||
/* B97FC 801230FC AC400000 */ sw $zero, ($v0)
|
||||
/* B9800 80123100 2463FFFF */ addiu $v1, $v1, -1
|
||||
/* B9804 80123104 0461FFFD */ bgez $v1, .L801230FC
|
||||
/* B9808 80123108 2442FFFC */ addiu $v0, $v0, -4
|
||||
/* B980C 8012310C 03E00008 */ jr $ra
|
||||
/* B9810 80123110 00000000 */ nop
|
@ -1,21 +0,0 @@
|
||||
.set noat # allow manual use of $at
|
||||
.set noreorder # don't insert nops after branches
|
||||
|
||||
glabel clear_entity_model_flags
|
||||
/* B9624 80122F24 2402F7FF */ addiu $v0, $zero, -0x801
|
||||
/* B9628 80122F28 00822024 */ and $a0, $a0, $v0
|
||||
/* B962C 80122F2C 3C028015 */ lui $v0, %hi(gCurrentEntityModelList)
|
||||
/* B9630 80122F30 8C424370 */ lw $v0, %lo(gCurrentEntityModelList)($v0)
|
||||
/* B9634 80122F34 00042080 */ sll $a0, $a0, 2
|
||||
/* B9638 80122F38 00822021 */ addu $a0, $a0, $v0
|
||||
/* B963C 80122F3C 8C840000 */ lw $a0, ($a0)
|
||||
/* B9640 80122F40 10800006 */ beqz $a0, .L80122F5C
|
||||
/* B9644 80122F44 00000000 */ nop
|
||||
/* B9648 80122F48 8C830000 */ lw $v1, ($a0)
|
||||
/* B964C 80122F4C 10600003 */ beqz $v1, .L80122F5C
|
||||
/* B9650 80122F50 00051027 */ nor $v0, $zero, $a1
|
||||
/* B9654 80122F54 00621024 */ and $v0, $v1, $v0
|
||||
/* B9658 80122F58 AC820000 */ sw $v0, ($a0)
|
||||
.L80122F5C:
|
||||
/* B965C 80122F5C 03E00008 */ jr $ra
|
||||
/* B9660 80122F60 00000000 */ nop
|
@ -1,49 +0,0 @@
|
||||
.set noat # allow manual use of $at
|
||||
.set noreorder # don't insert nops after branches
|
||||
|
||||
glabel clear_entity_models
|
||||
/* B72B0 80120BB0 3C028007 */ lui $v0, %hi(gGameStatusPtr)
|
||||
/* B72B4 80120BB4 8C42419C */ lw $v0, %lo(gGameStatusPtr)($v0)
|
||||
/* B72B8 80120BB8 80420070 */ lb $v0, 0x70($v0)
|
||||
/* B72BC 80120BBC 14400005 */ bnez $v0, .L80120BD4
|
||||
/* B72C0 80120BC0 00000000 */ nop
|
||||
/* B72C4 80120BC4 3C028015 */ lui $v0, %hi(gWorldEntityModelList)
|
||||
/* B72C8 80120BC8 24423B70 */ addiu $v0, $v0, %lo(gWorldEntityModelList)
|
||||
/* B72CC 80120BCC 080482F7 */ j .L80120BDC
|
||||
/* B72D0 80120BD0 00000000 */ nop
|
||||
.L80120BD4:
|
||||
/* B72D4 80120BD4 3C028015 */ lui $v0, %hi(gBattleEntityModelList)
|
||||
/* B72D8 80120BD8 24423F70 */ addiu $v0, $v0, %lo(gBattleEntityModelList)
|
||||
.L80120BDC:
|
||||
/* B72DC 80120BDC 3C018015 */ lui $at, %hi(gCurrentEntityModelList)
|
||||
/* B72E0 80120BE0 AC224370 */ sw $v0, %lo(gCurrentEntityModelList)($at)
|
||||
/* B72E4 80120BE4 3C028015 */ lui $v0, %hi(gCurrentEntityModelList)
|
||||
/* B72E8 80120BE8 8C424370 */ lw $v0, %lo(gCurrentEntityModelList)($v0)
|
||||
/* B72EC 80120BEC 240300FF */ addiu $v1, $zero, 0xff
|
||||
/* B72F0 80120BF0 244203FC */ addiu $v0, $v0, 0x3fc
|
||||
.L80120BF4:
|
||||
/* B72F4 80120BF4 AC400000 */ sw $zero, ($v0)
|
||||
/* B72F8 80120BF8 2463FFFF */ addiu $v1, $v1, -1
|
||||
/* B72FC 80120BFC 0461FFFD */ bgez $v1, .L80120BF4
|
||||
/* B7300 80120C00 2442FFFC */ addiu $v0, $v0, -4
|
||||
/* B7304 80120C04 2402000A */ addiu $v0, $zero, 0xa
|
||||
/* B7308 80120C08 3C018015 */ lui $at, %hi(D_8015437C)
|
||||
/* B730C 80120C0C AC22437C */ sw $v0, %lo(D_8015437C)($at)
|
||||
/* B7310 80120C10 3C018015 */ lui $at, %hi(D_80154380)
|
||||
/* B7314 80120C14 AC224380 */ sw $v0, %lo(D_80154380)($at)
|
||||
/* B7318 80120C18 3C018015 */ lui $at, %hi(D_80154384)
|
||||
/* B731C 80120C1C AC224384 */ sw $v0, %lo(D_80154384)($at)
|
||||
/* B7320 80120C20 3C018015 */ lui $at, %hi(D_80154388)
|
||||
/* B7324 80120C24 AC224388 */ sw $v0, %lo(D_80154388)($at)
|
||||
/* B7328 80120C28 24020320 */ addiu $v0, $zero, 0x320
|
||||
/* B732C 80120C2C 3C018015 */ lui $at, %hi(D_8015438C)
|
||||
/* B7330 80120C30 AC22438C */ sw $v0, %lo(D_8015438C)($at)
|
||||
/* B7334 80120C34 240203E8 */ addiu $v0, $zero, 0x3e8
|
||||
/* B7338 80120C38 3C018015 */ lui $at, %hi(gEntityModelCount)
|
||||
/* B733C 80120C3C AC201318 */ sw $zero, %lo(gEntityModelCount)($at)
|
||||
/* B7340 80120C40 3C018015 */ lui $at, %hi(D_80154378)
|
||||
/* B7344 80120C44 AC204378 */ sw $zero, %lo(D_80154378)($at)
|
||||
/* B7348 80120C48 3C018015 */ lui $at, %hi(D_80154390)
|
||||
/* B734C 80120C4C AC224390 */ sw $v0, %lo(D_80154390)($at)
|
||||
/* B7350 80120C50 03E00008 */ jr $ra
|
||||
/* B7354 80120C54 00000000 */ nop
|
@ -1,44 +0,0 @@
|
||||
.set noat # allow manual use of $at
|
||||
.set noreorder # don't insert nops after branches
|
||||
|
||||
glabel free_entity_model_by_index
|
||||
/* B94FC 80122DFC 27BDFFE0 */ addiu $sp, $sp, -0x20
|
||||
/* B9500 80122E00 2402F7FF */ addiu $v0, $zero, -0x801
|
||||
/* B9504 80122E04 00822024 */ and $a0, $a0, $v0
|
||||
/* B9508 80122E08 AFB10014 */ sw $s1, 0x14($sp)
|
||||
/* B950C 80122E0C 3C118015 */ lui $s1, %hi(gCurrentEntityModelList)
|
||||
/* B9510 80122E10 26314370 */ addiu $s1, $s1, %lo(gCurrentEntityModelList)
|
||||
/* B9514 80122E14 AFBF0018 */ sw $ra, 0x18($sp)
|
||||
/* B9518 80122E18 AFB00010 */ sw $s0, 0x10($sp)
|
||||
/* B951C 80122E1C 8E220000 */ lw $v0, ($s1)
|
||||
/* B9520 80122E20 00048080 */ sll $s0, $a0, 2
|
||||
/* B9524 80122E24 02021021 */ addu $v0, $s0, $v0
|
||||
/* B9528 80122E28 8C430000 */ lw $v1, ($v0)
|
||||
/* B952C 80122E2C 10600014 */ beqz $v1, .L80122E80
|
||||
/* B9530 80122E30 00000000 */ nop
|
||||
/* B9534 80122E34 8C620000 */ lw $v0, ($v1)
|
||||
/* B9538 80122E38 10400011 */ beqz $v0, .L80122E80
|
||||
/* B953C 80122E3C 30420400 */ andi $v0, $v0, 0x400
|
||||
/* B9540 80122E40 10400003 */ beqz $v0, .L80122E50
|
||||
/* B9544 80122E44 00000000 */ nop
|
||||
/* B9548 80122E48 0C00AB4B */ jal heap_free
|
||||
/* B954C 80122E4C 8C640014 */ lw $a0, 0x14($v1)
|
||||
.L80122E50:
|
||||
/* B9550 80122E50 8E220000 */ lw $v0, ($s1)
|
||||
/* B9554 80122E54 02021021 */ addu $v0, $s0, $v0
|
||||
/* B9558 80122E58 0C00AB4B */ jal heap_free
|
||||
/* B955C 80122E5C 8C440000 */ lw $a0, ($v0)
|
||||
/* B9560 80122E60 3C048015 */ lui $a0, %hi(gEntityModelCount)
|
||||
/* B9564 80122E64 24841318 */ addiu $a0, $a0, %lo(gEntityModelCount)
|
||||
/* B9568 80122E68 8E220000 */ lw $v0, ($s1)
|
||||
/* B956C 80122E6C 8C830000 */ lw $v1, ($a0)
|
||||
/* B9570 80122E70 02021021 */ addu $v0, $s0, $v0
|
||||
/* B9574 80122E74 2463FFFF */ addiu $v1, $v1, -1
|
||||
/* B9578 80122E78 AC400000 */ sw $zero, ($v0)
|
||||
/* B957C 80122E7C AC830000 */ sw $v1, ($a0)
|
||||
.L80122E80:
|
||||
/* B9580 80122E80 8FBF0018 */ lw $ra, 0x18($sp)
|
||||
/* B9584 80122E84 8FB10014 */ lw $s1, 0x14($sp)
|
||||
/* B9588 80122E88 8FB00010 */ lw $s0, 0x10($sp)
|
||||
/* B958C 80122E8C 03E00008 */ jr $ra
|
||||
/* B9590 80122E90 27BD0020 */ addiu $sp, $sp, 0x20
|
@ -1,28 +0,0 @@
|
||||
.set noat # allow manual use of $at
|
||||
.set noreorder # don't insert nops after branches
|
||||
|
||||
glabel free_entity_model_by_ref
|
||||
/* B9594 80122E94 27BDFFE8 */ addiu $sp, $sp, -0x18
|
||||
/* B9598 80122E98 0080282D */ daddu $a1, $a0, $zero
|
||||
/* B959C 80122E9C 3C038015 */ lui $v1, %hi(gCurrentEntityModelList)
|
||||
/* B95A0 80122EA0 8C634370 */ lw $v1, %lo(gCurrentEntityModelList)($v1)
|
||||
/* B95A4 80122EA4 0000202D */ daddu $a0, $zero, $zero
|
||||
/* B95A8 80122EA8 AFBF0010 */ sw $ra, 0x10($sp)
|
||||
.L80122EAC:
|
||||
/* B95AC 80122EAC 8C620000 */ lw $v0, ($v1)
|
||||
/* B95B0 80122EB0 10450006 */ beq $v0, $a1, .L80122ECC
|
||||
/* B95B4 80122EB4 28820100 */ slti $v0, $a0, 0x100
|
||||
/* B95B8 80122EB8 24840001 */ addiu $a0, $a0, 1
|
||||
/* B95BC 80122EBC 28820100 */ slti $v0, $a0, 0x100
|
||||
/* B95C0 80122EC0 1440FFFA */ bnez $v0, .L80122EAC
|
||||
/* B95C4 80122EC4 24630004 */ addiu $v1, $v1, 4
|
||||
/* B95C8 80122EC8 28820100 */ slti $v0, $a0, 0x100
|
||||
.L80122ECC:
|
||||
/* B95CC 80122ECC 10400003 */ beqz $v0, .L80122EDC
|
||||
/* B95D0 80122ED0 00000000 */ nop
|
||||
/* B95D4 80122ED4 0C048B7F */ jal free_entity_model_by_index
|
||||
/* B95D8 80122ED8 00000000 */ nop
|
||||
.L80122EDC:
|
||||
/* B95DC 80122EDC 8FBF0010 */ lw $ra, 0x10($sp)
|
||||
/* B95E0 80122EE0 03E00008 */ jr $ra
|
||||
/* B95E4 80122EE4 27BD0018 */ addiu $sp, $sp, 0x18
|
@ -1,30 +0,0 @@
|
||||
.set noat # allow manual use of $at
|
||||
.set noreorder # don't insert nops after branches
|
||||
|
||||
glabel func_80122D7C
|
||||
/* B947C 80122D7C 2402F7FF */ addiu $v0, $zero, -0x801
|
||||
/* B9480 80122D80 00822024 */ and $a0, $a0, $v0
|
||||
/* B9484 80122D84 3C028015 */ lui $v0, %hi(gCurrentEntityModelList)
|
||||
/* B9488 80122D88 8C424370 */ lw $v0, %lo(gCurrentEntityModelList)($v0)
|
||||
/* B948C 80122D8C 00042080 */ sll $a0, $a0, 2
|
||||
/* B9490 80122D90 00822021 */ addu $a0, $a0, $v0
|
||||
/* B9494 80122D94 8C840000 */ lw $a0, ($a0)
|
||||
/* B9498 80122D98 1080000E */ beqz $a0, .L80122DD4
|
||||
/* B949C 80122D9C 00000000 */ nop
|
||||
/* B94A0 80122DA0 8C820000 */ lw $v0, ($a0)
|
||||
/* B94A4 80122DA4 1040000B */ beqz $v0, .L80122DD4
|
||||
/* B94A8 80122DA8 00000000 */ nop
|
||||
/* B94AC 80122DAC 14A00003 */ bnez $a1, .L80122DBC
|
||||
/* B94B0 80122DB0 00000000 */ nop
|
||||
/* B94B4 80122DB4 3C058015 */ lui $a1, %hi(D_8014C260)
|
||||
/* B94B8 80122DB8 24A5C260 */ addiu $a1, $a1, %lo(D_8014C260)
|
||||
.L80122DBC:
|
||||
/* B94BC 80122DBC 3C013F80 */ lui $at, 0x3f80
|
||||
/* B94C0 80122DC0 44810000 */ mtc1 $at, $f0
|
||||
/* B94C4 80122DC4 AC850010 */ sw $a1, 0x10($a0)
|
||||
/* B94C8 80122DC8 AC850058 */ sw $a1, 0x58($a0)
|
||||
/* B94CC 80122DCC E4800008 */ swc1 $f0, 8($a0)
|
||||
/* B94D0 80122DD0 E480000C */ swc1 $f0, 0xc($a0)
|
||||
.L80122DD4:
|
||||
/* B94D4 80122DD4 03E00008 */ jr $ra
|
||||
/* B94D8 80122DD8 00000000 */ nop
|
@ -1,14 +0,0 @@
|
||||
.set noat # allow manual use of $at
|
||||
.set noreorder # don't insert nops after branches
|
||||
|
||||
glabel func_80122F64
|
||||
/* B9664 80122F64 2402F7FF */ addiu $v0, $zero, -0x801
|
||||
/* B9668 80122F68 00822024 */ and $a0, $a0, $v0
|
||||
/* B966C 80122F6C 3C028015 */ lui $v0, %hi(gCurrentEntityModelList)
|
||||
/* B9670 80122F70 8C424370 */ lw $v0, %lo(gCurrentEntityModelList)($v0)
|
||||
/* B9674 80122F74 00042080 */ sll $a0, $a0, 2
|
||||
/* B9678 80122F78 00822021 */ addu $a0, $a0, $v0
|
||||
/* B967C 80122F7C 8C820000 */ lw $v0, ($a0)
|
||||
/* B9680 80122F80 AC460060 */ sw $a2, 0x60($v0)
|
||||
/* B9684 80122F84 03E00008 */ jr $ra
|
||||
/* B9688 80122F88 AC450064 */ sw $a1, 0x64($v0)
|
@ -1,15 +0,0 @@
|
||||
.set noat # allow manual use of $at
|
||||
.set noreorder # don't insert nops after branches
|
||||
|
||||
glabel func_80122F8C
|
||||
/* B968C 80122F8C 2402F7FF */ addiu $v0, $zero, -0x801
|
||||
/* B9690 80122F90 00822024 */ and $a0, $a0, $v0
|
||||
/* B9694 80122F94 3C028015 */ lui $v0, %hi(gCurrentEntityModelList)
|
||||
/* B9698 80122F98 8C424370 */ lw $v0, %lo(gCurrentEntityModelList)($v0)
|
||||
/* B969C 80122F9C 00042080 */ sll $a0, $a0, 2
|
||||
/* B96A0 80122FA0 00822021 */ addu $a0, $a0, $v0
|
||||
/* B96A4 80122FA4 8C830000 */ lw $v1, ($a0)
|
||||
/* B96A8 80122FA8 8C620000 */ lw $v0, ($v1)
|
||||
/* B96AC 80122FAC 00451025 */ or $v0, $v0, $a1
|
||||
/* B96B0 80122FB0 03E00008 */ jr $ra
|
||||
/* B96B4 80122FB4 AC620000 */ sw $v0, ($v1)
|
@ -1,17 +0,0 @@
|
||||
.set noat # allow manual use of $at
|
||||
.set noreorder # don't insert nops after branches
|
||||
|
||||
glabel func_80122FB8
|
||||
/* B96B8 80122FB8 2402F7FF */ addiu $v0, $zero, -0x801
|
||||
/* B96BC 80122FBC 00822024 */ and $a0, $a0, $v0
|
||||
/* B96C0 80122FC0 3C028015 */ lui $v0, %hi(gCurrentEntityModelList)
|
||||
/* B96C4 80122FC4 8C424370 */ lw $v0, %lo(gCurrentEntityModelList)($v0)
|
||||
/* B96C8 80122FC8 00042080 */ sll $a0, $a0, 2
|
||||
/* B96CC 80122FCC 00822021 */ addu $a0, $a0, $v0
|
||||
/* B96D0 80122FD0 8C840000 */ lw $a0, ($a0)
|
||||
/* B96D4 80122FD4 8C820000 */ lw $v0, ($a0)
|
||||
/* B96D8 80122FD8 2403FFF0 */ addiu $v1, $zero, -0x10
|
||||
/* B96DC 80122FDC 00431024 */ and $v0, $v0, $v1
|
||||
/* B96E0 80122FE0 00451025 */ or $v0, $v0, $a1
|
||||
/* B96E4 80122FE4 03E00008 */ jr $ra
|
||||
/* B96E8 80122FE8 AC820000 */ sw $v0, ($a0)
|
@ -1,34 +0,0 @@
|
||||
.set noat # allow manual use of $at
|
||||
.set noreorder # don't insert nops after branches
|
||||
|
||||
glabel func_801234E0
|
||||
/* B9BE0 801234E0 27BDFFE8 */ addiu $sp, $sp, -0x18
|
||||
/* B9BE4 801234E4 AFB00010 */ sw $s0, 0x10($sp)
|
||||
/* B9BE8 801234E8 0000802D */ daddu $s0, $zero, $zero
|
||||
/* B9BEC 801234EC AFBF0014 */ sw $ra, 0x14($sp)
|
||||
.L801234F0:
|
||||
/* B9BF0 801234F0 3C038015 */ lui $v1, %hi(gCurrentDynamicEntityListPtr)
|
||||
/* B9BF4 801234F4 8C634420 */ lw $v1, %lo(gCurrentDynamicEntityListPtr)($v1)
|
||||
/* B9BF8 801234F8 00101080 */ sll $v0, $s0, 2
|
||||
/* B9BFC 801234FC 00431021 */ addu $v0, $v0, $v1
|
||||
/* B9C00 80123500 8C430000 */ lw $v1, ($v0)
|
||||
/* B9C04 80123504 5060000B */ beql $v1, $zero, .L80123534
|
||||
/* B9C08 80123508 26100001 */ addiu $s0, $s0, 1
|
||||
/* B9C0C 8012350C 8C640000 */ lw $a0, ($v1)
|
||||
/* B9C10 80123510 30820002 */ andi $v0, $a0, 2
|
||||
/* B9C14 80123514 14400007 */ bnez $v0, .L80123534
|
||||
/* B9C18 80123518 26100001 */ addiu $s0, $s0, 1
|
||||
/* B9C1C 8012351C 30820004 */ andi $v0, $a0, 4
|
||||
/* B9C20 80123520 10400004 */ beqz $v0, .L80123534
|
||||
/* B9C24 80123524 00000000 */ nop
|
||||
/* B9C28 80123528 8C620008 */ lw $v0, 8($v1)
|
||||
/* B9C2C 8012352C 0040F809 */ jalr $v0
|
||||
/* B9C30 80123530 00000000 */ nop
|
||||
.L80123534:
|
||||
/* B9C34 80123534 2A020010 */ slti $v0, $s0, 0x10
|
||||
/* B9C38 80123538 1440FFED */ bnez $v0, .L801234F0
|
||||
/* B9C3C 8012353C 00000000 */ nop
|
||||
/* B9C40 80123540 8FBF0014 */ lw $ra, 0x14($sp)
|
||||
/* B9C44 80123544 8FB00010 */ lw $s0, 0x10($sp)
|
||||
/* B9C48 80123548 03E00008 */ jr $ra
|
||||
/* B9C4C 8012354C 27BD0018 */ addiu $sp, $sp, 0x18
|
@ -1,34 +0,0 @@
|
||||
.set noat # allow manual use of $at
|
||||
.set noreorder # don't insert nops after branches
|
||||
|
||||
glabel func_80123550
|
||||
/* B9C50 80123550 27BDFFE8 */ addiu $sp, $sp, -0x18
|
||||
/* B9C54 80123554 AFB00010 */ sw $s0, 0x10($sp)
|
||||
/* B9C58 80123558 0000802D */ daddu $s0, $zero, $zero
|
||||
/* B9C5C 8012355C AFBF0014 */ sw $ra, 0x14($sp)
|
||||
.L80123560:
|
||||
/* B9C60 80123560 3C038015 */ lui $v1, %hi(gCurrentDynamicEntityListPtr)
|
||||
/* B9C64 80123564 8C634420 */ lw $v1, %lo(gCurrentDynamicEntityListPtr)($v1)
|
||||
/* B9C68 80123568 00101080 */ sll $v0, $s0, 2
|
||||
/* B9C6C 8012356C 00431021 */ addu $v0, $v0, $v1
|
||||
/* B9C70 80123570 8C430000 */ lw $v1, ($v0)
|
||||
/* B9C74 80123574 5060000B */ beql $v1, $zero, .L801235A4
|
||||
/* B9C78 80123578 26100001 */ addiu $s0, $s0, 1
|
||||
/* B9C7C 8012357C 8C640000 */ lw $a0, ($v1)
|
||||
/* B9C80 80123580 30820002 */ andi $v0, $a0, 2
|
||||
/* B9C84 80123584 14400007 */ bnez $v0, .L801235A4
|
||||
/* B9C88 80123588 26100001 */ addiu $s0, $s0, 1
|
||||
/* B9C8C 8012358C 30820008 */ andi $v0, $a0, 8
|
||||
/* B9C90 80123590 10400004 */ beqz $v0, .L801235A4
|
||||
/* B9C94 80123594 00000000 */ nop
|
||||
/* B9C98 80123598 8C620008 */ lw $v0, 8($v1)
|
||||
/* B9C9C 8012359C 0040F809 */ jalr $v0
|
||||
/* B9CA0 801235A0 00000000 */ nop
|
||||
.L801235A4:
|
||||
/* B9CA4 801235A4 2A020010 */ slti $v0, $s0, 0x10
|
||||
/* B9CA8 801235A8 1440FFED */ bnez $v0, .L80123560
|
||||
/* B9CAC 801235AC 00000000 */ nop
|
||||
/* B9CB0 801235B0 8FBF0014 */ lw $ra, 0x14($sp)
|
||||
/* B9CB4 801235B4 8FB00010 */ lw $s0, 0x10($sp)
|
||||
/* B9CB8 801235B8 03E00008 */ jr $ra
|
||||
/* B9CBC 801235BC 27BD0018 */ addiu $sp, $sp, 0x18
|
@ -1,37 +0,0 @@
|
||||
.set noat # allow manual use of $at
|
||||
.set noreorder # don't insert nops after branches
|
||||
|
||||
glabel func_801235C0
|
||||
/* B9CC0 801235C0 3C028007 */ lui $v0, %hi(gGameStatusPtr)
|
||||
/* B9CC4 801235C4 8C42419C */ lw $v0, %lo(gGameStatusPtr)($v0)
|
||||
/* B9CC8 801235C8 27BDFFE0 */ addiu $sp, $sp, -0x20
|
||||
/* B9CCC 801235CC AFBF0018 */ sw $ra, 0x18($sp)
|
||||
/* B9CD0 801235D0 AFB10014 */ sw $s1, 0x14($sp)
|
||||
/* B9CD4 801235D4 AFB00010 */ sw $s0, 0x10($sp)
|
||||
/* B9CD8 801235D8 80420070 */ lb $v0, 0x70($v0)
|
||||
/* B9CDC 801235DC 10400003 */ beqz $v0, .L801235EC
|
||||
/* B9CE0 801235E0 30820800 */ andi $v0, $a0, 0x800
|
||||
/* B9CE4 801235E4 10400010 */ beqz $v0, .L80123628
|
||||
/* B9CE8 801235E8 00000000 */ nop
|
||||
.L801235EC:
|
||||
/* B9CEC 801235EC 2402F7FF */ addiu $v0, $zero, -0x801
|
||||
/* B9CF0 801235F0 00822024 */ and $a0, $a0, $v0
|
||||
/* B9CF4 801235F4 3C118015 */ lui $s1, %hi(gCurrentDynamicEntityListPtr)
|
||||
/* B9CF8 801235F8 26314420 */ addiu $s1, $s1, %lo(gCurrentDynamicEntityListPtr)
|
||||
/* B9CFC 801235FC 8E220000 */ lw $v0, ($s1)
|
||||
/* B9D00 80123600 00048080 */ sll $s0, $a0, 2
|
||||
/* B9D04 80123604 02021021 */ addu $v0, $s0, $v0
|
||||
/* B9D08 80123608 8C440000 */ lw $a0, ($v0)
|
||||
/* B9D0C 8012360C 10800006 */ beqz $a0, .L80123628
|
||||
/* B9D10 80123610 00000000 */ nop
|
||||
/* B9D14 80123614 0C00AB4B */ jal heap_free
|
||||
/* B9D18 80123618 00000000 */ nop
|
||||
/* B9D1C 8012361C 8E220000 */ lw $v0, ($s1)
|
||||
/* B9D20 80123620 02021021 */ addu $v0, $s0, $v0
|
||||
/* B9D24 80123624 AC400000 */ sw $zero, ($v0)
|
||||
.L80123628:
|
||||
/* B9D28 80123628 8FBF0018 */ lw $ra, 0x18($sp)
|
||||
/* B9D2C 8012362C 8FB10014 */ lw $s1, 0x14($sp)
|
||||
/* B9D30 80123630 8FB00010 */ lw $s0, 0x10($sp)
|
||||
/* B9D34 80123634 03E00008 */ jr $ra
|
||||
/* B9D38 80123638 27BD0020 */ addiu $sp, $sp, 0x20
|
@ -1,40 +0,0 @@
|
||||
.set noat # allow manual use of $at
|
||||
.set noreorder # don't insert nops after branches
|
||||
|
||||
glabel init_entity_models
|
||||
/* B7358 80120C58 3C028007 */ lui $v0, %hi(gGameStatusPtr)
|
||||
/* B735C 80120C5C 8C42419C */ lw $v0, %lo(gGameStatusPtr)($v0)
|
||||
/* B7360 80120C60 80420070 */ lb $v0, 0x70($v0)
|
||||
/* B7364 80120C64 14400005 */ bnez $v0, .L80120C7C
|
||||
/* B7368 80120C68 00000000 */ nop
|
||||
/* B736C 80120C6C 3C028015 */ lui $v0, %hi(gWorldEntityModelList)
|
||||
/* B7370 80120C70 24423B70 */ addiu $v0, $v0, %lo(gWorldEntityModelList)
|
||||
/* B7374 80120C74 08048321 */ j .L80120C84
|
||||
/* B7378 80120C78 00000000 */ nop
|
||||
.L80120C7C:
|
||||
/* B737C 80120C7C 3C028015 */ lui $v0, %hi(gBattleEntityModelList)
|
||||
/* B7380 80120C80 24423F70 */ addiu $v0, $v0, %lo(gBattleEntityModelList)
|
||||
.L80120C84:
|
||||
/* B7384 80120C84 3C018015 */ lui $at, %hi(gCurrentEntityModelList)
|
||||
/* B7388 80120C88 AC224370 */ sw $v0, %lo(gCurrentEntityModelList)($at)
|
||||
/* B738C 80120C8C 2402000A */ addiu $v0, $zero, 0xa
|
||||
/* B7390 80120C90 3C018015 */ lui $at, %hi(D_8015437C)
|
||||
/* B7394 80120C94 AC22437C */ sw $v0, %lo(D_8015437C)($at)
|
||||
/* B7398 80120C98 3C018015 */ lui $at, %hi(D_80154380)
|
||||
/* B739C 80120C9C AC224380 */ sw $v0, %lo(D_80154380)($at)
|
||||
/* B73A0 80120CA0 3C018015 */ lui $at, %hi(D_80154384)
|
||||
/* B73A4 80120CA4 AC224384 */ sw $v0, %lo(D_80154384)($at)
|
||||
/* B73A8 80120CA8 3C018015 */ lui $at, %hi(D_80154388)
|
||||
/* B73AC 80120CAC AC224388 */ sw $v0, %lo(D_80154388)($at)
|
||||
/* B73B0 80120CB0 24020320 */ addiu $v0, $zero, 0x320
|
||||
/* B73B4 80120CB4 3C018015 */ lui $at, %hi(D_8015438C)
|
||||
/* B73B8 80120CB8 AC22438C */ sw $v0, %lo(D_8015438C)($at)
|
||||
/* B73BC 80120CBC 240203E8 */ addiu $v0, $zero, 0x3e8
|
||||
/* B73C0 80120CC0 3C018015 */ lui $at, %hi(gEntityModelCount)
|
||||
/* B73C4 80120CC4 AC201318 */ sw $zero, %lo(gEntityModelCount)($at)
|
||||
/* B73C8 80120CC8 3C018015 */ lui $at, %hi(D_80154378)
|
||||
/* B73CC 80120CCC AC204378 */ sw $zero, %lo(D_80154378)($at)
|
||||
/* B73D0 80120CD0 3C018015 */ lui $at, %hi(D_80154390)
|
||||
/* B73D4 80120CD4 AC224390 */ sw $v0, %lo(D_80154390)($at)
|
||||
/* B73D8 80120CD8 03E00008 */ jr $ra
|
||||
/* B73DC 80120CDC 00000000 */ nop
|
@ -1,77 +0,0 @@
|
||||
.set noat # allow manual use of $at
|
||||
.set noreorder # don't insert nops after branches
|
||||
|
||||
glabel load_entity_model
|
||||
/* B73E0 80120CE0 3C038015 */ lui $v1, %hi(gCurrentEntityModelList)
|
||||
/* B73E4 80120CE4 8C634370 */ lw $v1, %lo(gCurrentEntityModelList)($v1)
|
||||
/* B73E8 80120CE8 27BDFFE0 */ addiu $sp, $sp, -0x20
|
||||
/* B73EC 80120CEC AFB10014 */ sw $s1, 0x14($sp)
|
||||
/* B73F0 80120CF0 0080882D */ daddu $s1, $a0, $zero
|
||||
/* B73F4 80120CF4 AFB00010 */ sw $s0, 0x10($sp)
|
||||
/* B73F8 80120CF8 0000802D */ daddu $s0, $zero, $zero
|
||||
/* B73FC 80120CFC AFBF0018 */ sw $ra, 0x18($sp)
|
||||
.L80120D00:
|
||||
/* B7400 80120D00 8C620000 */ lw $v0, ($v1)
|
||||
/* B7404 80120D04 10400006 */ beqz $v0, .L80120D20
|
||||
/* B7408 80120D08 2A020100 */ slti $v0, $s0, 0x100
|
||||
/* B740C 80120D0C 26100001 */ addiu $s0, $s0, 1
|
||||
/* B7410 80120D10 2A020100 */ slti $v0, $s0, 0x100
|
||||
/* B7414 80120D14 1440FFFA */ bnez $v0, .L80120D00
|
||||
/* B7418 80120D18 24630004 */ addiu $v1, $v1, 4
|
||||
/* B741C 80120D1C 2A020100 */ slti $v0, $s0, 0x100
|
||||
.L80120D20:
|
||||
/* B7420 80120D20 14400003 */ bnez $v0, .L80120D30
|
||||
/* B7424 80120D24 00000000 */ nop
|
||||
.L80120D28:
|
||||
/* B7428 80120D28 0804834A */ j .L80120D28
|
||||
/* B742C 80120D2C 00000000 */ nop
|
||||
.L80120D30:
|
||||
/* B7430 80120D30 0C00AB39 */ jal heap_malloc
|
||||
/* B7434 80120D34 24040068 */ addiu $a0, $zero, 0x68
|
||||
/* B7438 80120D38 00102080 */ sll $a0, $s0, 2
|
||||
/* B743C 80120D3C 3C038015 */ lui $v1, %hi(gCurrentEntityModelList)
|
||||
/* B7440 80120D40 8C634370 */ lw $v1, %lo(gCurrentEntityModelList)($v1)
|
||||
/* B7444 80120D44 3C058015 */ lui $a1, %hi(gEntityModelCount)
|
||||
/* B7448 80120D48 24A51318 */ addiu $a1, $a1, %lo(gEntityModelCount)
|
||||
/* B744C 80120D4C 00832021 */ addu $a0, $a0, $v1
|
||||
/* B7450 80120D50 8CA30000 */ lw $v1, ($a1)
|
||||
/* B7454 80120D54 0040302D */ daddu $a2, $v0, $zero
|
||||
/* B7458 80120D58 AC860000 */ sw $a2, ($a0)
|
||||
/* B745C 80120D5C 24630001 */ addiu $v1, $v1, 1
|
||||
/* B7460 80120D60 14C00003 */ bnez $a2, .L80120D70
|
||||
/* B7464 80120D64 ACA30000 */ sw $v1, ($a1)
|
||||
.L80120D68:
|
||||
/* B7468 80120D68 0804835A */ j .L80120D68
|
||||
/* B746C 80120D6C 00000000 */ nop
|
||||
.L80120D70:
|
||||
/* B7470 80120D70 3C013F80 */ lui $at, 0x3f80
|
||||
/* B7474 80120D74 44810000 */ mtc1 $at, $f0
|
||||
/* B7478 80120D78 24020017 */ addiu $v0, $zero, 0x17
|
||||
/* B747C 80120D7C ACC20000 */ sw $v0, ($a2)
|
||||
/* B7480 80120D80 24020001 */ addiu $v0, $zero, 1
|
||||
/* B7484 80120D84 A0C20004 */ sb $v0, 4($a2)
|
||||
/* B7488 80120D88 ACC00014 */ sw $zero, 0x14($a2)
|
||||
/* B748C 80120D8C ACD10010 */ sw $s1, 0x10($a2)
|
||||
/* B7490 80120D90 E4C00008 */ swc1 $f0, 8($a2)
|
||||
/* B7494 80120D94 16200004 */ bnez $s1, .L80120DA8
|
||||
/* B7498 80120D98 E4C0000C */ swc1 $f0, 0xc($a2)
|
||||
/* B749C 80120D9C 3C028015 */ lui $v0, %hi(D_8014C260)
|
||||
/* B74A0 80120DA0 2442C260 */ addiu $v0, $v0, %lo(D_8014C260)
|
||||
/* B74A4 80120DA4 ACC20010 */ sw $v0, 0x10($a2)
|
||||
.L80120DA8:
|
||||
/* B74A8 80120DA8 8CC20010 */ lw $v0, 0x10($a2)
|
||||
/* B74AC 80120DAC 3C038007 */ lui $v1, %hi(gGameStatusPtr)
|
||||
/* B74B0 80120DB0 8C63419C */ lw $v1, %lo(gGameStatusPtr)($v1)
|
||||
/* B74B4 80120DB4 ACC0005C */ sw $zero, 0x5c($a2)
|
||||
/* B74B8 80120DB8 ACC00060 */ sw $zero, 0x60($a2)
|
||||
/* B74BC 80120DBC ACC20058 */ sw $v0, 0x58($a2)
|
||||
/* B74C0 80120DC0 80620070 */ lb $v0, 0x70($v1)
|
||||
/* B74C4 80120DC4 54400001 */ bnel $v0, $zero, .L80120DCC
|
||||
/* B74C8 80120DC8 36100800 */ ori $s0, $s0, 0x800
|
||||
.L80120DCC:
|
||||
/* B74CC 80120DCC 0200102D */ daddu $v0, $s0, $zero
|
||||
/* B74D0 80120DD0 8FBF0018 */ lw $ra, 0x18($sp)
|
||||
/* B74D4 80120DD4 8FB10014 */ lw $s1, 0x14($sp)
|
||||
/* B74D8 80120DD8 8FB00010 */ lw $s0, 0x10($sp)
|
||||
/* B74DC 80120DDC 03E00008 */ jr $ra
|
||||
/* B74E0 80120DE0 27BD0020 */ addiu $sp, $sp, 0x20
|
@ -1,34 +0,0 @@
|
||||
.set noat # allow manual use of $at
|
||||
.set noreorder # don't insert nops after branches
|
||||
|
||||
glabel render_dynamic_entities
|
||||
/* B9B70 80123470 27BDFFE8 */ addiu $sp, $sp, -0x18
|
||||
/* B9B74 80123474 AFB00010 */ sw $s0, 0x10($sp)
|
||||
/* B9B78 80123478 0000802D */ daddu $s0, $zero, $zero
|
||||
/* B9B7C 8012347C AFBF0014 */ sw $ra, 0x14($sp)
|
||||
.L80123480:
|
||||
/* B9B80 80123480 3C038015 */ lui $v1, %hi(gCurrentDynamicEntityListPtr)
|
||||
/* B9B84 80123484 8C634420 */ lw $v1, %lo(gCurrentDynamicEntityListPtr)($v1)
|
||||
/* B9B88 80123488 00101080 */ sll $v0, $s0, 2
|
||||
/* B9B8C 8012348C 00431021 */ addu $v0, $v0, $v1
|
||||
/* B9B90 80123490 8C430000 */ lw $v1, ($v0)
|
||||
/* B9B94 80123494 5060000B */ beql $v1, $zero, .L801234C4
|
||||
/* B9B98 80123498 26100001 */ addiu $s0, $s0, 1
|
||||
/* B9B9C 8012349C 8C640000 */ lw $a0, ($v1)
|
||||
/* B9BA0 801234A0 30820002 */ andi $v0, $a0, 2
|
||||
/* B9BA4 801234A4 14400007 */ bnez $v0, .L801234C4
|
||||
/* B9BA8 801234A8 26100001 */ addiu $s0, $s0, 1
|
||||
/* B9BAC 801234AC 30820004 */ andi $v0, $a0, 4
|
||||
/* B9BB0 801234B0 14400004 */ bnez $v0, .L801234C4
|
||||
/* B9BB4 801234B4 00000000 */ nop
|
||||
/* B9BB8 801234B8 8C620008 */ lw $v0, 8($v1)
|
||||
/* B9BBC 801234BC 0040F809 */ jalr $v0
|
||||
/* B9BC0 801234C0 00000000 */ nop
|
||||
.L801234C4:
|
||||
/* B9BC4 801234C4 2A020010 */ slti $v0, $s0, 0x10
|
||||
/* B9BC8 801234C8 1440FFED */ bnez $v0, .L80123480
|
||||
/* B9BCC 801234CC 00000000 */ nop
|
||||
/* B9BD0 801234D0 8FBF0014 */ lw $ra, 0x14($sp)
|
||||
/* B9BD4 801234D4 8FB00010 */ lw $s0, 0x10($sp)
|
||||
/* B9BD8 801234D8 03E00008 */ jr $ra
|
||||
/* B9BDC 801234DC 27BD0018 */ addiu $sp, $sp, 0x18
|
@ -1,20 +0,0 @@
|
||||
.set noat # allow manual use of $at
|
||||
.set noreorder # don't insert nops after branches
|
||||
|
||||
glabel set_entity_model_flags
|
||||
/* B95E8 80122EE8 2402F7FF */ addiu $v0, $zero, -0x801
|
||||
/* B95EC 80122EEC 00822024 */ and $a0, $a0, $v0
|
||||
/* B95F0 80122EF0 3C028015 */ lui $v0, %hi(gCurrentEntityModelList)
|
||||
/* B95F4 80122EF4 8C424370 */ lw $v0, %lo(gCurrentEntityModelList)($v0)
|
||||
/* B95F8 80122EF8 00042080 */ sll $a0, $a0, 2
|
||||
/* B95FC 80122EFC 00822021 */ addu $a0, $a0, $v0
|
||||
/* B9600 80122F00 8C840000 */ lw $a0, ($a0)
|
||||
/* B9604 80122F04 10800005 */ beqz $a0, .L80122F1C
|
||||
/* B9608 80122F08 00000000 */ nop
|
||||
/* B960C 80122F0C 8C820000 */ lw $v0, ($a0)
|
||||
/* B9610 80122F10 10400002 */ beqz $v0, .L80122F1C
|
||||
/* B9614 80122F14 00451025 */ or $v0, $v0, $a1
|
||||
/* B9618 80122F18 AC820000 */ sw $v0, ($a0)
|
||||
.L80122F1C:
|
||||
/* B961C 80122F1C 03E00008 */ jr $ra
|
||||
/* B9620 80122F20 00000000 */ nop
|
@ -1,121 +0,0 @@
|
||||
.set noat # allow manual use of $at
|
||||
.set noreorder # don't insert nops after branches
|
||||
|
||||
.section .rodata
|
||||
|
||||
glabel jtbl_801500B0
|
||||
.word L80120FF0_B76F0, L80121000_B7700, L80121048_B7748, L80121058_B7758, L80121068_B7768, L80121080_B7780, L801210A0_B77A0, L801210C4_B77C4
|
||||
|
||||
.section .text
|
||||
|
||||
glabel step_entity_rendercmd
|
||||
/* B76B8 80120FB8 27BDFFE8 */ addiu $sp, $sp, -0x18
|
||||
/* B76BC 80120FBC 0080302D */ daddu $a2, $a0, $zero
|
||||
/* B76C0 80120FC0 AFBF0010 */ sw $ra, 0x10($sp)
|
||||
/* B76C4 80120FC4 8CC50010 */ lw $a1, 0x10($a2)
|
||||
/* B76C8 80120FC8 8CA30000 */ lw $v1, ($a1)
|
||||
/* B76CC 80120FCC 2C620008 */ sltiu $v0, $v1, 8
|
||||
/* B76D0 80120FD0 10400057 */ beqz $v0, .L80121130
|
||||
/* B76D4 80120FD4 24A50004 */ addiu $a1, $a1, 4
|
||||
/* B76D8 80120FD8 00031080 */ sll $v0, $v1, 2
|
||||
/* B76DC 80120FDC 3C018015 */ lui $at, %hi(jtbl_801500B0)
|
||||
/* B76E0 80120FE0 00220821 */ addu $at, $at, $v0
|
||||
/* B76E4 80120FE4 8C2200B0 */ lw $v0, %lo(jtbl_801500B0)($at)
|
||||
/* B76E8 80120FE8 00400008 */ jr $v0
|
||||
/* B76EC 80120FEC 00000000 */ nop
|
||||
glabel L80120FF0_B76F0
|
||||
/* B76F0 80120FF0 0C048BA5 */ jal free_entity_model_by_ref
|
||||
/* B76F4 80120FF4 00C0202D */ daddu $a0, $a2, $zero
|
||||
/* B76F8 80120FF8 0804844D */ j .L80121134
|
||||
/* B76FC 80120FFC 24020001 */ addiu $v0, $zero, 1
|
||||
glabel L80121000_B7700
|
||||
/* B7700 80121000 8CA20000 */ lw $v0, ($a1)
|
||||
/* B7704 80121004 44821000 */ mtc1 $v0, $f2
|
||||
/* B7708 80121008 00000000 */ nop
|
||||
/* B770C 8012100C 468010A1 */ cvt.d.w $f2, $f2
|
||||
/* B7710 80121010 04410006 */ bgez $v0, .L8012102C
|
||||
/* B7714 80121014 24A50004 */ addiu $a1, $a1, 4
|
||||
/* B7718 80121018 3C0141F0 */ lui $at, 0x41f0
|
||||
/* B771C 8012101C 44810800 */ mtc1 $at, $f1
|
||||
/* B7720 80121020 44800000 */ mtc1 $zero, $f0
|
||||
/* B7724 80121024 00000000 */ nop
|
||||
/* B7728 80121028 46201080 */ add.d $f2, $f2, $f0
|
||||
.L8012102C:
|
||||
/* B772C 8012102C 46201020 */ cvt.s.d $f0, $f2
|
||||
/* B7730 80121030 E4C00008 */ swc1 $f0, 8($a2)
|
||||
/* B7734 80121034 8CA20000 */ lw $v0, ($a1)
|
||||
/* B7738 80121038 24A50004 */ addiu $a1, $a1, 4
|
||||
/* B773C 8012103C ACC50010 */ sw $a1, 0x10($a2)
|
||||
/* B7740 80121040 0804844C */ j .L80121130
|
||||
/* B7744 80121044 ACC20014 */ sw $v0, 0x14($a2)
|
||||
glabel L80121048_B7748
|
||||
/* B7748 80121048 8CC30058 */ lw $v1, 0x58($a2)
|
||||
/* B774C 8012104C 24020001 */ addiu $v0, $zero, 1
|
||||
/* B7750 80121050 0804844D */ j .L80121134
|
||||
/* B7754 80121054 ACC30010 */ sw $v1, 0x10($a2)
|
||||
glabel L80121058_B7758
|
||||
/* B7758 80121058 24020001 */ addiu $v0, $zero, 1
|
||||
/* B775C 8012105C ACC50058 */ sw $a1, 0x58($a2)
|
||||
/* B7760 80121060 0804844D */ j .L80121134
|
||||
/* B7764 80121064 ACC50010 */ sw $a1, 0x10($a2)
|
||||
glabel L80121068_B7768
|
||||
/* B7768 80121068 90A30003 */ lbu $v1, 3($a1)
|
||||
/* B776C 8012106C 24A50004 */ addiu $a1, $a1, 4
|
||||
/* B7770 80121070 24020001 */ addiu $v0, $zero, 1
|
||||
/* B7774 80121074 ACC50010 */ sw $a1, 0x10($a2)
|
||||
/* B7778 80121078 0804844D */ j .L80121134
|
||||
/* B777C 8012107C A0C30004 */ sb $v1, 4($a2)
|
||||
glabel L80121080_B7780
|
||||
/* B7780 80121080 8CA40000 */ lw $a0, ($a1)
|
||||
/* B7784 80121084 24A50004 */ addiu $a1, $a1, 4
|
||||
/* B7788 80121088 8CC30000 */ lw $v1, ($a2)
|
||||
/* B778C 8012108C 24020001 */ addiu $v0, $zero, 1
|
||||
/* B7790 80121090 ACC50010 */ sw $a1, 0x10($a2)
|
||||
/* B7794 80121094 00641825 */ or $v1, $v1, $a0
|
||||
/* B7798 80121098 0804844D */ j .L80121134
|
||||
/* B779C 8012109C ACC30000 */ sw $v1, ($a2)
|
||||
glabel L801210A0_B77A0
|
||||
/* B77A0 801210A0 8CA40000 */ lw $a0, ($a1)
|
||||
/* B77A4 801210A4 24A50004 */ addiu $a1, $a1, 4
|
||||
/* B77A8 801210A8 8CC30000 */ lw $v1, ($a2)
|
||||
/* B77AC 801210AC 24020001 */ addiu $v0, $zero, 1
|
||||
/* B77B0 801210B0 ACC50010 */ sw $a1, 0x10($a2)
|
||||
/* B77B4 801210B4 00042027 */ nor $a0, $zero, $a0
|
||||
/* B77B8 801210B8 00641824 */ and $v1, $v1, $a0
|
||||
/* B77BC 801210BC 0804844D */ j .L80121134
|
||||
/* B77C0 801210C0 ACC30000 */ sw $v1, ($a2)
|
||||
glabel L801210C4_B77C4
|
||||
/* B77C4 801210C4 8CA20000 */ lw $v0, ($a1)
|
||||
/* B77C8 801210C8 8CC30014 */ lw $v1, 0x14($a2)
|
||||
/* B77CC 801210CC 44821000 */ mtc1 $v0, $f2
|
||||
/* B77D0 801210D0 00000000 */ nop
|
||||
/* B77D4 801210D4 468010A1 */ cvt.d.w $f2, $f2
|
||||
/* B77D8 801210D8 04410006 */ bgez $v0, .L801210F4
|
||||
/* B77DC 801210DC 24A50004 */ addiu $a1, $a1, 4
|
||||
/* B77E0 801210E0 3C0141F0 */ lui $at, 0x41f0
|
||||
/* B77E4 801210E4 44810800 */ mtc1 $at, $f1
|
||||
/* B77E8 801210E8 44800000 */ mtc1 $zero, $f0
|
||||
/* B77EC 801210EC 00000000 */ nop
|
||||
/* B77F0 801210F0 46201080 */ add.d $f2, $f2, $f0
|
||||
.L801210F4:
|
||||
/* B77F4 801210F4 46201020 */ cvt.s.d $f0, $f2
|
||||
/* B77F8 801210F8 E4C00008 */ swc1 $f0, 8($a2)
|
||||
/* B77FC 801210FC 8CA20000 */ lw $v0, ($a1)
|
||||
/* B7800 80121100 24A50004 */ addiu $a1, $a1, 4
|
||||
/* B7804 80121104 AC620000 */ sw $v0, ($v1)
|
||||
/* B7808 80121108 8CA20000 */ lw $v0, ($a1)
|
||||
/* B780C 8012110C 24A50004 */ addiu $a1, $a1, 4
|
||||
/* B7810 80121110 AC620004 */ sw $v0, 4($v1)
|
||||
/* B7814 80121114 8CA20000 */ lw $v0, ($a1)
|
||||
/* B7818 80121118 24A50004 */ addiu $a1, $a1, 4
|
||||
/* B781C 8012111C AC620008 */ sw $v0, 8($v1)
|
||||
/* B7820 80121120 8CA20000 */ lw $v0, ($a1)
|
||||
/* B7824 80121124 24A50004 */ addiu $a1, $a1, 4
|
||||
/* B7828 80121128 AC62000C */ sw $v0, 0xc($v1)
|
||||
/* B782C 8012112C ACC50010 */ sw $a1, 0x10($a2)
|
||||
.L80121130:
|
||||
/* B7830 80121130 0000102D */ daddu $v0, $zero, $zero
|
||||
.L80121134:
|
||||
/* B7834 80121134 8FBF0010 */ lw $ra, 0x10($sp)
|
||||
/* B7838 80121138 03E00008 */ jr $ra
|
||||
/* B783C 8012113C 27BD0018 */ addiu $sp, $sp, 0x18
|
@ -1,33 +0,0 @@
|
||||
.set noat # allow manual use of $at
|
||||
.set noreorder # don't insert nops after branches
|
||||
|
||||
glabel update_dynamic_entities
|
||||
/* B9B04 80123404 27BDFFE0 */ addiu $sp, $sp, -0x20
|
||||
/* B9B08 80123408 AFB00010 */ sw $s0, 0x10($sp)
|
||||
/* B9B0C 8012340C 0000802D */ daddu $s0, $zero, $zero
|
||||
/* B9B10 80123410 AFB10014 */ sw $s1, 0x14($sp)
|
||||
/* B9B14 80123414 2411FFFD */ addiu $s1, $zero, -3
|
||||
/* B9B18 80123418 AFBF0018 */ sw $ra, 0x18($sp)
|
||||
.L8012341C:
|
||||
/* B9B1C 8012341C 3C038015 */ lui $v1, %hi(gCurrentDynamicEntityListPtr)
|
||||
/* B9B20 80123420 8C634420 */ lw $v1, %lo(gCurrentDynamicEntityListPtr)($v1)
|
||||
/* B9B24 80123424 00101080 */ sll $v0, $s0, 2
|
||||
/* B9B28 80123428 00431021 */ addu $v0, $v0, $v1
|
||||
/* B9B2C 8012342C 8C440000 */ lw $a0, ($v0)
|
||||
/* B9B30 80123430 50800007 */ beql $a0, $zero, .L80123450
|
||||
/* B9B34 80123434 26100001 */ addiu $s0, $s0, 1
|
||||
/* B9B38 80123438 8C820000 */ lw $v0, ($a0)
|
||||
/* B9B3C 8012343C 8C830004 */ lw $v1, 4($a0)
|
||||
/* B9B40 80123440 00511024 */ and $v0, $v0, $s1
|
||||
/* B9B44 80123444 0060F809 */ jalr $v1
|
||||
/* B9B48 80123448 AC820000 */ sw $v0, ($a0)
|
||||
/* B9B4C 8012344C 26100001 */ addiu $s0, $s0, 1
|
||||
.L80123450:
|
||||
/* B9B50 80123450 2A020010 */ slti $v0, $s0, 0x10
|
||||
/* B9B54 80123454 1440FFF1 */ bnez $v0, .L8012341C
|
||||
/* B9B58 80123458 00000000 */ nop
|
||||
/* B9B5C 8012345C 8FBF0018 */ lw $ra, 0x18($sp)
|
||||
/* B9B60 80123460 8FB10014 */ lw $s1, 0x14($sp)
|
||||
/* B9B64 80123464 8FB00010 */ lw $s0, 0x10($sp)
|
||||
/* B9B68 80123468 03E00008 */ jr $ra
|
||||
/* B9B6C 8012346C 27BD0020 */ addiu $sp, $sp, 0x20
|
@ -1,52 +0,0 @@
|
||||
.set noat # allow manual use of $at
|
||||
.set noreorder # don't insert nops after branches
|
||||
|
||||
glabel update_entity_rendercmd
|
||||
/* B7604 80120F04 3C028007 */ lui $v0, %hi(gGameStatusPtr)
|
||||
/* B7608 80120F08 8C42419C */ lw $v0, %lo(gGameStatusPtr)($v0)
|
||||
/* B760C 80120F0C 27BDFFE8 */ addiu $sp, $sp, -0x18
|
||||
/* B7610 80120F10 AFBF0014 */ sw $ra, 0x14($sp)
|
||||
/* B7614 80120F14 AFB00010 */ sw $s0, 0x10($sp)
|
||||
/* B7618 80120F18 80420070 */ lb $v0, 0x70($v0)
|
||||
/* B761C 80120F1C 10400003 */ beqz $v0, .L80120F2C
|
||||
/* B7620 80120F20 30820800 */ andi $v0, $a0, 0x800
|
||||
/* B7624 80120F24 10400020 */ beqz $v0, .L80120FA8
|
||||
/* B7628 80120F28 00000000 */ nop
|
||||
.L80120F2C:
|
||||
/* B762C 80120F2C 2402F7FF */ addiu $v0, $zero, -0x801
|
||||
/* B7630 80120F30 00822024 */ and $a0, $a0, $v0
|
||||
/* B7634 80120F34 3C038015 */ lui $v1, %hi(gCurrentEntityModelList)
|
||||
/* B7638 80120F38 8C634370 */ lw $v1, %lo(gCurrentEntityModelList)($v1)
|
||||
/* B763C 80120F3C 00041080 */ sll $v0, $a0, 2
|
||||
/* B7640 80120F40 00431021 */ addu $v0, $v0, $v1
|
||||
/* B7644 80120F44 8C500000 */ lw $s0, ($v0)
|
||||
/* B7648 80120F48 12000017 */ beqz $s0, .L80120FA8
|
||||
/* B764C 80120F4C 00000000 */ nop
|
||||
/* B7650 80120F50 8E030000 */ lw $v1, ($s0)
|
||||
/* B7654 80120F54 10600014 */ beqz $v1, .L80120FA8
|
||||
/* B7658 80120F58 30620020 */ andi $v0, $v1, 0x20
|
||||
/* B765C 80120F5C 14400012 */ bnez $v0, .L80120FA8
|
||||
/* B7660 80120F60 3C020002 */ lui $v0, 2
|
||||
/* B7664 80120F64 00621024 */ and $v0, $v1, $v0
|
||||
/* B7668 80120F68 1440000F */ bnez $v0, .L80120FA8
|
||||
/* B766C 80120F6C 2402FEFF */ addiu $v0, $zero, -0x101
|
||||
/* B7670 80120F70 C6000008 */ lwc1 $f0, 8($s0)
|
||||
/* B7674 80120F74 C602000C */ lwc1 $f2, 0xc($s0)
|
||||
/* B7678 80120F78 46020001 */ sub.s $f0, $f0, $f2
|
||||
/* B767C 80120F7C 44801000 */ mtc1 $zero, $f2
|
||||
/* B7680 80120F80 00621024 */ and $v0, $v1, $v0
|
||||
/* B7684 80120F84 AE020000 */ sw $v0, ($s0)
|
||||
/* B7688 80120F88 4602003E */ c.le.s $f0, $f2
|
||||
/* B768C 80120F8C 00000000 */ nop
|
||||
/* B7690 80120F90 45000005 */ bc1f .L80120FA8
|
||||
/* B7694 80120F94 E6000008 */ swc1 $f0, 8($s0)
|
||||
.L80120F98:
|
||||
/* B7698 80120F98 0C0483EE */ jal step_entity_rendercmd
|
||||
/* B769C 80120F9C 0200202D */ daddu $a0, $s0, $zero
|
||||
/* B76A0 80120FA0 1440FFFD */ bnez $v0, .L80120F98
|
||||
/* B76A4 80120FA4 00000000 */ nop
|
||||
.L80120FA8:
|
||||
/* B76A8 80120FA8 8FBF0014 */ lw $ra, 0x14($sp)
|
||||
/* B76AC 80120FAC 8FB00010 */ lw $s0, 0x10($sp)
|
||||
/* B76B0 80120FB0 03E00008 */ jr $ra
|
||||
/* B76B4 80120FB4 27BD0018 */ addiu $sp, $sp, 0x18
|
Loading…
Reference in New Issue
Block a user