mirror of
https://github.com/pmret/papermario.git
synced 2024-11-08 12:02:30 +01:00
Tidying and Shops (#282)
* render_curtains * cleanup * more cleanup * cleanup * update symbol addrs * asm update * shop progress * more cleanup * update symbol_addrs * asm cleanup * . * new data splits * rename stuff * . * . * PR stuff
This commit is contained in:
parent
683d0857ff
commit
1c0d26e6c6
2
diff.py
2
diff.py
@ -541,7 +541,7 @@ def dump_objfile() -> Tuple[str, ObjdumpCommand, ObjdumpCommand]:
|
||||
if not os.path.isfile(objfile):
|
||||
fail(f"Not able to find .o file for function: {objfile} is not a file.")
|
||||
|
||||
refobjfile = "ver/us/expected/" + objfile
|
||||
refobjfile = "ver/us/expected/" + os.path.relpath(objfile)
|
||||
if not os.path.isfile(refobjfile):
|
||||
fail(f'Please ensure an OK .o file exists at "{refobjfile}".')
|
||||
|
||||
|
@ -1296,13 +1296,46 @@ typedef struct DecorationTable {
|
||||
/* 0x8BE */ char unk_8BE[30];
|
||||
} DecorationTable; // size = 0x8E8
|
||||
|
||||
typedef struct ShopOwner {
|
||||
/* 0x00 */ s32 npcID;
|
||||
/* 0x04 */ s32 idleAnim;
|
||||
/* 0x08 */ s32 talkAnim;
|
||||
/* 0x0C */ char unk_0C[0x4];
|
||||
/* 0x10 */ Bytecode* unkScript;
|
||||
/* 0x14 */ char unk_14[0x4];
|
||||
/* 0x18 */ s32* shopStringIDs;
|
||||
} ShopOwner;
|
||||
|
||||
typedef struct StaticInventoryItem {
|
||||
/* 0x0 */ s32 unk_00;
|
||||
/* 0x4 */ char unk_04[0x4];
|
||||
/* 0x8 */ s32 unk_08;
|
||||
} StaticInventoryItem; // size = 0xC
|
||||
|
||||
typedef struct StaticPriceItem {
|
||||
/* 0x0 */ s32 itemID;
|
||||
/* 0x4 */ s32 sellPrice;
|
||||
/* 0x8 */ char unk_08[0x4];
|
||||
} StaticPriceItem; // size = 0xC
|
||||
|
||||
typedef struct Shop {
|
||||
/* 0x000 */ char unk_00[16];
|
||||
/* 0x010 */ UNK_PTR owner;
|
||||
/* 0x000 */ s16 flags;
|
||||
/* 0x002 */ s16 numItems;
|
||||
/* 0x004 */ s16 numSpecialPrices;
|
||||
/* 0x006 */ char unk_06[2];
|
||||
/* 0x008 */ s32 unk_08;
|
||||
/* 0x00C */ s32 selectedStoreItemSlot;
|
||||
/* 0x010 */ ShopOwner* owner;
|
||||
/* 0x014 */ UNK_PTR staticItemPositions;
|
||||
/* 0x018 */ UNK_PTR staticInventory;
|
||||
/* 0x01C */ UNK_PTR staticPriceList;
|
||||
/* 0x020 */ char unk_20[828];
|
||||
/* 0x018 */ StaticInventoryItem* staticInventory;
|
||||
/* 0x01C */ StaticPriceItem* staticPriceList;
|
||||
/* 0x020 */ s32 costIconID;
|
||||
/* 0x024 */ s32 inventoryItemFlags;
|
||||
/* 0x028 */ s32** unk_28;
|
||||
/* 0x02C */ char unk_2C[0x328];
|
||||
/* 0x354 */ s16 unk_354;
|
||||
/* 0x356 */ char unk_356[0x2];
|
||||
/* 0x358 */ s32 unk_358;
|
||||
} Shop; // size = 0x35C
|
||||
|
||||
typedef struct Encounter {
|
||||
|
@ -32,6 +32,7 @@ s32 get_area_flag(s32 index);
|
||||
Shadow* get_shadow_by_index(s32 index);
|
||||
s32 get_time_freeze_mode(void);
|
||||
void render_player_model();
|
||||
s16 get_game_mode(void);
|
||||
|
||||
f32 integrate_gravity(void);
|
||||
f32 get_clamped_angle_diff(f32, f32);
|
||||
|
@ -177,6 +177,17 @@ typedef struct StatDrop {
|
||||
#define OVERRIDE_MOVEMENT_SPEED(speed) (speed * 32767)
|
||||
#define NO_OVERRIDE_MOVEMENT_SPEED OVERRIDE_MOVEMENT_SPEED(-1)
|
||||
|
||||
typedef struct EnemyDrops {
|
||||
/* 0x00 */ s8 dropFlags;
|
||||
/* 0x01 */ s8 itemDropChance; // %
|
||||
/* 0x02 */ ItemDrop itemDrops[8];
|
||||
/* 0x32 */ StatDrop heartDrops[8];
|
||||
/* 0x72 */ StatDrop flowerDrops[8];
|
||||
/* 0xB2 */ s16 minCoinBonus;
|
||||
/* 0xB4 */ s16 maxCoinBonus;
|
||||
/* 0xB6 */ char unk_DE[2];
|
||||
} EnemyDrops; // size = 0xB8
|
||||
|
||||
typedef struct StaticNpc {
|
||||
/* 0x000 */ NpcID id;
|
||||
/* 0x004 */ NpcSettings* settings;
|
||||
@ -185,7 +196,7 @@ typedef struct StaticNpc {
|
||||
/* 0x018 */ Script* init;
|
||||
/* 0x01C */ char unk_1C[8];
|
||||
/* 0x024 */ s32 yaw;
|
||||
/* 0x028 */ s8 dropFlags;
|
||||
/* 0x028 */ s8 dropFlags; // TODO: use EnemyDrops (requires tons of map edits)
|
||||
/* 0x029 */ s8 itemDropChance; // %
|
||||
/* 0x02A */ ItemDrop itemDrops[8];
|
||||
/* 0x05A */ StatDrop heartDrops[8];
|
||||
@ -284,7 +295,7 @@ typedef struct Enemy {
|
||||
/* 0xC8 */ s32 unk_C8;
|
||||
/* 0xCC */ s32* animList;
|
||||
/* 0xD0 */ EnemyTerritory* territory;
|
||||
/* 0xD4 */ s16* dropTables;
|
||||
/* 0xD4 */ EnemyDrops* drops;
|
||||
/* 0xD8 */ u32 tattleString;
|
||||
/* 0xDC */ char unk_DC[20];
|
||||
} Enemy; // size = 0xF0
|
||||
|
@ -234,6 +234,7 @@ extern s32* D_80210000;
|
||||
extern u8 D_802D9D70; // player alpha1 copy?
|
||||
extern u8 D_802D9D71; // player alpha2 copy?
|
||||
|
||||
extern DisplayContext D_80164000[];
|
||||
|
||||
extern f32 gCurtainScale;
|
||||
extern f32 gCurtainScaleGoal;
|
||||
@ -353,8 +354,8 @@ extern s32 D_802920E8[];
|
||||
extern s32 D_802920E8[];
|
||||
extern s32 D_80292110[];
|
||||
|
||||
extern UNK_PTR D_800F7BE8;
|
||||
extern UNK_PTR D_800F7BBC;
|
||||
extern s32 D_800F7BE8[];
|
||||
extern s32 D_800F7BBC[];
|
||||
|
||||
extern s32 D_802C05CC;
|
||||
|
||||
@ -364,6 +365,6 @@ extern s16 gCurrentCamID;
|
||||
extern s32 D_803DA800;
|
||||
|
||||
// Dead code
|
||||
extern PlayerStatus* D_800FFC90; // gPlayerStatusPtr
|
||||
extern PlayerStatus* dead_gPlayerStatusPtr;
|
||||
|
||||
#endif
|
||||
|
@ -48,7 +48,6 @@ void save_game_at_player_position(void) {
|
||||
}
|
||||
|
||||
void func_802E1204(Entity* entity) {
|
||||
|
||||
if (!get_global_flag(SI_SAVE_FLAG(95))) {
|
||||
s32* temp = &D_802EB390;
|
||||
*temp = 0;
|
||||
|
@ -9,8 +9,6 @@ void state_init_language_select(void) {
|
||||
}
|
||||
|
||||
void state_init_file_select(void) {
|
||||
Camera* cameras = gCameras;
|
||||
|
||||
D_800A0931 = 0;
|
||||
D_800A0932[0] = 0;
|
||||
disable_player_input();
|
||||
@ -19,30 +17,30 @@ void state_init_file_select(void) {
|
||||
func_801452E8(0, 0);
|
||||
func_80141100();
|
||||
load_model_textures(0, 0, 0);
|
||||
cameras[0].mode = 6;
|
||||
cameras[0].unk_06 = 1;
|
||||
cameras[0].nearClip = 16;
|
||||
cameras[0].farClip = 4096;
|
||||
cameras[0].flags |= 2;
|
||||
gCameras[0].mode = 6;
|
||||
gCameras[0].unk_06 = 1;
|
||||
gCameras[0].nearClip = 16;
|
||||
gCameras[0].farClip = 4096;
|
||||
gCameras[0].flags |= 2;
|
||||
gCurrentCameraID = 0;
|
||||
cameras[1].flags |= 2;
|
||||
cameras[2].flags |= 2;
|
||||
cameras[3].flags |= 2;
|
||||
cameras[0].vfov = 25.0f;
|
||||
gCameras[1].flags |= 2;
|
||||
gCameras[2].flags |= 2;
|
||||
gCameras[3].flags |= 2;
|
||||
gCameras[0].vfov = 25.0f;
|
||||
set_cam_viewport(0, 12, 28, 296, 184);
|
||||
cameras[0].unk_1E = 40;
|
||||
cameras[0].lookAt_eye[0] = 500.0f;
|
||||
cameras[0].lookAt_eye[1] = 1000.0f;
|
||||
cameras[0].lookAt_eye[2] = 1500.0f;
|
||||
cameras[0].unk_5C = 150.0f;
|
||||
cameras[0].backgroundColor[0] = 0;
|
||||
cameras[0].backgroundColor[1] = 0;
|
||||
cameras[0].backgroundColor[2] = 0;
|
||||
cameras[0].unk_54 = 25.0f;
|
||||
cameras[0].unk_58 = 25.0f;
|
||||
cameras[0].unk_1C = 0;
|
||||
cameras[0].unk_20 = 100;
|
||||
cameras[0].unk_22 = 0;
|
||||
gCameras[0].unk_1E = 40;
|
||||
gCameras[0].lookAt_eye[0] = 500.0f;
|
||||
gCameras[0].lookAt_eye[1] = 1000.0f;
|
||||
gCameras[0].lookAt_eye[2] = 1500.0f;
|
||||
gCameras[0].unk_5C = 150.0f;
|
||||
gCameras[0].backgroundColor[0] = 0;
|
||||
gCameras[0].backgroundColor[1] = 0;
|
||||
gCameras[0].backgroundColor[2] = 0;
|
||||
gCameras[0].unk_54 = 25.0f;
|
||||
gCameras[0].unk_58 = 25.0f;
|
||||
gCameras[0].unk_1C = 0;
|
||||
gCameras[0].unk_20 = 100;
|
||||
gCameras[0].unk_22 = 0;
|
||||
gOverrideFlags |= 0x10000;
|
||||
}
|
||||
|
||||
|
@ -1,11 +1,10 @@
|
||||
#include "common.h"
|
||||
#include "nu/nusys.h"
|
||||
|
||||
void func_80035E54(void);
|
||||
|
||||
void func_80035DF0(s16 arg0) {
|
||||
s16* tempPtr = &D_800A0942;
|
||||
|
||||
*tempPtr = arg0;
|
||||
D_800A0942 = arg0;
|
||||
}
|
||||
|
||||
void func_80035E00(void) {
|
||||
@ -20,20 +19,16 @@ void func_80035E24(void) {
|
||||
}
|
||||
|
||||
void func_80035E54(void) {
|
||||
GameStatus** gameStatus = &gGameStatusPtr;
|
||||
u16* mapTransitonAlpha;
|
||||
|
||||
D_800A0944 = 0;
|
||||
D_800A0946 = 4;
|
||||
(*gameStatus)->exitAngle = 0.0f;
|
||||
mapTransitonAlpha = &gMapTransitionAlpha;
|
||||
*mapTransitonAlpha = 0xFF;
|
||||
gGameStatusPtr->exitAngle = 0.0f;
|
||||
gMapTransitionAlpha = 0xFF;
|
||||
nuContRmbForceStopEnd();
|
||||
func_801382AC(mapTransitonAlpha);
|
||||
func_801382AC(&gMapTransitionAlpha);
|
||||
|
||||
gOverrideFlags |= 0x8;
|
||||
|
||||
set_variable(0, SI_SAVE_VAR(1), (*gameStatus)->unk_A9);
|
||||
set_variable(0, SI_SAVE_VAR(1), gGameStatusPtr->unk_A9);
|
||||
timeFreezeMode = 0;
|
||||
}
|
||||
|
||||
@ -66,16 +61,11 @@ void func_800363FC(void) {
|
||||
}
|
||||
}
|
||||
|
||||
s32 func_80036430(void) {
|
||||
PlayerStatus* playerStatus = &gPlayerStatus;
|
||||
|
||||
void func_80036430(void) {
|
||||
gMapTransitionAlpha = 0xFF;
|
||||
D_800A0942 = 0x14;
|
||||
D_800A0944 = 0x01;
|
||||
|
||||
playerStatus->flags |= 0x1000;
|
||||
|
||||
return playerStatus->flags;
|
||||
gPlayerStatus.flags |= 0x1000;
|
||||
}
|
||||
|
||||
INCLUDE_ASM(s32, "111f0_len_860", func_8003646C);
|
||||
|
@ -1,16 +1,14 @@
|
||||
#include "common.h"
|
||||
|
||||
void begin_state_intro(void) {
|
||||
GameStatus** gameStatus = &gGameStatusPtr;
|
||||
s8 unk_A8;
|
||||
u8* mystery;
|
||||
|
||||
(*gameStatus)->loadMenuState = 0;
|
||||
gGameStatusPtr->loadMenuState = 0;
|
||||
|
||||
set_curtain_scale_goal(1.0f);
|
||||
set_curtain_fade_goal(0.3f);
|
||||
|
||||
unk_A8 = (*gameStatus)->unk_A8;
|
||||
unk_A8 = gGameStatusPtr->unk_A8;
|
||||
switch (unk_A8) {
|
||||
case 0:
|
||||
intro_logos_set_fade_alpha(0);
|
||||
@ -25,9 +23,9 @@ void begin_state_intro(void) {
|
||||
D_800A0964 = 0;
|
||||
|
||||
// hos_05 (Star Sanctuary)
|
||||
(*gameStatus)->areaID = AREA_HOS;
|
||||
(*gameStatus)->mapID = 5;
|
||||
(*gameStatus)->entryID = 3;
|
||||
gGameStatusPtr->areaID = AREA_HOS;
|
||||
gGameStatusPtr->mapID = 5;
|
||||
gGameStatusPtr->entryID = 3;
|
||||
break;
|
||||
case 1:
|
||||
intro_logos_set_fade_alpha(0);
|
||||
@ -42,24 +40,22 @@ void begin_state_intro(void) {
|
||||
D_800A0964 = 0;
|
||||
|
||||
// hos_04 (Outside the Sanctuary)
|
||||
(*gameStatus)->areaID = AREA_HOS;
|
||||
(*gameStatus)->mapID = 4;
|
||||
(*gameStatus)->entryID = 4;
|
||||
gGameStatusPtr->areaID = AREA_HOS;
|
||||
gGameStatusPtr->mapID = 4;
|
||||
gGameStatusPtr->entryID = 4;
|
||||
break;
|
||||
default:
|
||||
intro_logos_set_fade_alpha(0);
|
||||
intro_logos_set_fade_color(208);
|
||||
|
||||
mystery = &D_800779B0;
|
||||
|
||||
gGameStatusPtr->unk_A8 = -1;
|
||||
|
||||
D_800A0956 = 6;
|
||||
D_800A0958 = 6;
|
||||
|
||||
++*mystery;
|
||||
if (*mystery >= 4) {
|
||||
*mystery = 0;
|
||||
D_800779B0++;
|
||||
if (D_800779B0 >= 4) {
|
||||
D_800779B0 = 0;
|
||||
}
|
||||
|
||||
D_800A0964 = 3;
|
||||
|
@ -42,6 +42,8 @@ Gfx D_80077A50[] = {
|
||||
};
|
||||
|
||||
extern s32 D_80077A2B;
|
||||
extern s32* D_800A0978;
|
||||
extern s32* D_800A097C;
|
||||
extern s32 D_800A0980;
|
||||
|
||||
INCLUDE_ASM(s32, "121f0_len_1290", begin_state_title_screen);
|
||||
@ -127,4 +129,36 @@ void title_draw_press_start(void) {
|
||||
gDPPipeSync(gMasterGfxPos++);
|
||||
}
|
||||
|
||||
INCLUDE_ASM(void, "121f0_len_1290", title_draw_copyright, f32 arg0);
|
||||
void title_draw_copyright(f32 arg0) {
|
||||
s32 alpha;
|
||||
s32 i;
|
||||
|
||||
gSPDisplayList(gMasterGfxPos++, &D_80077A50);
|
||||
gDPPipeSync(gMasterGfxPos++);
|
||||
|
||||
alpha = 255.0f - (arg0 * 255.0f);
|
||||
if (alpha < 0xFF) {
|
||||
if (alpha < 0) {
|
||||
alpha = 0;
|
||||
}
|
||||
gDPSetCombineLERP(gMasterGfxPos++, 0, 0, 0, TEXEL0, TEXEL0, 0, PRIMITIVE, 0, 0, 0, 0, TEXEL0, TEXEL0, 0,
|
||||
PRIMITIVE, 0);
|
||||
gDPSetPrimColor(gMasterGfxPos++, 0, 0, 0, 0, 0, alpha);
|
||||
}
|
||||
|
||||
for (i = 0; i < 2; i++) {
|
||||
alpha = 0; // TODO figure out why this is needed
|
||||
gDPSetTextureImage(gMasterGfxPos++, G_IM_FMT_IA, G_IM_SIZ_8b, 144, &D_800A097C[0x240 * i]);
|
||||
gDPSetTile(gMasterGfxPos++, G_IM_FMT_IA, G_IM_SIZ_8b, 18, 0x0000, G_TX_LOADTILE, 0, G_TX_NOMIRROR | G_TX_WRAP,
|
||||
G_TX_NOMASK, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD);
|
||||
gDPLoadSync(gMasterGfxPos++);
|
||||
gDPLoadTile(gMasterGfxPos++, G_TX_LOADTILE, 0, 0, 0x023C, 0x003C);
|
||||
gDPPipeSync(gMasterGfxPos++);
|
||||
gDPSetTile(gMasterGfxPos++, G_IM_FMT_IA, G_IM_SIZ_8b, 18, 0x0000, G_TX_RENDERTILE, 0, G_TX_NOMIRROR | G_TX_WRAP,
|
||||
G_TX_NOMASK, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD);
|
||||
gDPSetTileSize(gMasterGfxPos++, G_TX_RENDERTILE, 0, 0, 0x023C, 0x003C);
|
||||
gSPTextureRectangle(gMasterGfxPos++, 0x0164, 0x2FC + (0x40 * i), 0x03A4, 0x33C + (0x40 * i), G_TX_RENDERTILE,
|
||||
0, 0, 0x0400, 0x0400);
|
||||
}
|
||||
gDPPipeSync(gMasterGfxPos++);
|
||||
}
|
||||
|
@ -11,12 +11,14 @@ extern s32 D_80073E00;
|
||||
extern u16* D_80073E04;
|
||||
extern s16 D_80073E08;
|
||||
extern s16 D_80073E0A;
|
||||
extern u16* D_8009A680;
|
||||
extern s32 D_80073E10;
|
||||
extern s16* D_8009A680;
|
||||
extern OSViMode _osViModeNtscLan1;
|
||||
extern OSViMode _osViModeMPalLan1;
|
||||
|
||||
void boot_main(void) {
|
||||
OSViMode* viMode;
|
||||
|
||||
if (osTvType == OS_TV_NTSC) {
|
||||
osViSetMode(&_osViModeNtscLan1);
|
||||
osViSetSpecialFeatures(OS_VI_GAMMA_OFF | OS_VI_GAMMA_DITHER_OFF | OS_VI_DIVOT_ON | OS_VI_DITHER_FILTER_ON);
|
||||
@ -37,21 +39,15 @@ void boot_main(void) {
|
||||
func_802B203C();
|
||||
nuGfxFuncSet((NUGfxFunc) gfxRetrace_Callback);
|
||||
nuGfxPreNMIFuncSet(gfxPreNMI_Callback);
|
||||
{
|
||||
// Required to match
|
||||
s32* randSeed = &gRandSeed;
|
||||
(*randSeed) += osGetCount();
|
||||
}
|
||||
gRandSeed += osGetCount();
|
||||
nuGfxDisplayOn();
|
||||
|
||||
while (TRUE) {}
|
||||
}
|
||||
|
||||
void gfxRetrace_Callback(s32 arg0) {
|
||||
s32* temp_80073E00 = &D_80073E00;
|
||||
|
||||
if (*temp_80073E00 != 0) {
|
||||
if (*temp_80073E00 == 1) {
|
||||
if (D_80073E00 != 0) {
|
||||
if (D_80073E00 == 1) {
|
||||
nuGfxTaskAllEndWait();
|
||||
if (arg0 == 0) {
|
||||
u16* fb = (u16*) osViGetCurrentFramebuffer();
|
||||
@ -63,25 +59,20 @@ void gfxRetrace_Callback(s32 arg0) {
|
||||
D_80073E04 = fb;
|
||||
nuGfxSetCfb(temp_8009A680, 3);
|
||||
osViSwapBuffer(*temp_8009A680);
|
||||
*temp_80073E00 = 2;
|
||||
D_80073E00 = 2;
|
||||
}
|
||||
}
|
||||
if (D_80073E00 == 2) {
|
||||
gfx_task_main();
|
||||
}
|
||||
} else {
|
||||
s16* temp_80073E0A = &D_80073E0A;
|
||||
|
||||
*temp_80073E0A ^= 1;
|
||||
if (*temp_80073E0A == 0) {
|
||||
s16* temp_80073E08;
|
||||
|
||||
D_80073E0A ^= 1;
|
||||
if (D_80073E0A == 0) {
|
||||
step_game_loop();
|
||||
temp_80073E08 = &D_80073E08;
|
||||
*temp_80073E08 = 1;
|
||||
D_80073E08 = 1;
|
||||
|
||||
if (arg0 < 3) {
|
||||
*temp_80073E08 = 0;
|
||||
D_80073E08 = 0;
|
||||
gfx_task_background();
|
||||
gfx_draw_frame();
|
||||
}
|
||||
|
@ -39,7 +39,6 @@ Gfx D_80074230[] = {
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
extern DisplayContext D_80164000[];
|
||||
extern s16 D_8009A690;
|
||||
|
||||
void gfx_init_state(void);
|
||||
|
26
src/23680.c
26
src/23680.c
@ -7,30 +7,22 @@ INCLUDE_ASM(s32, "23680", spawn_drops);
|
||||
#ifdef NON_MATCHING
|
||||
s32 get_coin_drop_amount(Enemy* enemy) {
|
||||
EncounterStatus* currentEncounter = &gCurrentEncounter;
|
||||
s16* dropTables = enemy->dropTables;
|
||||
s32 t1;
|
||||
s32 t2;
|
||||
s32 amt;
|
||||
s32 mx;
|
||||
s32 diff;
|
||||
s32 max;
|
||||
s32 min;
|
||||
|
||||
t1 = dropTables[89];
|
||||
t2 = dropTables[90];
|
||||
amt = enemy->drops->minCoinBonus;
|
||||
mx = enemy->drops->maxCoinBonus;
|
||||
|
||||
min = t1;
|
||||
max = t2;
|
||||
|
||||
if (max < min) {
|
||||
min = t2;
|
||||
max = t1;
|
||||
if (enemy->drops->minCoinBonus > enemy->drops->maxCoinBonus) {
|
||||
amt = enemy->drops->maxCoinBonus;
|
||||
mx = enemy->drops->minCoinBonus;
|
||||
}
|
||||
|
||||
diff = max - min;
|
||||
diff = mx - amt;
|
||||
|
||||
amt = min;
|
||||
if ((min < 0) || (diff != 0)) {
|
||||
amt = rand_int(diff) + min;
|
||||
if ((amt < 0) || (diff != 0)) {
|
||||
amt = rand_int(diff) + amt;
|
||||
}
|
||||
|
||||
if (amt < 0) {
|
||||
|
@ -26,11 +26,9 @@ s32 func_8004DA0C(s32 songName) {
|
||||
s32 ret = 0;
|
||||
|
||||
if (songName != 0) {
|
||||
BGMPlayer* player;
|
||||
BGMPlayer* player = snd_get_player_with_song_name(songName);
|
||||
|
||||
do {
|
||||
player = snd_get_player_with_song_name(songName);
|
||||
} while (0);
|
||||
do {} while (0);
|
||||
|
||||
do {
|
||||
if (player == NULL) {
|
||||
|
@ -77,7 +77,6 @@ void func_800511BC(UnkAl834* arg0) {
|
||||
temp->unk_25 = 1;
|
||||
}
|
||||
func_80051434(arg0, temp);
|
||||
var = temp->unk_24;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -8,33 +8,27 @@ void func_80052E30(u8 index) {
|
||||
}
|
||||
|
||||
void snd_load_audio_data(s32 frequency) {
|
||||
UnkAl19E0** temp_s4 = &D_8009A5C0;
|
||||
UnkAl19E0* temp4;
|
||||
s32* temp_v0_2;
|
||||
ALHeap* alHeap;
|
||||
u32 i;
|
||||
s32 subroutine_arg7[2];
|
||||
u8 temp6[4];
|
||||
BGMPlayer** temp1 = &D_8009A664;
|
||||
BGMPlayer** temp1_1;
|
||||
SoundManager** temp2 = &D_8009A640;
|
||||
SoundManager** temp2_1;
|
||||
BGMPlayer** temp3;
|
||||
UnkAl48* temp5;
|
||||
|
||||
alHeap = D_80078E54->unk_18;
|
||||
*temp_s4 = alHeapAlloc(alHeap, 1, 0x19E0);
|
||||
D_8009A5C0 = alHeapAlloc(alHeap, 1, 0x19E0);
|
||||
|
||||
(*temp1) = alHeapAlloc(alHeap, 1, sizeof(BGMPlayer));
|
||||
D_8009A664 = alHeapAlloc(alHeap, 1, sizeof(BGMPlayer));
|
||||
D_8009A5FC = alHeapAlloc(alHeap, 1, sizeof(BGMPlayer));
|
||||
D_8009A5CC = alHeapAlloc(alHeap, 1, sizeof(BGMPlayer));
|
||||
(*temp2) = alHeapAlloc(alHeap, 1, 0x6CC);
|
||||
D_8009A640 = alHeapAlloc(alHeap, 1, 0x6CC);
|
||||
D_8009A628 = alHeapAlloc(alHeap, 1, 0x834);
|
||||
(*temp1)->soundManager = (*temp2);
|
||||
D_8009A628->unk_00 = *(temp_s4);
|
||||
D_8009A664->soundManager = D_8009A640;
|
||||
D_8009A628->unk_00 = D_8009A5C0;
|
||||
|
||||
|
||||
temp4 = *temp_s4;
|
||||
temp4 = D_8009A5C0;
|
||||
temp_v0_2 = alHeapAlloc(alHeap, 1, 0x8000);
|
||||
temp4->currentTrackData[0] = &temp_v0_2[0];
|
||||
temp4->currentTrackData[1] = &temp_v0_2[0x1400];
|
||||
@ -91,30 +85,26 @@ void snd_load_audio_data(s32 frequency) {
|
||||
temp4->banks[i] = alHeapAlloc(alHeap, 1, 0x840);
|
||||
}
|
||||
|
||||
temp2_1 = &D_8009A640;
|
||||
temp3 = &D_8009A5FC;
|
||||
temp1_1 = &D_8009A664;
|
||||
|
||||
func_8004E158(*temp1_1, 1, 0, temp4);
|
||||
func_8004E158(D_8009A664, 1, 0, temp4);
|
||||
temp6[0] = 0;
|
||||
temp6[1] = 3;
|
||||
temp6[2] = 0xff;
|
||||
temp6[3] = 0xff;
|
||||
func_8004E344(*temp1_1, &temp6);
|
||||
func_8004E158(*temp3, 2, 2, temp4);
|
||||
func_8004E344(D_8009A664, &temp6);
|
||||
func_8004E158(D_8009A5FC, 2, 2, temp4);
|
||||
temp6[0] = 2;
|
||||
temp6[1] = 0xff;
|
||||
temp6[2] = 0xff;
|
||||
temp6[3] = 0xff;
|
||||
func_8004E344(*temp3, &temp6);
|
||||
func_8004B440(*temp2_1, 4, 1, temp4, 0x10);
|
||||
func_8004E344(D_8009A5FC, &temp6);
|
||||
func_8004B440(D_8009A640, 4, 1, temp4, 0x10);
|
||||
func_80050B90(D_8009A628, 6, 1, temp4);
|
||||
func_80052614(temp4);
|
||||
snd_load_BK_headers(temp4, alHeap);
|
||||
if (snd_fetch_SBN_file(temp4->mseqFileList->unk_0, 0x20, subroutine_arg7) == 0) {
|
||||
snd_read_rom(subroutine_arg7[0], temp4->dataSEF, subroutine_arg7[1] & 0xFFFFFF);
|
||||
}
|
||||
snd_load_sfx_groups_from_SEF(*temp2_1);
|
||||
snd_load_sfx_groups_from_SEF(D_8009A640);
|
||||
if (snd_fetch_SBN_file(temp4->mseqFileList->unk_2, 0x40, subroutine_arg7) == 0) {
|
||||
snd_load_PER(temp4, subroutine_arg7[0]);
|
||||
}
|
||||
@ -189,7 +179,6 @@ void snd_update_sequence_players(void) {
|
||||
UnkAl834* temp_s0 = D_8009A628;
|
||||
BGMPlayer* bgmPlayer1;
|
||||
BGMPlayer* bgmPlayer2;
|
||||
s32* t1;
|
||||
|
||||
func_80053654(temp_s2);
|
||||
|
||||
@ -210,8 +199,7 @@ void snd_update_sequence_players(void) {
|
||||
manager->unk_BA = func_8004C444(manager);
|
||||
}
|
||||
|
||||
t1 = &D_80078DB0;
|
||||
if (*t1 == 0) {
|
||||
if (D_80078DB0 == 0) {
|
||||
bgmPlayer1 = D_8009A5FC;
|
||||
if (bgmPlayer1->fadeInfo.fadeTime != 0) {
|
||||
snd_update_bgm_fade(bgmPlayer1);
|
||||
@ -225,7 +213,7 @@ void snd_update_sequence_players(void) {
|
||||
bgmPlayer1->unk_10 += bgmPlayer1->unk_0C;
|
||||
bgmPlayer1->unk_5C = func_8004E4B8(bgmPlayer1);
|
||||
}
|
||||
if (*t1 == 0) {
|
||||
if (D_80078DB0 == 0) {
|
||||
if (temp_s2->unk_80 != 0) {
|
||||
func_8004DFD4(temp_s2);
|
||||
}
|
||||
|
12
src/31650.c
12
src/31650.c
@ -16,10 +16,8 @@ s32 D_80078E60[] = { 0x7FFF7FFC, 0x7FF57FE8, 0x7FD77FC0, 0x7FA57F84, 0x7F5F7F34,
|
||||
INCLUDE_ASM(s32, "31650", func_80056250);
|
||||
|
||||
void func_800565A4(void) {
|
||||
UnkAl0** sym = &D_80078E50;
|
||||
|
||||
if (*sym != NULL) {
|
||||
*sym = NULL;
|
||||
if (D_80078E50 != NULL) {
|
||||
D_80078E50 = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
@ -144,16 +142,14 @@ INCLUDE_ASM(s32, "31650", func_80057C54);
|
||||
INCLUDE_ASM(s32, "31650", func_80057D0C);
|
||||
|
||||
void func_80057DC8(s32 arg0) {
|
||||
s32* sym;
|
||||
if (arg0 < 2) {
|
||||
D_800A3FF0 = 0;
|
||||
D_800A3FEE = 0;
|
||||
}
|
||||
|
||||
sym = &D_800A3FF0;
|
||||
*sym = arg0;
|
||||
D_800A3FF0 = arg0;
|
||||
if (arg0 >= 5) {
|
||||
*sym = 4;
|
||||
D_800A3FF0 = 4;
|
||||
}
|
||||
}
|
||||
|
||||
|
24
src/341d0.c
24
src/341d0.c
@ -44,18 +44,16 @@ void func_80059D48(void) {
|
||||
INCLUDE_ASM(s32, "341d0", update_effects);
|
||||
|
||||
s32 render_effects(void) {
|
||||
EffectInstance** curEffectInst;
|
||||
s32 i;
|
||||
|
||||
curEffectInst = &D_800B4398[0];
|
||||
for (i = 0; i < ARRAY_COUNT(D_800B4398); i++) {
|
||||
if ((curEffectInst[i] != NULL) && (curEffectInst[i]->flags & 1) && (curEffectInst[i]->flags & 8)) {
|
||||
if ((D_800B4398[i] != NULL) && (D_800B4398[i]->flags & 1) && (D_800B4398[i]->flags & 8)) {
|
||||
if (gGameStatusPtr->isBattle) {
|
||||
if (curEffectInst[i]->flags & 4) {
|
||||
curEffectInst[i]->effect->renderWorld(curEffectInst[i]);
|
||||
if (D_800B4398[i]->flags & 4) {
|
||||
D_800B4398[i]->effect->renderWorld(D_800B4398[i]);
|
||||
}
|
||||
} else if (!(curEffectInst[i]->flags & 4)) {
|
||||
curEffectInst[i]->effect->renderWorld(curEffectInst[i]);
|
||||
} else if (!(D_800B4398[i]->flags & 4)) {
|
||||
D_800B4398[i]->effect->renderWorld(D_800B4398[i]);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -67,11 +65,10 @@ EffectInstance* func_8005A2BC(EffectBlueprint* effectBp) {
|
||||
EffectInstance* newEffectInst;
|
||||
Effect* curEffect;
|
||||
s32 i;
|
||||
EffectInstance** temp = &D_800B4398[0];
|
||||
|
||||
// Search for an unused instance
|
||||
for (i = 0; i < ARRAY_COUNT(D_800B4398); i++) {
|
||||
if (temp[i] == NULL) {
|
||||
if (D_800B4398[i] == NULL) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
@ -129,10 +126,9 @@ EffectInstance* func_8005A2BC(EffectBlueprint* effectBp) {
|
||||
|
||||
void remove_effect(EffectInstance* arg0) {
|
||||
s32 i;
|
||||
EffectInstance** temp = &D_800B4398[0];
|
||||
|
||||
for (i = 0; i < ARRAY_COUNT(D_800B4398); i++) {
|
||||
if (temp[i] == arg0) {
|
||||
if (D_800B4398[i] == arg0) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
@ -152,16 +148,16 @@ void remove_effect(EffectInstance* arg0) {
|
||||
|
||||
void remove_all_effects(void) {
|
||||
s32 i;
|
||||
EffectInstance** temp = &D_800B4398[0];
|
||||
|
||||
for (i = 0; i < ARRAY_COUNT(D_800B4398); i++) {
|
||||
EffectInstance* temp2 = temp[i];
|
||||
EffectInstance* temp2 = D_800B4398[i];
|
||||
|
||||
if (temp2 != NULL && temp2->flags & 4) {
|
||||
if (temp2->data != NULL) {
|
||||
general_heap_free(temp2->data);
|
||||
}
|
||||
general_heap_free(temp2);
|
||||
temp[i] = NULL;
|
||||
D_800B4398[i] = NULL;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -15,10 +15,8 @@ void poll_rumble(void) {
|
||||
|
||||
void start_rumble(s32 freq, s32 frame) {
|
||||
if (gGameStatusPtr->demoState == 0) {
|
||||
u16* sym = &D_80074260;
|
||||
|
||||
if (*sym != 0) {
|
||||
s32 symx2 = *sym * 2;
|
||||
if (D_80074260 != 0) {
|
||||
s32 symx2 = D_80074260 * 2;
|
||||
|
||||
if (frame > symx2) {
|
||||
frame = symx2;
|
||||
@ -33,17 +31,13 @@ void start_rumble(s32 freq, s32 frame) {
|
||||
}
|
||||
|
||||
void update_max_rumble_duration(void) {
|
||||
s32* sym = &D_80074264;
|
||||
u16* sym2;
|
||||
|
||||
if (*sym != gGameStatusPtr->currentButtons) {
|
||||
*sym = gGameStatusPtr->currentButtons;
|
||||
if (D_80074264 != gGameStatusPtr->currentButtons) {
|
||||
D_80074264 = gGameStatusPtr->currentButtons;
|
||||
reset_max_rumble_duration();
|
||||
}
|
||||
|
||||
sym2 = &D_80074260;
|
||||
if (*sym2 != 0) {
|
||||
(*sym2)--;
|
||||
if (D_80074260 != 0) {
|
||||
D_80074260--;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -182,11 +182,12 @@ void func_80029860(s32 dramAddr, s32 devAddr, s32 size) {
|
||||
}
|
||||
|
||||
s32 _advance_rng(void) {
|
||||
s32* rngVal = &gRandSeed;
|
||||
gRandSeed *= 0x5D588B65;
|
||||
gRandSeed++;
|
||||
|
||||
gGameStatusPtr->nextRNG = *rngVal = (*rngVal * 0x5D588B65) + 1;
|
||||
gGameStatusPtr->nextRNG = gRandSeed;
|
||||
|
||||
return *rngVal;
|
||||
return gRandSeed;
|
||||
}
|
||||
|
||||
f32 func_80029934(void) {
|
||||
|
@ -1,5 +1,12 @@
|
||||
#include "common.h"
|
||||
|
||||
extern s32 D_800760C0;
|
||||
extern Mtx D_8009BAA8[];
|
||||
|
||||
extern s32 D_80076078;
|
||||
extern s32 D_80077140;
|
||||
extern s32 D_800771E8;
|
||||
|
||||
void initialize_curtains(void) {
|
||||
gCurtainDrawCallback = NULL;
|
||||
gCurtainScale = 2.0f;
|
||||
@ -11,7 +18,66 @@ void initialize_curtains(void) {
|
||||
void update_curtains(void) {
|
||||
}
|
||||
|
||||
INCLUDE_ASM(s32, "6e40_len_500", render_curtains);
|
||||
void render_curtains(void) {
|
||||
if (gCurtainScaleGoal != gCurtainScale) {
|
||||
gCurtainScale += (gCurtainScaleGoal - gCurtainScale) * 0.1;
|
||||
}
|
||||
|
||||
if (gCurtainFadeGoal != gCurtainFade) {
|
||||
gCurtainFade += (gCurtainFadeGoal - gCurtainFade) * 0.03;
|
||||
}
|
||||
|
||||
if (gCurtainScale < 1.9) {
|
||||
Mtx m;
|
||||
f32 scale;
|
||||
s8 rgb;
|
||||
|
||||
gDPPipeSync(gMasterGfxPos++);
|
||||
gDPSetColorImage(gMasterGfxPos++, G_IM_FMT_RGBA, G_IM_SIZ_16b, 320, osVirtualToPhysical(D_8009A64C));
|
||||
gSPDisplayList(gMasterGfxPos++, &D_800760C0);
|
||||
|
||||
guFrustumF(m.m[0], -80.0f, 80.0f, -60.0f, 60.0f, 160.0f, 640.0f, 1.0f);
|
||||
guMtxF2L(m.m[0], &D_8009BAA8[0]);
|
||||
|
||||
gSPMatrix(gMasterGfxPos++, &D_8009BAA8[0], G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_PROJECTION);
|
||||
|
||||
scale = gCurtainScale - 0.01;
|
||||
if (scale < 1.0f) {
|
||||
scale = 1.0f;
|
||||
}
|
||||
|
||||
guPositionF(m.m[0], 0.0f, 0.0f, 0.0f, scale * 0.1, 0.0f, 0.0f, -320.0f);
|
||||
|
||||
guMtxF2L(m.m[0], &D_8009BAA8[1]);
|
||||
|
||||
gSPMatrix(gMasterGfxPos++, &D_8009BAA8[1], G_MTX_PUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
|
||||
rgb = 255.0f - (gCurtainFade * 255.0f);
|
||||
gDPSetPrimColor(gMasterGfxPos++, 0, 0, rgb, rgb, rgb, 255);
|
||||
gSPDisplayList(gMasterGfxPos++, &D_80076078);
|
||||
gSPPopMatrix(gMasterGfxPos++, G_MTX_MODELVIEW);
|
||||
gDPPipeSync(gMasterGfxPos++);
|
||||
|
||||
}
|
||||
|
||||
if (gCurtainDrawCallback != NULL) {
|
||||
gCurtainDrawCallback();
|
||||
}
|
||||
|
||||
if (!(gGameStatusPtr->contBitPattern & 1)) {
|
||||
if ((get_game_mode() == 0x10) || (get_game_mode() == 2) || (gGameStatusPtr->demoState != 0)) {
|
||||
s32 alpha = ((gGameStatusPtr->frameCounter) % 0x18) << 5;
|
||||
|
||||
if (alpha > 255) {
|
||||
alpha = 255;
|
||||
}
|
||||
|
||||
gSPDisplayList(gMasterGfxPos++, &D_800760C0);
|
||||
gSPDisplayList(gMasterGfxPos++, &D_80077140);
|
||||
gDPSetPrimColor(gMasterGfxPos++, 0, 0, 0xFF, 0x20, 0x10, alpha);
|
||||
gSPDisplayList(gMasterGfxPos++, &D_800771E8);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void set_curtain_scale_goal(f32 scale) {
|
||||
gCurtainScaleGoal = scale;
|
||||
|
@ -6,8 +6,7 @@ void begin_state_init(void) {
|
||||
}
|
||||
|
||||
void step_init_state(void) {
|
||||
GameStatus** gameStatusPtr = &gGameStatusPtr;
|
||||
GameStatus* gameStatus = *gameStatusPtr;
|
||||
GameStatus* gameStatus = gGameStatusPtr;
|
||||
s32 i;
|
||||
|
||||
if (gameStatus->loadMenuState != 0) {
|
||||
@ -16,18 +15,18 @@ void step_init_state(void) {
|
||||
}
|
||||
|
||||
gOverrideFlags = 0;
|
||||
(*gameStatusPtr)->areaID = 0;
|
||||
(*gameStatusPtr)->isBattle = 0;
|
||||
gGameStatusPtr->areaID = 0;
|
||||
gGameStatusPtr->isBattle = 0;
|
||||
gameStatus->prevArea = -1;
|
||||
gameStatus->mapID = 0;
|
||||
gameStatus->entryID = 0;
|
||||
(*gameStatusPtr)->unk_76 = 0;
|
||||
(*gameStatusPtr)->disableScripts = 0;
|
||||
(*gameStatusPtr)->unk_7D = 0;
|
||||
(*gameStatusPtr)->unk_A8 = -1;
|
||||
(*gameStatusPtr)->unk_AA = 0;
|
||||
(*gameStatusPtr)->unk_A9 = -1;
|
||||
(*gameStatusPtr)->demoState = 0;
|
||||
gGameStatusPtr->unk_76 = 0;
|
||||
gGameStatusPtr->disableScripts = 0;
|
||||
gGameStatusPtr->unk_7D = 0;
|
||||
gGameStatusPtr->unk_A8 = -1;
|
||||
gGameStatusPtr->unk_AA = 0;
|
||||
gGameStatusPtr->unk_A9 = -1;
|
||||
gGameStatusPtr->demoState = 0;
|
||||
|
||||
general_heap_create();
|
||||
func_8011D890();
|
||||
@ -63,8 +62,8 @@ void step_init_state(void) {
|
||||
initialize_curtains();
|
||||
|
||||
for (i = 0; i < 4; i++) {
|
||||
(*gameStatusPtr)->unk_50[i] = 4;
|
||||
(*gameStatusPtr)->unk_48[i] = 0xF;
|
||||
gGameStatusPtr->unk_50[i] = 4;
|
||||
gGameStatusPtr->unk_48[i] = 0xF;
|
||||
}
|
||||
|
||||
fio_has_valid_backup();
|
||||
|
@ -47,9 +47,8 @@ s16 intro_logos_fade_out(s16 addAlpha) {
|
||||
}
|
||||
|
||||
void intro_logos_update_fade(void) {
|
||||
GameStatus** gameStatus = &gGameStatusPtr;
|
||||
set_transition_stencil_zoom_0(0, (*gameStatus)->bootAlpha);
|
||||
set_transition_stencil_color(0, (*gameStatus)->bootBlue, (*gameStatus)->bootGreen, (*gameStatus)->bootRed);
|
||||
set_transition_stencil_zoom_0(0, gGameStatusPtr->bootAlpha);
|
||||
set_transition_stencil_color(0, gGameStatusPtr->bootBlue, gGameStatusPtr->bootGreen, gGameStatusPtr->bootRed);
|
||||
}
|
||||
|
||||
void begin_state_battle(void) {
|
||||
@ -59,19 +58,21 @@ void begin_state_battle(void) {
|
||||
#ifdef NON_MATCHING
|
||||
void step_battle(void) {
|
||||
s32 phi_a0;
|
||||
u32 currentBattleSection;
|
||||
u32 unk_47B;
|
||||
|
||||
if (D_800A0900 == 5) {
|
||||
if (D_8009A658[1] != D_8009A64C) {
|
||||
return;
|
||||
}
|
||||
(D_800A0900)--;
|
||||
D_800A0900--;
|
||||
gOverrideFlags |= 0x8;
|
||||
nuContRmbForceStop();
|
||||
}
|
||||
|
||||
if (D_800A0900 >= 0) {
|
||||
if (D_800A0900 > 0) {
|
||||
(D_800A0900)--;
|
||||
D_800A0900--;
|
||||
} else {
|
||||
D_800A0900 = -1;
|
||||
nuGfxSetCfb(&D_800778A0, 2);
|
||||
@ -84,19 +85,23 @@ void step_battle(void) {
|
||||
func_802B20B4();
|
||||
func_80149670(0);
|
||||
|
||||
// This part sucks
|
||||
if ((gGameStatusPtr->peachFlags & 1)) {
|
||||
if (gBattleStatus.currentBattleSection != 0x26 || gBattleStatus.unk_47B != 0) {
|
||||
phi_a0 = 5;
|
||||
} else {
|
||||
gGameStatusPtr->peachFlags |= 1;
|
||||
phi_a0 = 6;
|
||||
}
|
||||
} else {
|
||||
gGameStatusPtr->peachFlags |= 1;
|
||||
phi_a0 = 6;
|
||||
}
|
||||
currentBattleSection = gBattleStatus.currentBattleSection;
|
||||
unk_47B = gBattleStatus.unk_47B;
|
||||
|
||||
// This part sucks
|
||||
if (gGameStatusPtr->peachFlags & 1) {
|
||||
gGameStatusPtr->peachFlags |= 1;
|
||||
phi_a0 = 6;
|
||||
} else if (currentBattleSection == 0x26) {
|
||||
if (unk_47B == 0) {
|
||||
gGameStatusPtr->peachFlags |= 1;
|
||||
phi_a0 = 6;
|
||||
} else {
|
||||
phi_a0 = 5;
|
||||
}
|
||||
} else {
|
||||
phi_a0 = 5;
|
||||
}
|
||||
spr_init_sprites(phi_a0);
|
||||
|
||||
clear_model_data();
|
||||
@ -141,7 +146,6 @@ void step_battle(void) {
|
||||
INCLUDE_ASM(s32, "ebd0_len_6a0", step_battle);
|
||||
#endif
|
||||
|
||||
|
||||
void func_80033B54(void) {
|
||||
draw_encounter_ui();
|
||||
if (D_800A0900 < 0) {
|
||||
|
@ -37,10 +37,9 @@ NUPiOverlaySegment D_8007795C = {
|
||||
void appendGfx_intro_logos();
|
||||
|
||||
// bss?
|
||||
extern s8 D_800A0910[];
|
||||
extern s8* D_800A0910;
|
||||
|
||||
void state_init_logos(void) {
|
||||
Camera* cameras = &gCameras;
|
||||
s8* romStart;
|
||||
s8* romEnd;
|
||||
s32* logoRam;
|
||||
@ -58,41 +57,41 @@ void state_init_logos(void) {
|
||||
logoRam = heap_malloc(romEnd - romStart);
|
||||
|
||||
temp_800A0910 = &D_800A0910;
|
||||
*temp_800A0910 = logoRam;
|
||||
D_800A0910 = logoRam;
|
||||
|
||||
dma_copy(romStart, romEnd, logoRam);
|
||||
|
||||
// TODO probably this is not ideal
|
||||
D_800A0918 = (*temp_800A0910) + 0x0;
|
||||
D_800A0914 = (*temp_800A0910) + 0x7000;
|
||||
D_800A091C = (*temp_800A0910) + 0x15000;
|
||||
D_800A0918 = D_800A0910 + 0x0;
|
||||
D_800A0914 = D_800A0910 + 0x7000;
|
||||
D_800A091C = D_800A0910 + 0x15000;
|
||||
|
||||
nuContRmbForceStop();
|
||||
create_cameras_a();
|
||||
cameras[0].mode = 6;
|
||||
cameras[0].unk_06 = 1;
|
||||
cameras[0].nearClip = 0x10;
|
||||
cameras[0].farClip = 0x1000;
|
||||
gCameras[0].mode = 6;
|
||||
gCameras[0].unk_06 = 1;
|
||||
gCameras[0].nearClip = 0x10;
|
||||
gCameras[0].farClip = 0x1000;
|
||||
gCurrentCameraID = 0;
|
||||
cameras[0].vfov = 25.0f;
|
||||
cameras[0].flags |= 0x2;
|
||||
cameras[1].flags |= 0x2;
|
||||
cameras[2].flags |= 0x2;
|
||||
cameras[3].flags |= 0x2;
|
||||
gCameras[0].vfov = 25.0f;
|
||||
gCameras[0].flags |= 0x2;
|
||||
gCameras[1].flags |= 0x2;
|
||||
gCameras[2].flags |= 0x2;
|
||||
gCameras[3].flags |= 0x2;
|
||||
set_cam_viewport(0, 12, 28, 296, 184);
|
||||
cameras[0].unk_1E = 0x28;
|
||||
cameras[0].backgroundColor[0] = 0;
|
||||
cameras[0].backgroundColor[1] = 0;
|
||||
cameras[0].backgroundColor[2] = 0;
|
||||
cameras[0].unk_54 = 25.0f;
|
||||
cameras[0].unk_58 = 25.0f;
|
||||
cameras[0].unk_1C = 0;
|
||||
cameras[0].unk_20 = 100;
|
||||
cameras[0].unk_22 = 0;
|
||||
cameras[0].lookAt_eye[0] = 500.0f;
|
||||
cameras[0].lookAt_eye[1] = 1000.0f;
|
||||
cameras[0].lookAt_eye[2] = 1500.0f;
|
||||
cameras[0].unk_5C = 150.0f;
|
||||
gCameras[0].unk_1E = 0x28;
|
||||
gCameras[0].backgroundColor[0] = 0;
|
||||
gCameras[0].backgroundColor[1] = 0;
|
||||
gCameras[0].backgroundColor[2] = 0;
|
||||
gCameras[0].unk_54 = 25.0f;
|
||||
gCameras[0].unk_58 = 25.0f;
|
||||
gCameras[0].unk_1C = 0;
|
||||
gCameras[0].unk_20 = 100;
|
||||
gCameras[0].unk_22 = 0;
|
||||
gCameras[0].lookAt_eye[0] = 500.0f;
|
||||
gCameras[0].lookAt_eye[1] = 1000.0f;
|
||||
gCameras[0].lookAt_eye[2] = 1500.0f;
|
||||
gCameras[0].unk_5C = 150.0f;
|
||||
clear_script_list();
|
||||
clear_dynamic_entity_list();
|
||||
func_8011D890();
|
||||
@ -109,11 +108,7 @@ void state_init_logos(void) {
|
||||
gGameStatusPtr->enableBackground = FALSE;
|
||||
}
|
||||
|
||||
//INCLUDE_ASM(s32, "f270_len_1190", state_step_logos);
|
||||
void state_step_logos(void) {
|
||||
s32 gameModeTemp;
|
||||
s32* temp800A0910;
|
||||
|
||||
if (gGameStatusPtr->bSkipIntro) {
|
||||
if (intro_logos_fade_out(0xA) != 0) {
|
||||
set_curtain_scale(1.0f);
|
||||
@ -122,16 +117,12 @@ void state_step_logos(void) {
|
||||
}
|
||||
} else {
|
||||
switch (gGameStatusPtr->loadMenuState) {
|
||||
GameStatus** gameStatus;
|
||||
|
||||
case 1:
|
||||
gameStatus = &gGameStatusPtr;
|
||||
|
||||
if ((*gameStatus)->menuCounter == 0) {
|
||||
if (gGameStatusPtr->menuCounter == 0) {
|
||||
intro_logos_set_fade_color(208);
|
||||
(*gameStatus)->loadMenuState++;
|
||||
gGameStatusPtr->loadMenuState++;
|
||||
}
|
||||
(*gameStatus)->menuCounter--;
|
||||
gGameStatusPtr->menuCounter--;
|
||||
break;
|
||||
case 2:
|
||||
if (intro_logos_fade_out(0xA) != 0) {
|
||||
@ -140,20 +131,16 @@ void state_step_logos(void) {
|
||||
break;
|
||||
case 3:
|
||||
if (intro_logos_fade_in(0xA) != 0) {
|
||||
GameStatus** gameStatus = &gGameStatusPtr;
|
||||
|
||||
(*gameStatus)->loadMenuState++;
|
||||
(*gameStatus)->menuCounter = 40;
|
||||
gGameStatusPtr->loadMenuState++;
|
||||
gGameStatusPtr->menuCounter = 40;
|
||||
}
|
||||
break;
|
||||
case 4:
|
||||
gameStatus = &gGameStatusPtr;
|
||||
|
||||
if ((*gameStatus)->menuCounter == 0) {
|
||||
(*gameStatus)->loadMenuState++;
|
||||
if (gGameStatusPtr->menuCounter == 0) {
|
||||
gGameStatusPtr->loadMenuState++;
|
||||
intro_logos_set_fade_color(208);
|
||||
}
|
||||
(*gameStatus)->menuCounter--;
|
||||
gGameStatusPtr->menuCounter--;
|
||||
break;
|
||||
case 5:
|
||||
if (intro_logos_fade_out(0xA) != 0) {
|
||||
@ -163,20 +150,17 @@ void state_step_logos(void) {
|
||||
case 0:
|
||||
case 6:
|
||||
if (intro_logos_fade_in(0xA) != 0) {
|
||||
GameStatus** gameStatus = &gGameStatusPtr;
|
||||
|
||||
(*gameStatus)->loadMenuState++;
|
||||
(*gameStatus)->menuCounter = 30;
|
||||
gGameStatusPtr->loadMenuState++;
|
||||
gGameStatusPtr->menuCounter = 30;
|
||||
}
|
||||
break;
|
||||
case 7:
|
||||
gameStatus = &gGameStatusPtr;
|
||||
if ((*gameStatus)->menuCounter == 0) {
|
||||
(*gameStatus)->loadMenuState++;
|
||||
if (gGameStatusPtr->menuCounter == 0) {
|
||||
gGameStatusPtr->loadMenuState++;
|
||||
intro_logos_set_fade_color(208);
|
||||
(*gameStatus)->menuCounter = 30;
|
||||
gGameStatusPtr->menuCounter = 30;
|
||||
}
|
||||
(*gameStatus)->menuCounter--;
|
||||
gGameStatusPtr->menuCounter--;
|
||||
break;
|
||||
case 8:
|
||||
if (gGameStatusPtr->menuCounter == 0) {
|
||||
@ -190,10 +174,8 @@ void state_step_logos(void) {
|
||||
break;
|
||||
case 9:
|
||||
if (intro_logos_fade_out(0xA) != 0) {
|
||||
GameStatus** gameStatus = &gGameStatusPtr;
|
||||
|
||||
(*gameStatus)->menuCounter = 15;
|
||||
(*gameStatus)->loadMenuState++;
|
||||
gGameStatusPtr->menuCounter = 15;
|
||||
gGameStatusPtr->loadMenuState++;
|
||||
}
|
||||
break;
|
||||
case 10:
|
||||
@ -204,9 +186,8 @@ void state_step_logos(void) {
|
||||
}
|
||||
break;
|
||||
case 11:
|
||||
temp800A0910 = &D_800A0910;
|
||||
heap_free(*temp800A0910);
|
||||
*temp800A0910 = 0;
|
||||
heap_free(D_800A0910);
|
||||
D_800A0910 = 0;
|
||||
|
||||
intro_logos_set_fade_alpha(255);
|
||||
gGameStatusPtr->unk_A8 = 0;
|
||||
@ -314,7 +295,7 @@ void state_init_pause(void) {
|
||||
}
|
||||
|
||||
void state_step_pause(void) {
|
||||
s32 temp800A0921_2 = D_800A0921;
|
||||
s32 oldIsBattle = D_800A0921;
|
||||
|
||||
switch (D_800A0921) {
|
||||
case 0:
|
||||
@ -343,7 +324,7 @@ void state_step_pause(void) {
|
||||
gGameStatusPtr->unk_15E = gGameStatusPtr->unk_15C;
|
||||
sfx_stop_env_sounds();
|
||||
func_8003B1A8();
|
||||
gGameStatusPtr->isBattle = temp800A0921_2;
|
||||
gGameStatusPtr->isBattle = oldIsBattle;
|
||||
allocate_hit_tables();
|
||||
battle_heap_create();
|
||||
nuContRmbForceStop();
|
||||
@ -409,12 +390,11 @@ void state_step_unpause(void) {
|
||||
|
||||
if (D_800A0920 >= 0) {
|
||||
if (D_800A0920 != 0) {
|
||||
(D_800A0920)--;
|
||||
D_800A0920--;
|
||||
}
|
||||
|
||||
if (D_800A0920 == 0) {
|
||||
if (D_800A0920 == 0) {
|
||||
PlayerStatus* playerStatus;
|
||||
MapConfig* mapConfig;
|
||||
Map* map;
|
||||
s32 assetData;
|
||||
@ -472,8 +452,7 @@ void state_step_unpause(void) {
|
||||
func_800E98C4();
|
||||
set_time_freeze_mode(1);
|
||||
D_800A0921 = 3;
|
||||
playerStatus = &gPlayerStatus;
|
||||
playerStatus->alpha2 = playerStatus->alpha1 - 1;
|
||||
gPlayerStatus.alpha2 = gPlayerStatus.alpha1 - 1;
|
||||
D_802D9D71 = D_802D9D70 + 1;
|
||||
|
||||
update_counters();
|
||||
|
27
src/npc.c
27
src/npc.c
@ -2,7 +2,7 @@
|
||||
#include "map.h"
|
||||
#include "npc.h"
|
||||
|
||||
s32 func_802DE2AC(s32 arg0, s32 arg1, f32 arg2);
|
||||
s32 spr_update_sprite(s32 arg0, s32 arg1, f32 arg2);
|
||||
|
||||
void npc_callback_no_op(void) {
|
||||
}
|
||||
@ -128,16 +128,16 @@ void set_npc_sprite(Npc* npc, s32 anim, s32** extraAnimList) {
|
||||
|
||||
if (!(flagsTemp & 0x40000000)) {
|
||||
if (!(flagsTemp & NPC_FLAG_1000000)) {
|
||||
func_802DE2AC(npc->spriteInstanceID, anim, npc->animationSpeed);
|
||||
spr_update_sprite(npc->spriteInstanceID, anim, npc->animationSpeed);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void enable_npc_blur(Npc* npc) {
|
||||
if (!(npc->flags & 0x100000)) {
|
||||
BlurBuffer* blurBuf;
|
||||
s32 i;
|
||||
|
||||
if (!(npc->flags & 0x100000)) {
|
||||
npc->flags |= 0x100000;
|
||||
|
||||
blurBuf = heap_malloc(sizeof(BlurBuffer));
|
||||
@ -228,7 +228,7 @@ INCLUDE_ASM(s32, "npc", func_8003C3D8);
|
||||
|
||||
INCLUDE_ASM(s32, "npc", func_8003C428);
|
||||
|
||||
INCLUDE_ASM(s32, "npc", func_8003C444);
|
||||
INCLUDE_ASM(s32, "npc", npc_update_decorations);
|
||||
|
||||
INCLUDE_ASM(s32, "npc", func_8003C53C);
|
||||
|
||||
@ -396,7 +396,6 @@ void func_8003E338(void) {
|
||||
|
||||
void clear_encounter_status(void) {
|
||||
EncounterStatus* currentEncounter = &gCurrentEncounter;
|
||||
GameStatus** gameStatus;
|
||||
s32 i;
|
||||
s32 j;
|
||||
|
||||
@ -418,14 +417,13 @@ void clear_encounter_status(void) {
|
||||
}
|
||||
}
|
||||
|
||||
gameStatus = &gGameStatusPtr;
|
||||
currentEncounter->numEncounters = 0;
|
||||
currentEncounter->eFirstStrike = 0;
|
||||
currentEncounter->hitType = 0;
|
||||
currentEncounter->unk_0A = 0;
|
||||
currentEncounter->currentAreaIndex = (*gameStatus)->areaID;
|
||||
currentEncounter->currentMapIndex = (*gameStatus)->mapID;
|
||||
currentEncounter->currentEntryIndex = (*gameStatus)->entryID;
|
||||
currentEncounter->currentAreaIndex = gGameStatusPtr->areaID;
|
||||
currentEncounter->currentMapIndex = gGameStatusPtr->mapID;
|
||||
currentEncounter->currentEntryIndex = gGameStatusPtr->entryID;
|
||||
currentEncounter->npcGroupList = 0;
|
||||
currentEncounter->unk_08 = 0;
|
||||
currentEncounter->unk_12 = 0;
|
||||
@ -439,8 +437,7 @@ void func_8003E50C(void) {
|
||||
}
|
||||
|
||||
void func_8003E514(s8 arg0) {
|
||||
EncounterStatus* currentEncounter = &gCurrentEncounter;
|
||||
currentEncounter->unk_08 = arg0;
|
||||
gCurrentEncounter.unk_08 = arg0;
|
||||
}
|
||||
|
||||
void update_counters(void) {
|
||||
@ -492,11 +489,13 @@ void draw_encounter_ui(void) {
|
||||
}
|
||||
|
||||
void draw_first_strike_ui(void) {
|
||||
if (gGameState != 0) {
|
||||
if (gGameState == 3) {
|
||||
switch (gGameState) {
|
||||
case 0:
|
||||
default:
|
||||
break;
|
||||
case 3:
|
||||
show_first_strike_message();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void npc_dyn_entity_draw_no_op(void) {
|
||||
|
@ -291,7 +291,7 @@ INCLUDE_ASM(s32, "sprite", func_802DE0C0);
|
||||
|
||||
INCLUDE_ASM(s32, "sprite", func_802DE0EC);
|
||||
|
||||
INCLUDE_ASM(s32, "sprite", func_802DE2AC, s32 arg0, s32 arg1, f32 arg2);
|
||||
INCLUDE_ASM(s32, "sprite", spr_update_sprite, s32 arg0, s32 arg1, f32 arg2);
|
||||
|
||||
INCLUDE_ASM(s32, "sprite", func_802DE3D8);
|
||||
|
||||
|
@ -33,7 +33,9 @@ f32 D_800F7B70[] = { 2.0f, 4.0f, 32.0f, -32.0f };
|
||||
s16 D_800F7B80 = 0;
|
||||
s32 D_800F7B84[] = { 0, 0, 0};
|
||||
f32 D_800F7B90 = 0.0;
|
||||
s32 D_800F7B94[] = { 0x00390000, 0x00390002, 0x00390003, 0x00390004, 0x00390005, 0x00390008, 0x00390007, 0x00390013, 0x00390014, 0xFFFFFFFF, 0x005A0000, 0x005A0002, 0x005A0003, 0x005A0004, 0x005A0006, 0x005A0007, 0x005A0009, 0x005A000A, 0x005A000B, 0x005A001A, 0xFFFFFFFF, 0x00580000, 0x00580001, 0x00580002, 0x00580004, 0x00580005, 0x00580006, 0x00580007, 0x00580008, 0x00580009, 0x00580012, 0x00580014, 0x0058001B, 0xFFFFFFFF };
|
||||
s32 D_800F7B94[] = { 0x00390000, 0x00390002, 0x00390003, 0x00390004, 0x00390005, 0x00390008, 0x00390007, 0x00390013, 0x00390014, 0xFFFFFFFF, };
|
||||
s32 D_800F7BBC[] = { 0x005A0000, 0x005A0002, 0x005A0003, 0x005A0004, 0x005A0006, 0x005A0007, 0x005A0009, 0x005A000A, 0x005A000B, 0x005A001A, 0xFFFFFFFF, };
|
||||
s32 D_800F7BE8[] = { 0x00580000, 0x00580001, 0x00580002, 0x00580004, 0x00580005, 0x00580006, 0x00580007, 0x00580008, 0x00580009, 0x00580012, 0x00580014, 0x0058001B, 0xFFFFFFFF};
|
||||
|
||||
DisguiseAnims world_actions_peachDisguises[] = {
|
||||
{0x00580001, 0x00580004, 0x00580006, 0x00580008, 0x00580000, 0x0058001B},
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -1,6 +1,6 @@
|
||||
#include "dgb_01.h"
|
||||
|
||||
Gfx D_00C057F0_1[] = {
|
||||
Gfx D_80247F70_C057F0[] = {
|
||||
gsDPSetTextureLUT(G_TT_NONE),
|
||||
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
|
||||
gsDPSetCombineMode(G_CC_MODULATEIA, G_CC_MODULATEIA),
|
||||
|
@ -1,6 +1,6 @@
|
||||
#include "dgb_01.h"
|
||||
|
||||
Gfx D_00C06870_1[] = {
|
||||
Gfx D_80248FF0_C06870[] = {
|
||||
gsDPSetTextureLUT(G_TT_NONE),
|
||||
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
|
||||
gsDPSetCombineMode(G_CC_MODULATEIA, G_CC_MODULATEIA),
|
||||
|
@ -1,6 +1,6 @@
|
||||
#include "dgb_01.h"
|
||||
|
||||
Gfx D_00C070F0_1[] = {
|
||||
Gfx D_80249870_C070F0[] = {
|
||||
gsDPSetTextureLUT(G_TT_NONE),
|
||||
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
|
||||
gsDPSetCombineMode(G_CC_MODULATEIA, G_CC_MODULATEIA),
|
||||
|
@ -1,6 +1,6 @@
|
||||
#include "dgb_01.h"
|
||||
|
||||
Gfx D_00C07570_1[] = {
|
||||
Gfx D_80249CF0_C07570[] = {
|
||||
gsDPSetTextureLUT(G_TT_NONE),
|
||||
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
|
||||
gsDPSetCombineMode(G_CC_MODULATEIA, G_CC_MODULATEIA),
|
||||
|
@ -1,6 +1,6 @@
|
||||
#include "dgb_01.h"
|
||||
|
||||
Gfx D_00C079F0_1[] = {
|
||||
Gfx D_8024A170_C079F0[] = {
|
||||
gsDPSetTextureLUT(G_TT_NONE),
|
||||
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
|
||||
gsDPSetCombineMode(G_CC_MODULATEIA, G_CC_MODULATEIA),
|
||||
|
@ -1,6 +1,6 @@
|
||||
#include "dgb_01.h"
|
||||
|
||||
Gfx D_00C07E70_1[] = {
|
||||
Gfx D_8024A5F0_C07E70[] = {
|
||||
gsDPSetTextureLUT(G_TT_NONE),
|
||||
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
|
||||
gsDPSetCombineMode(G_CC_MODULATEIA, G_CC_MODULATEIA),
|
||||
|
@ -1,6 +1,6 @@
|
||||
#include "dgb_01.h"
|
||||
|
||||
Gfx D_00C07E70_11[] = {
|
||||
Gfx D_8024AE70_C086F0[] = {
|
||||
gsDPSetTextureLUT(G_TT_NONE),
|
||||
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
|
||||
gsDPSetCombineMode(G_CC_MODULATEIA, G_CC_MODULATEIA),
|
||||
|
@ -1,6 +1,6 @@
|
||||
#include "dgb_01.h"
|
||||
|
||||
Gfx D_8024B6F0_1[] = {
|
||||
Gfx D_8024B6F0_C08F70[] = {
|
||||
gsDPSetTextureLUT(G_TT_NONE),
|
||||
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
|
||||
gsDPSetCombineMode(G_CC_MODULATEIA, G_CC_MODULATEIA),
|
||||
|
@ -13,7 +13,7 @@ void N(DeadUnkNpcAIFunc14)(ScriptInstance* script, NpcAISettings* aiSettings) {
|
||||
npc->jumpVelocity = jumpVelocity;
|
||||
npc->jumpScale = jumpScale;
|
||||
npc->moveSpeed = aiSettings->chaseSpeed;
|
||||
npc->yaw = dead_atan2(npc->pos.x, npc->pos.z, D_800FFC90->position.x, D_800FFC90->position.z);
|
||||
npc->yaw = dead_atan2(npc->pos.x, npc->pos.z, dead_gPlayerStatusPtr->position.x, dead_gPlayerStatusPtr->position.z);
|
||||
|
||||
enemy->varTable[2] = 0;
|
||||
|
||||
|
@ -1,6 +1,8 @@
|
||||
#include "common.h"
|
||||
#include "goompa.h"
|
||||
|
||||
static s32 goompa_802BD600;
|
||||
|
||||
void world_goompa_init(Npc* partner) {
|
||||
partner->collisionHeight = 24;
|
||||
partner->collisionRadius = 20;
|
||||
@ -36,7 +38,7 @@ Script world_goompa_take_out = SCRIPT({
|
||||
GoompaTakeOut();
|
||||
});
|
||||
|
||||
s32 D_802BD58C_324E9C = 0x802BD600;
|
||||
s32 D_802BD58C_324E9C = &goompa_802BD600;
|
||||
|
||||
Script world_goompa_update = SCRIPT({
|
||||
func_802BD14C_324A5C();
|
||||
|
@ -1,16 +1,134 @@
|
||||
#include "common.h"
|
||||
|
||||
INCLUDE_ASM(s32, "world/script_api/7E0E80", func_80280000);
|
||||
extern s32 MessagePlural;
|
||||
extern s32 MessageSingular;
|
||||
|
||||
INCLUDE_ASM(s32, "world/script_api/7E0E80", func_80280088);
|
||||
extern s32 D_80286520;
|
||||
extern s32 D_80286524;
|
||||
|
||||
INCLUDE_ASM(s32, "world/script_api/7E0E80", func_8028017C);
|
||||
ApiStatus func_802803C8(ScriptInstance* script, s32 isInitialCall);
|
||||
ApiStatus func_80280410(ScriptInstance* script, s32 isInitialCall);
|
||||
ApiStatus ShowShopPurchaseDialog(ScriptInstance* script, s32 isInitialCall);
|
||||
ApiStatus ShowShopOwnerDialog(ScriptInstance* script, s32 isInitialCall);
|
||||
|
||||
INCLUDE_ASM(s32, "world/script_api/7E0E80", func_80280208);
|
||||
s32 D_80283E80_7E4D00[] = { 0x00000043, 0x00000006, SpeakToPlayer, 0xFE363C81, 0xFE363C82, 0xFE363C83, 0x00000000, 0xFE363C80, 0x00000002, 0x00000000, 0x00000001, 0x00000000, };
|
||||
|
||||
INCLUDE_ASM(s32, "world/script_api/7E0E80", func_802802D0);
|
||||
s32 D_80283EB0_7E4D30[] = { 0x00000043, 0x00000006, ContinueSpeech, 0xFE363C81, 0xFE363C82, 0xFE363C83, 0x00000000, 0xFE363C80, 0x00000002, 0x00000000, 0x00000001, 0x00000000, };
|
||||
|
||||
INCLUDE_ASM(s32, "world/script_api/7E0E80", func_8028035C);
|
||||
s32 D_80283EE0_7E4D60[] = { 0x00000043, 0x00000005, EndSpeech, 0xFE363C81, 0xFE363C82, 0xFE363C83, 0x00000000, 0x00000043, 0x00000006, SpeakToPlayer, 0xFE363C81, 0xFE363C82, 0xFE363C83, 0x00000000, 0xFE363C80, 0x00000002, 0x00000000, 0x00000001, 0x00000000, };
|
||||
|
||||
s32 D_80283F2C_7E4DAC[] = { 0x00000043, 0x00000005, EndSpeech, 0xFE363C80, 0xFE363C81, 0xFE363C82, 0x00000000, 0x00000002, 0x00000000, 0x00000001, 0x00000000, };
|
||||
|
||||
s32 D_80283F58_7E4DD8[] = { 0x00000043, 0x00000002, GetCurrentPartner, 0xFE363C81, 0x0000000A, 0x00000002, 0xFE363C81, 0x00000000, 0x00000004, 0x00000001, 0x0000000A, 0x00000013, 0x00000000, 0x0000000A, 0x00000002, 0xFE363C81, 0x00000002, 0x00000004, 0x00000001, 0x0000000A, 0x00000013, 0x00000000, 0x0000000A, 0x00000002, 0xFE363C81, 0x00000003, 0x00000004, 0x00000001, 0x0000000A, 0x00000013, 0x00000000, 0x00000002, 0x00000000, 0x00000003, 0x00000001, 0x0000000A, 0x00000043, 0x00000001, func_802803C8, 0x0000000A, 0x00000002, 0xFE363C82, 0x00000000, 0x00000002, 0x00000000, 0x00000013, 0x00000000, 0x00000043, 0x00000002, func_80280410, 0xFE363C80, 0x00000002, 0x00000000, 0x00000001, 0x00000000, };
|
||||
|
||||
s32 D_80284034_7E4EB4[] = { 0x00000043, 0x00000002, ShowShopPurchaseDialog, 0xFE363C80, 0x00000002, 0x00000000, 0x00000001, 0x00000000, 0x00000043, 0x00000001, ShowShopOwnerDialog, 0x00000002, 0x00000000, 0x00000001, 0x00000000, };
|
||||
|
||||
static s32 D_80286520;
|
||||
static s32 D_80286524;
|
||||
|
||||
s32 shop_owner_begin_speech(s32 messageIndex) {
|
||||
Shop* shop = gGameStatusPtr->mapShop;
|
||||
s32 shopStringID = shop->owner->shopStringIDs[messageIndex];
|
||||
ScriptInstance* script = start_script(&D_80283E80_7E4D00, 1, 0);
|
||||
|
||||
script->varTable[0] = shopStringID;
|
||||
script->varTable[1] = shop->owner->npcID;
|
||||
script->varTable[2] = shop->owner->talkAnim;
|
||||
script->varTable[3] = shop->owner->idleAnim;
|
||||
|
||||
return script->id;
|
||||
}
|
||||
|
||||
s32 shop_owner_buy_dialog(s32 messageIndex, s32 itemName, s32 coinCost, s32 bpCost) {
|
||||
Shop* shop = gGameStatusPtr->mapShop;
|
||||
s32 shopStringID = shop->owner->shopStringIDs[messageIndex];
|
||||
ScriptInstance *script;
|
||||
s32 phi_a0;
|
||||
|
||||
set_message_string(itemName, 0);
|
||||
set_message_value(coinCost, 1);
|
||||
|
||||
if (bpCost > 0) {
|
||||
set_message_value(bpCost, 2);
|
||||
} else {
|
||||
if (coinCost == 1) {
|
||||
phi_a0 = &MessageSingular;
|
||||
} else {
|
||||
phi_a0 = &MessagePlural;
|
||||
}
|
||||
set_message_string(phi_a0, 2);
|
||||
}
|
||||
|
||||
script = start_script(&D_80283E80_7E4D00, 1, 0);
|
||||
script->varTable[0] = shopStringID;
|
||||
script->varTable[1] = shop->owner->npcID;
|
||||
script->varTable[2] = shop->owner->talkAnim;
|
||||
script->varTable[3] = shop->owner->idleAnim;
|
||||
|
||||
return script->id;
|
||||
}
|
||||
|
||||
s32 shop_owner_continue_speech(s32 messageIndex) {
|
||||
Shop* shop = gGameStatusPtr->mapShop;
|
||||
s32 shopStringID = shop->owner->shopStringIDs[messageIndex];
|
||||
ScriptInstance* script = start_script(&D_80283EB0_7E4D30, 1, 0);
|
||||
|
||||
script->varTable[0] = shopStringID;
|
||||
script->varTable[1] = shop->owner->npcID;
|
||||
script->varTable[2] = shop->owner->talkAnim;
|
||||
script->functionTemp[3].s = script->varTable[3] = shop->owner->idleAnim;
|
||||
|
||||
return script->id;
|
||||
}
|
||||
|
||||
s32 shop_owner_continue_speech_with_quantity(s32 messageIndex, s32 amount) {
|
||||
Shop* shop = gGameStatusPtr->mapShop;
|
||||
s32 shopStringID = shop->owner->shopStringIDs[messageIndex];
|
||||
s32 phi_a0;
|
||||
ScriptInstance* script;
|
||||
|
||||
set_message_value(amount, 0);
|
||||
|
||||
if (amount == 1) {
|
||||
phi_a0 = &MessageSingular;
|
||||
} else {
|
||||
phi_a0 = &MessagePlural;
|
||||
}
|
||||
|
||||
set_message_string(phi_a0, 1);
|
||||
|
||||
script = start_script(&D_80283EB0_7E4D30, 1, 0);
|
||||
script->varTable[0] = shopStringID;
|
||||
script->varTable[1] = shop->owner->npcID;
|
||||
script->varTable[2] = shop->owner->talkAnim;
|
||||
script->functionTemp[3].s = script->varTable[3] = shop->owner->idleAnim;
|
||||
|
||||
return script->id;
|
||||
}
|
||||
|
||||
s32 shop_owner_reset_speech(s32 messageIndex) {
|
||||
Shop* shop = gGameStatusPtr->mapShop;
|
||||
s32 shopStringID = shop->owner->shopStringIDs[messageIndex];
|
||||
ScriptInstance* script = start_script(&D_80283EE0_7E4D60, 1, 0);
|
||||
|
||||
script->varTable[0] = shopStringID;
|
||||
script->varTable[1] = shop->owner->npcID;
|
||||
script->varTable[2] = shop->owner->talkAnim;
|
||||
script->functionTemp[3].s = script->varTable[3] = shop->owner->idleAnim;
|
||||
|
||||
return script->id;
|
||||
}
|
||||
|
||||
s32 shop_owner_end_speech(void) {
|
||||
Shop* shop = gGameStatusPtr->mapShop;
|
||||
ScriptInstance* script = start_script(&D_80283F2C_7E4DAC, 1, 0);
|
||||
|
||||
script->varTable[0] = shop->owner->npcID;
|
||||
script->varTable[1] = shop->owner->talkAnim;
|
||||
script->functionTemp[3].s = script->varTable[2] = shop->owner->idleAnim;
|
||||
|
||||
return script->id;
|
||||
}
|
||||
|
||||
ApiStatus func_802803C8(ScriptInstance* script, s32 isInitialCall) {
|
||||
PlayerStatus* playerStatus = &gPlayerStatus;
|
||||
@ -30,30 +148,96 @@ ApiStatus func_802803C8(ScriptInstance* script, s32 isInitialCall) {
|
||||
return ApiStatus_DONE2;
|
||||
}
|
||||
|
||||
// BSS nop issue
|
||||
#ifdef NON_MATCHING
|
||||
ApiStatus func_80280410(ScriptInstance* script, s32 isInitialCall) {
|
||||
Shop* shop = gGameStatusPtr->mapShop;
|
||||
s32 var1 = get_variable(script, *script->ptrReadPos);
|
||||
|
||||
if (!(shop->flags & 8)) {
|
||||
shop->unk_08 = var1;
|
||||
shop->flags |= 1;
|
||||
func_800E98EC();
|
||||
shop->unk_358 = 5;
|
||||
|
||||
if (gGameStatusPtr->pressedButtons & 0x8000) {
|
||||
ScriptInstance* childScript;
|
||||
|
||||
disable_player_input();
|
||||
disable_player_static_collisions();
|
||||
|
||||
childScript = start_script(&D_80284034_7E4EB4, 1, 0);
|
||||
childScript->varTable[0] = var1;
|
||||
D_80286520 = childScript;
|
||||
D_80286524 = childScript->id;
|
||||
shop->flags |= 8;
|
||||
return ApiStatus_BLOCK;
|
||||
} else {
|
||||
return ApiStatus_DONE2;
|
||||
}
|
||||
} else if (does_script_exist(D_80286524)) {
|
||||
return ApiStatus_BLOCK;
|
||||
}
|
||||
|
||||
shop->flags &= ~0x8;
|
||||
enable_player_static_collisions();
|
||||
enable_player_input();
|
||||
return ApiStatus_DONE2;
|
||||
}
|
||||
#else
|
||||
INCLUDE_ASM(s32, "world/script_api/7E0E80", func_80280410);
|
||||
#endif
|
||||
|
||||
INCLUDE_ASM(s32, "world/script_api/7E0E80", func_8028051C);
|
||||
INCLUDE_ASM(ApiStatus, "world/script_api/7E0E80", ShowShopPurchaseDialog, ScriptInstance* script, s32 isInitialCall);
|
||||
|
||||
INCLUDE_ASM(s32, "world/script_api/7E0E80", func_80280954);
|
||||
INCLUDE_ASM(s32, "world/script_api/7E0E80", shop_open_item_select_popup);
|
||||
|
||||
INCLUDE_ASM(s32, "world/script_api/7E0E80", func_80280AC4);
|
||||
INCLUDE_ASM(s32, "world/script_api/7E0E80", shop_update_item_select_popup);
|
||||
|
||||
void func_80280B44(void) {
|
||||
void shop_close_item_select_popup(void) {
|
||||
func_800F1538();
|
||||
func_800E9900();
|
||||
func_800E98C4();
|
||||
close_status_menu();
|
||||
}
|
||||
|
||||
INCLUDE_ASM(s32, "world/script_api/7E0E80", func_80280B78);
|
||||
// Ordering issue
|
||||
#ifdef NON_MATCHING
|
||||
s32 shop_get_sell_price(s32 itemID) {
|
||||
Shop* shop = gGameStatusPtr->mapShop;
|
||||
s32 numItems = shop->numSpecialPrices;
|
||||
s32 i;
|
||||
|
||||
INCLUDE_ASM(s32, "world/script_api/7E0E80", func_80280BD0);
|
||||
for (i = 0; i < numItems; i++) {
|
||||
if (shop->staticPriceList[i].itemID == itemID) {
|
||||
return shop->staticPriceList[i].sellPrice;
|
||||
}
|
||||
}
|
||||
|
||||
INCLUDE_ASM(s32, "world/script_api/7E0E80", func_80281434);
|
||||
return gItemTable[itemID].sellValue;
|
||||
}
|
||||
#else
|
||||
INCLUDE_ASM(s32, "world/script_api/7E0E80", shop_get_sell_price);
|
||||
#endif
|
||||
|
||||
INCLUDE_ASM(s32, "world/script_api/7E0E80", func_802814D0);
|
||||
INCLUDE_ASM(ApiStatus, "world/script_api/7E0E80", ShowShopOwnerDialog, ScriptInstance* script, s32 isInitialCall);
|
||||
|
||||
INCLUDE_ASM(s32, "world/script_api/7E0E80", draw_shop_items);
|
||||
void shop_draw_item_name(s32 arg0, s32 posX, s32 posY) {
|
||||
Shop* shop = gGameStatusPtr->mapShop;
|
||||
StaticInventoryItem* siItem = &shop->staticInventory[shop->unk_08];
|
||||
StaticItem* item = &gItemTable[siItem->unk_00];
|
||||
|
||||
draw_msg(item->nameString, posX + 60 - (get_string_width(item->nameString, 0) >> 1), posY + 6, 255, 0, 0);
|
||||
}
|
||||
|
||||
void shop_draw_item_desc(s32 arg0, s32 posX, s32 posY) {
|
||||
Shop* shop = gGameStatusPtr->mapShop;
|
||||
StaticInventoryItem* item = &shop->staticInventory[shop->unk_08];
|
||||
|
||||
draw_msg(item->unk_08, posX + 8, posY, 255, 0xA, 0);
|
||||
}
|
||||
|
||||
INCLUDE_ASM(s32, "world/script_api/7E0E80", shop_draw_items);
|
||||
|
||||
INCLUDE_ASM(ApiStatus, "world/script_api/7E0E80", MakeShop, ScriptInstance* script, s32 isInitialCall);
|
||||
|
||||
|
@ -38,25 +38,17 @@ void load_world_script_api(void) {
|
||||
}
|
||||
|
||||
void load_map_by_IDs(s16 areaID, s16 mapID, s16 loadType) {
|
||||
PlayerStatus* playerStatus;
|
||||
GameStatus** gameStatus;
|
||||
GameStatus** gameStatus2;
|
||||
GameStatus** gameStatus3;
|
||||
s32 initStatus;
|
||||
s32 initStatus = 0;
|
||||
Map* map;
|
||||
MapConfig* temp800A41E8;
|
||||
s32* overrideFlags;
|
||||
char texStr[17];
|
||||
s32 decompressedSize;
|
||||
|
||||
initStatus = 0;
|
||||
sfx_stop_env_sounds();
|
||||
gOverrideFlags &= ~0x40;
|
||||
gOverrideFlags &= ~0x80;
|
||||
|
||||
gameStatus = &gGameStatusPtr;
|
||||
|
||||
(*gameStatus)->unk_84 = 0;
|
||||
gGameStatusPtr->unk_84 = 0;
|
||||
func_8002D160();
|
||||
func_802B2078();
|
||||
func_8011D890();
|
||||
@ -66,14 +58,14 @@ void load_map_by_IDs(s16 areaID, s16 mapID, s16 loadType) {
|
||||
switch (loadType) {
|
||||
case 0:
|
||||
clear_area_flags();
|
||||
(*gameStatus)->loadType = 0;
|
||||
gGameStatusPtr->loadType = 0;
|
||||
break;
|
||||
case 1:
|
||||
fio_deserialize_state();
|
||||
areaID = (*gameStatus)->areaID;
|
||||
mapID = (*gameStatus)->mapID;
|
||||
(*gameStatus)->prevArea = areaID;
|
||||
(*gameStatus)->loadType = 1;
|
||||
areaID = gGameStatusPtr->areaID;
|
||||
mapID = gGameStatusPtr->mapID;
|
||||
gGameStatusPtr->prevArea = areaID;
|
||||
gGameStatusPtr->loadType = 1;
|
||||
break;
|
||||
}
|
||||
|
||||
@ -84,7 +76,7 @@ void load_map_by_IDs(s16 areaID, s16 mapID, s16 loadType) {
|
||||
sprintf(&D_800D9230, "%s_shape", map->id);
|
||||
sprintf(&D_800D91E0, "%s_hit", map->id);
|
||||
strcpy(texStr, map->id);
|
||||
texStr[3] = 0;
|
||||
texStr[3] = '\0';
|
||||
sprintf(&D_800B0CF0, "%s_tex", texStr);
|
||||
|
||||
D_800A41E0 = map;
|
||||
@ -97,9 +89,7 @@ void load_map_by_IDs(s16 areaID, s16 mapID, s16 loadType) {
|
||||
dma_copy(map->dmaStart, map->dmaEnd, map->dmaDest);
|
||||
}
|
||||
|
||||
temp800A41E8 = &D_800A41E8;
|
||||
*temp800A41E8 = *map->config;
|
||||
|
||||
D_800A41E8 = *map->config;
|
||||
|
||||
temp800A41E8 = &D_800A41E8;
|
||||
if (map->init != 0) {
|
||||
@ -129,8 +119,7 @@ void load_map_by_IDs(s16 areaID, s16 mapID, s16 loadType) {
|
||||
clear_dynamic_entity_list();
|
||||
clear_script_list();
|
||||
create_cameras_a();
|
||||
gameStatus2 = &gGameStatusPtr;
|
||||
spr_init_sprites((*gameStatus2)->unk_84);
|
||||
spr_init_sprites(gGameStatusPtr->unk_84);
|
||||
func_8011E224();
|
||||
clear_entity_models();
|
||||
npc_list_clear();
|
||||
@ -140,7 +129,7 @@ void load_map_by_IDs(s16 areaID, s16 mapID, s16 loadType) {
|
||||
func_80148040();
|
||||
use_default_background_settings();
|
||||
|
||||
if ((*gameStatus2)->unk_A8 == -1) {
|
||||
if (gGameStatusPtr->unk_A8 == -1) {
|
||||
func_80138188();
|
||||
}
|
||||
|
||||
@ -159,8 +148,7 @@ void load_map_by_IDs(s16 areaID, s16 mapID, s16 loadType) {
|
||||
clear_printers();
|
||||
clear_item_entity_data();
|
||||
|
||||
playerStatus = &gPlayerStatus;
|
||||
playerStatus->targetYaw = playerStatus->currentYaw;
|
||||
gPlayerStatus.targetYaw = gPlayerStatus.currentYaw;
|
||||
|
||||
func_801497FC(D_8008FF60[map->unk_1C.u32 % 4]);
|
||||
sfx_reset_door_sounds();
|
||||
@ -192,10 +180,9 @@ void load_map_by_IDs(s16 areaID, s16 mapID, s16 loadType) {
|
||||
}
|
||||
|
||||
initialize_status_menu();
|
||||
gameStatus3 = &gGameStatusPtr;
|
||||
(*gameStatus3)->unk_90 = 1000;
|
||||
(*gameStatus3)->unk_92 = 1000;
|
||||
(*gameStatus3)->mainScriptID = start_script_in_group(temp800A41E8->main, 0, 0, 0)->id;
|
||||
gGameStatusPtr->unk_90 = 1000;
|
||||
gGameStatusPtr->unk_92 = 1000;
|
||||
gGameStatusPtr->mainScriptID = start_script_in_group(temp800A41E8->main, 0, 0, 0)->id;
|
||||
}
|
||||
|
||||
s32 get_current_map_config() {
|
||||
|
@ -6,3 +6,5 @@ assembler_command = "mips-linux-gnu-as -march=vr4300 -mabi=32"
|
||||
OVERRIDE_FLAG_CHECK = "int"
|
||||
OS_K0_TO_PHYSICAL = "int"
|
||||
"G_.*" = "int"
|
||||
"TEXEL.*" = "int"
|
||||
PRIMITIVE = "int"
|
||||
|
@ -77,6 +77,9 @@ def read_symbol_addrs():
|
||||
unique_lines.add(line)
|
||||
|
||||
for line in unique_lines:
|
||||
if "_ROM_START" in line or "_ROM_END" in line:
|
||||
continue
|
||||
|
||||
main, ext = line.rstrip().split(";")
|
||||
opt = ext.split("//")[-1].strip().split(" ")
|
||||
|
||||
@ -84,7 +87,6 @@ def read_symbol_addrs():
|
||||
type = ""
|
||||
rom = -1
|
||||
|
||||
args = []
|
||||
for thing in list(opt):
|
||||
if thing.strip() == "":
|
||||
opt.remove(thing)
|
||||
@ -97,6 +99,11 @@ def read_symbol_addrs():
|
||||
elif "dead:" in thing:
|
||||
dead = True
|
||||
|
||||
eqsplit = main.split(" = ")
|
||||
if len(eqsplit) != 2:
|
||||
print(f"Line malformed: '{main}'")
|
||||
sys.exit(1)
|
||||
|
||||
name, addr = main.split(" = ")
|
||||
|
||||
if not dead:
|
||||
@ -117,6 +124,9 @@ def read_elf():
|
||||
components = line.split()
|
||||
name = components[-1]
|
||||
|
||||
if "_ROM_START" in name or "_ROM_END" in name:
|
||||
continue
|
||||
|
||||
if "/" in name or \
|
||||
name in ignores or \
|
||||
name.startswith("_") or \
|
||||
|
@ -3,37 +3,118 @@
|
||||
.section .data
|
||||
|
||||
glabel D_802E9D90
|
||||
.word 0x00000003, 0x00000000, func_802E3650, 0x00000009, 0x0000014E, 0x00000002, func_802E31EC, 0x00000003, 0x00000006, func_802E328C, 0x00000002, func_80110678, 0x00000004, 0x00000000, 0x00000000, 0x00000003, 0x00000000, func_802E3650, 0x00000002, func_80110678, 0x00000004, 0x00000000, 0x00000000, 0x00000003, 0x00000000, func_802E3650, 0x00000009, 0x0000014E, 0x00000004, 0x00000000, 0x00000000, 0x00000003, 0x00000000, func_802E3650, 0x00000009, 0x0000014E, 0x00000002, func_802E3714, 0x00000002, func_80110678, 0x00000003, 0x00000000, func_802E3728, 0x00000003, 0x00000000, func_802E37E4, 0x00000004, 0x00000000, 0x00000000
|
||||
.word 0x00000003, 0x00000000, func_802E3650, 0x00000009, 0x0000014E, 0x00000002, func_802E31EC, 0x00000003, 0x00000006, func_802E328C, 0x00000002, func_80110678, 0x00000004, 0x00000000, 0x00000000
|
||||
|
||||
glabel D_802E9DCC
|
||||
.word 0x00000003, 0x00000000, func_802E3650, 0x00000002, func_80110678, 0x00000004, 0x00000000, 0x00000000, 0x00000003, 0x00000000, func_802E3650, 0x00000009, 0x0000014E, 0x00000004, 0x00000000, 0x00000000
|
||||
|
||||
glabel D_802E9E0C
|
||||
.word 0x00000003, 0x00000000, func_802E3650, 0x00000009, 0x0000014E, 0x00000002, func_802E3714, 0x00000002, func_80110678, 0x00000003, 0x00000000, func_802E3728, 0x00000003, 0x00000000, func_802E37E4, 0x00000004, 0x00000000, 0x00000000
|
||||
|
||||
glabel D_802E9E54
|
||||
.word 0x00000002, func_802E3714, 0x00000003, 0x00000000, func_802E3728, 0x00000003, 0x00000000, func_802E37E4, 0x00000001, 0x802E9E0C, 0x00000000
|
||||
.word 0x00000002, func_802E3714, 0x00000003, 0x00000000, func_802E3728, 0x00000003, 0x00000000, func_802E37E4, 0x00000001, D_802E9E0C, 0x00000000
|
||||
|
||||
glabel D_802E9E80
|
||||
.word 0x00000006, 0x00000007, 0x00000001, 0x00000007, 0x00000020, 0x00000002, func_802E2FD0, 0x00000003, 0x00000001, 0x00000000, 0x00000007, 0x20000000, 0x00000000, 0x00000003, 0x00000000, func_802E2450, 0x00000002, func_80110678, 0x00000007, 0x00000001, 0x00000007, 0x00000020, 0x00000002, func_802E2FD0, 0x00000009, 0x0000014E, 0x00000003, 0x00000002, 0x00000000, 0x00000007, 0x20000000, 0x00000000, 0x00000003, 0x00000000, func_802E3650, 0x00000009, 0x0000014E, 0x00000002, func_80110678, 0x00000004, 0x00000000, 0x00000000, 0x00000002, func_802E3B08, 0x00000005, 0x00000001, 0x00000003, 0x00000000, func_802E3A48, 0x00000009, 0x0000014E, 0x00000002, func_802E38D8, 0x00000002, func_802E3714, 0x00000003, 0x00000000, func_802E3728, 0x00000003, 0x00000000, func_802E37E4, 0x00000004, 0x00000001, 0x00000000, 0x00000004, 0x00000001, 0x00000001, 0x0000003C, 0x0A0004E0, 0x00000002, 0x00000000, 0x00000004, 0x00000001, 0x00000001, 0x0000003C, 0x0A000A90, 0x00000002, 0x00000000, 0x00000004, 0x00000001, 0x00000001, 0x0000003C, 0x0A0004A0, 0x00000002, 0x00000000, 0x00000004, 0x00000001, 0x00000001, 0x0000003C, 0x0A0004F0, 0x00000002, 0x00000000, 0x00000004, 0x00000001, 0x00000001, 0x0000003C, 0x0A0004F0, 0x00000002, 0x00000000, 0x00000004, 0x00000001, 0x00000001, 0x0000003C, 0x0A0004E0, 0x00000002, 0x00000000, 0x00000004, 0x00000001, 0x00000001, 0x0000003C, 0x0A000338, 0x00000002, 0x00000000, 0x00000004, 0x00000001, 0x00000001, 0x0000003C, 0x0A0004A0, 0x00000002, 0x00000000, 0x00000004, 0x00000001, 0x00000001, 0x0000003C, 0x0A000CC8, 0x00000002, 0x00000000
|
||||
.word 0x00000006, 0x00000007, 0x00000001, 0x00000007, 0x00000020, 0x00000002, func_802E2FD0, 0x00000003, 0x00000001, 0x00000000, 0x00000007, 0x20000000, 0x00000000
|
||||
|
||||
glabel D_802E9EB4
|
||||
.word 0x00000003, 0x00000000, func_802E2450, 0x00000002, func_80110678, 0x00000007, 0x00000001, 0x00000007, 0x00000020, 0x00000002, func_802E2FD0, 0x00000009, 0x0000014E, 0x00000003, 0x00000002, 0x00000000, 0x00000007, 0x20000000, 0x00000000
|
||||
|
||||
glabel D_802E9F00
|
||||
.word 0x00000003, 0x00000000, func_802E3650, 0x00000009, 0x0000014E, 0x00000002, func_80110678, 0x00000004, 0x00000000, 0x00000000
|
||||
|
||||
glabel D_802E9F28
|
||||
.word 0x00000002, func_802E3B08, 0x00000005, 0x00000001, 0x00000003, 0x00000000, func_802E3A48, 0x00000009, 0x0000014E, 0x00000002, func_802E38D8, 0x00000002, func_802E3714, 0x00000003, 0x00000000, func_802E3728, 0x00000003, 0x00000000, func_802E37E4, 0x00000004, 0x00000001, 0x00000000
|
||||
|
||||
glabel D_802E9F80
|
||||
.word 0x00000004, 0x00000001, 0x00000001, 0x0000003C, 0x0A0004E0, 0x00000002, 0x00000000
|
||||
|
||||
glabel D_802E9F9C
|
||||
.word 0x00000004, 0x00000001, 0x00000001, 0x0000003C, 0x0A000A90, 0x00000002, 0x00000000
|
||||
|
||||
glabel D_802E9FB8
|
||||
.word 0x00000004, 0x00000001, 0x00000001, 0x0000003C, 0x0A0004A0, 0x00000002, 0x00000000
|
||||
|
||||
glabel D_802E9FD4
|
||||
.word 0x00000004, 0x00000001, 0x00000001, 0x0000003C, 0x0A0004F0, 0x00000002, 0x00000000
|
||||
|
||||
glabel D_802E9FF0
|
||||
.word 0x00000004, 0x00000001, 0x00000001, 0x0000003C, 0x0A0004F0, 0x00000002, 0x00000000
|
||||
|
||||
glabel D_802EA00C
|
||||
.word 0x00000004, 0x00000001, 0x00000001, 0x0000003C, 0x0A0004E0, 0x00000002, 0x00000000
|
||||
|
||||
glabel D_802EA028
|
||||
.word 0x00000004, 0x00000001, 0x00000001, 0x0000003C, 0x0A000338, 0x00000002, 0x00000000
|
||||
|
||||
glabel D_802EA044
|
||||
.word 0x00000004, 0x00000001, 0x00000001, 0x0000003C, 0x0A0004A0, 0x00000002, 0x00000000
|
||||
|
||||
glabel D_802EA060
|
||||
.word 0x00000004, 0x00000001, 0x00000001, 0x0000003C, 0x0A000CC8, 0x00000002, 0x00000000
|
||||
|
||||
glabel D_802EA07C
|
||||
.word 0x42000020, 0x802E9F80, 0x00000000, entity_init_Hammer1Block_normal, 0x802E9E0C, func_802E3BA4, 0x00E42240, 0x00E42740, 0x0B191919
|
||||
.word 0x42000020, D_802E9F80, 0x00000000, entity_init_Hammer1Block_normal, D_802E9E0C, func_802E3BA4, 0x00E42240, 0x00E42740, 0x0B191919
|
||||
|
||||
glabel D_802EA0A0
|
||||
.word 0x42000020, 0x802E9F9C, 0x00000000, entity_init_Hammer1Block_normal, 0x802E9E0C, func_802E3BA4, 0x00E42740, 0x00E431F0, 0x13191919
|
||||
.word 0x42000020, D_802E9F9C, 0x00000000, entity_init_Hammer1Block_normal, D_802E9E0C, func_802E3BA4, 0x00E42740, 0x00E431F0, 0x13191919
|
||||
|
||||
glabel D_802EA0C4
|
||||
.word 0x42800020, 0x802EA044, 0x00000000, entity_init_Hammer23Block_normal, 0x802E9EB4, func_802E3BA4, 0x00E3DDB0, 0x00E3E260, 0x0D191919, 0x42000020, 0x802E9FB8, 0x00000000, func_802E3898, 0x802E9F28, func_802E3BA4, 0x00E3DDB0, 0x00E3E260, 0x0E191919, 0x42800020, 0x802E9FD4, 0x00000000, entity_init_Hammer1Block_normal, 0x802E9F00, func_802E3BA4, 0x00E31530, 0x00E31A30, 0x15323232, 0x42800020, 0x802E9FD4, 0x00000000, entity_init_Hammer1Block_normal, 0x802E9F00, func_802E3BA4, 0x00E31530, 0x00E31A30, 0x15643232, 0x42800020, 0x802E9FD4, 0x00000000, entity_init_Hammer1Block_normal, 0x802E9F00, func_802E3BA4, 0x00E31530, 0x00E31A30, 0x15323264, 0x42800020, 0x802E9FD4, 0x00000000, entity_init_HammerBlock_small, 0x802E9DCC, func_802E3BA4, 0x00E31530, 0x00E31A30, 0x18191919, 0x42800020, 0x802E9FF0, 0x00000000, entity_init_Hammer23Block_normal, 0x802E9DCC, func_802E3BA4, 0x00E31A30, 0x00E31F30, 0x16323232, 0x42800020, 0x802E9FF0, 0x00000000, entity_init_Hammer23Block_normal, 0x802E9DCC, func_802E3BA4, 0x00E31A30, 0x00E31F30, 0x16643232, 0x42800020, 0x802E9FF0, 0x00000000, entity_init_Hammer23Block_normal, 0x802E9DCC, func_802E3BA4, 0x00E31A30, 0x00E31F30, 0x16323264, 0x42800020, 0x802E9FF0, 0x00000000, entity_init_HammerBlock_small, 0x802E9DCC, func_802E3BA4, 0x00E31A30, 0x00E31F30, 0x19191919, 0x42800020, 0x802EA00C, 0x00000000, entity_init_Hammer23Block_normal, 0x802E9DCC, func_802E3BA4, 0x00E31F30, 0x00E32420, 0x17323232, 0x42800020, 0x802EA00C, 0x00000000, entity_init_Hammer23Block_normal, 0x802E9DCC, func_802E3BA4, 0x00E31F30, 0x00E32420, 0x17643232, 0x42800020, 0x802EA00C, 0x00000000, entity_init_Hammer23Block_normal, 0x802E9DCC, func_802E3BA4, 0x00E31F30, 0x00E32420, 0x17323264, 0x42800020, 0x802EA00C, 0x00000000, entity_init_HammerBlock_small, 0x802E9DCC, func_802E3BA4, 0x00E31F30, 0x00E32420, 0x1A191919
|
||||
.word 0x42800020, D_802EA044, 0x00000000, entity_init_Hammer23Block_normal, D_802E9EB4, func_802E3BA4, 0x00E3DDB0, 0x00E3E260, 0x0D191919, 0x42000020, D_802E9FB8, 0x00000000, func_802E3898, D_802E9F28, func_802E3BA4, 0x00E3DDB0, 0x00E3E260, 0x0E191919, 0x42800020, D_802E9FD4, 0x00000000, entity_init_Hammer1Block_normal, D_802E9F00, func_802E3BA4, 0x00E31530, 0x00E31A30, 0x15323232, 0x42800020, D_802E9FD4, 0x00000000, entity_init_Hammer1Block_normal, D_802E9F00, func_802E3BA4, 0x00E31530, 0x00E31A30, 0x15643232, 0x42800020, D_802E9FD4, 0x00000000, entity_init_Hammer1Block_normal, D_802E9F00, func_802E3BA4, 0x00E31530, 0x00E31A30, 0x15323264, 0x42800020, D_802E9FD4, 0x00000000, entity_init_HammerBlock_small, D_802E9DCC, func_802E3BA4, 0x00E31530, 0x00E31A30, 0x18191919, 0x42800020, D_802E9FF0, 0x00000000, entity_init_Hammer23Block_normal, D_802E9DCC, func_802E3BA4, 0x00E31A30, 0x00E31F30, 0x16323232, 0x42800020, D_802E9FF0, 0x00000000, entity_init_Hammer23Block_normal, D_802E9DCC, func_802E3BA4, 0x00E31A30, 0x00E31F30, 0x16643232, 0x42800020, D_802E9FF0, 0x00000000, entity_init_Hammer23Block_normal, D_802E9DCC, func_802E3BA4, 0x00E31A30, 0x00E31F30, 0x16323264, 0x42800020, D_802E9FF0, 0x00000000, entity_init_HammerBlock_small, D_802E9DCC, func_802E3BA4, 0x00E31A30, 0x00E31F30, 0x19191919, 0x42800020, D_802EA00C, 0x00000000, entity_init_Hammer23Block_normal, D_802E9DCC, func_802E3BA4, 0x00E31F30, 0x00E32420, 0x17323232, 0x42800020, D_802EA00C, 0x00000000, entity_init_Hammer23Block_normal, D_802E9DCC, func_802E3BA4, 0x00E31F30, 0x00E32420, 0x17643232, 0x42800020, D_802EA00C, 0x00000000, entity_init_Hammer23Block_normal, D_802E9DCC, func_802E3BA4, 0x00E31F30, 0x00E32420, 0x17323264, 0x42800020, D_802EA00C, 0x00000000, entity_init_HammerBlock_small, D_802E9DCC, func_802E3BA4, 0x00E31F30, 0x00E32420, 0x1A191919
|
||||
|
||||
glabel D_802EA2BC
|
||||
.word 0x40000020, 0x802EA028, 0x00000000, entity_init_Hammer23Block_normal, 0x802E9DCC, func_802E3BA4, 0x00E3DA60, 0x00E3DDB0, 0x0C191919, 0x40000020, 0x802EA060, 0x00000000, entity_init_Hammer23Block_normal, D_802E9D90, func_802E3BA4, 0x00E43B20, 0x00E44800, 0x211E1919, 0x00000000, 0x00000000, 0x00000000
|
||||
.word 0x40000020, D_802EA028, 0x00000000, entity_init_Hammer23Block_normal, D_802E9DCC, func_802E3BA4, 0x00E3DA60, 0x00E3DDB0, 0x0C191919, 0x40000020, D_802EA060, 0x00000000, entity_init_Hammer23Block_normal, D_802E9D90, func_802E3BA4, 0x00E43B20, 0x00E44800, 0x211E1919, 0x00000000, 0x00000000, 0x00000000
|
||||
|
||||
glabel D_802EA310
|
||||
.word 0x00000003, 0x00000002, 0x00000000, 0x00000007, 0x20000000, 0x00000000, 0x00000002, func_802E4154, 0x00000003, 0x00000000, 0x00000000, 0x00000003, 0x00000000, func_802E3E80, 0x00000009, 0x0000014E, 0x00000002, func_802E3F0C, 0x00000002, func_802E421C, 0x00000003, 0x00000001, 0x00000000, 0x00000007, 0x00000001, 0x00000003, 0x00000002, 0x00000000, 0x00000007, 0x20000000, 0x00000000, 0x00000002, func_802E4154, 0x00000003, 0x00000000, 0x00000000, 0x00000003, 0x00000000, func_802E3E9C, 0x00000009, 0x0000014E, 0x00000002, func_802E3F0C, 0x00000002, func_802E421C, 0x00000003, 0x00000001, 0x00000000, 0x00000007, 0x00000001, 0x00000003, 0x00000002, 0x00000000, 0x00000007, 0x20000000, 0x00000000, 0x00000003, 0x00000001, 0x00000000, 0x00000002, func_802E40A0, 0x00000003, 0x0000000A, func_802E3EE0, 0x00000002, func_802E4484, 0x00000002, func_802E4108, 0x00000003, 0x00000001, 0x00000000, 0x00000007, 0x00000001, 0x00000007, 0x04000000, 0x00000000, 0x00000003, 0x00000000, func_802E3E80, 0x00000002, func_802E44F8, 0x00000009, 0x0000014E, 0x00000002, func_802E405C, 0x00000002, func_802E3714, 0x00000003, 0x00000000, func_802E3728, 0x00000003, 0x00000000, func_802E37E4, 0x00000002, func_802E44CC, 0x00000002, func_802E4540, 0x00000007, 0x00000001, 0x00000007, 0x00000020, 0x00000002, func_802E4040, 0x00000003, 0x00000002, 0x00000000, 0x00000007, 0x04000000, 0x00000000, 0x00E459F0, 0x00E46E10, 0x00E46E10, 0x00E470B0, 0x00E470B0, 0x00E484F0, 0x00E484F0, 0x00E48780, 0x00E48780, 0x00E49BE0, 0x00E49BE0, 0x00E49E40, 0x00000004, 0x00000001, 0x00000001, 0x0000003C, 0x0A000A90, 0x00000002, 0x00000000, 0x00000004, 0x00000016, 0x00000001, 0x0000003C, 0x0A000A90, 0x00000002, 0x00000000, 0x00000004, 0x00000001, 0x00000001, 0x0000003C, 0x0A000A90, 0x00000002, 0x00000000, 0x00000004, 0x00000016, 0x00000001, 0x0000003C, 0x0A000A90, 0x00000002, 0x00000000, 0x42000020, 0x802EA4F4, 0x00000000, func_802E464C, 0x802EA328, func_802E3BA4, 0x00E3B870, 0x00E3C320, 0x0F191919, 0x42000020, 0x802EA510, 0x00000000, func_802E4694, 0x802EA38C, func_802E3BA4, 0x00E3B870, 0x00E3C320, 0x11191919, 0x42000020, 0x802EA52C, 0x00000000, func_802E464C, 0x802EA328, func_802E3BA4, 0x00E3C320, 0x00E3CDD0, 0x14191919, 0x42000020, 0x802EA548, 0x00000000, func_802E4694, 0x802EA38C, func_802E3BA4, 0x00E3C320, 0x00E3CDD0, 0x12191919, 0xC2080020, 0x0000023C, 0x00000084, func_802E46BC, 0x802EA440, func_802E3BA4, 0x802EA4C4, 0x00000000, 0x10191919
|
||||
.word 0x00000003, 0x00000002, 0x00000000, 0x00000007, 0x20000000, 0x00000000
|
||||
|
||||
glabel D_802EA328
|
||||
.word 0x00000002, func_802E4154, 0x00000003, 0x00000000, 0x00000000, 0x00000003, 0x00000000, func_802E3E80, 0x00000009, 0x0000014E, 0x00000002, func_802E3F0C, 0x00000002, func_802E421C, 0x00000003, 0x00000001, 0x00000000, 0x00000007, 0x00000001, 0x00000003, 0x00000002, 0x00000000, 0x00000007, 0x20000000, 0x00000000
|
||||
|
||||
glabel D_802EA38C
|
||||
.word 0x00000002, func_802E4154, 0x00000003, 0x00000000, 0x00000000, 0x00000003, 0x00000000, func_802E3E9C, 0x00000009, 0x0000014E, 0x00000002, func_802E3F0C, 0x00000002, func_802E421C, 0x00000003, 0x00000001, 0x00000000, 0x00000007, 0x00000001, 0x00000003, 0x00000002, 0x00000000, 0x00000007, 0x20000000, 0x00000000
|
||||
|
||||
glabel D_802EA3F0
|
||||
.word 0x00000003, 0x00000001, 0x00000000, 0x00000002, func_802E40A0, 0x00000003, 0x0000000A, func_802E3EE0, 0x00000002, func_802E4484, 0x00000002, func_802E4108, 0x00000003, 0x00000001, 0x00000000, 0x00000007, 0x00000001, 0x00000007, 0x04000000, 0x00000000
|
||||
|
||||
glabel D_802EA440
|
||||
.word 0x00000003, 0x00000000, func_802E3E80, 0x00000002, func_802E44F8, 0x00000009, 0x0000014E, 0x00000002, func_802E405C, 0x00000002, func_802E3714, 0x00000003, 0x00000000, func_802E3728, 0x00000003, 0x00000000, func_802E37E4, 0x00000002, func_802E44CC, 0x00000002, func_802E4540, 0x00000007, 0x00000001, 0x00000007, 0x00000020, 0x00000002, func_802E4040, 0x00000003, 0x00000002, 0x00000000, 0x00000007, 0x04000000, 0x00000000
|
||||
|
||||
glabel D_802EA4C4
|
||||
.word 0x00E459F0, 0x00E46E10, 0x00E46E10, 0x00E470B0
|
||||
|
||||
glabel D_802EA4D4
|
||||
.word 0x00E470B0, 0x00E484F0, 0x00E484F0, 0x00E48780
|
||||
|
||||
glabel D_802EA4E4
|
||||
.word 0x00E48780, 0x00E49BE0, 0x00E49BE0, 0x00E49E40
|
||||
|
||||
glabel D_802EA4F4
|
||||
.word 0x00000004, 0x00000001, 0x00000001, 0x0000003C, 0x0A000A90, 0x00000002, 0x00000000
|
||||
|
||||
glabel D_802EA510
|
||||
.word 0x00000004, 0x00000016, 0x00000001, 0x0000003C, 0x0A000A90, 0x00000002, 0x00000000
|
||||
|
||||
glabel D_802EA52C
|
||||
.word 0x00000004, 0x00000001, 0x00000001, 0x0000003C, 0x0A000A90, 0x00000002, 0x00000000
|
||||
|
||||
glabel D_802EA548
|
||||
.word 0x00000004, 0x00000016, 0x00000001, 0x0000003C, 0x0A000A90, 0x00000002, 0x00000000, 0x42000020, D_802EA4F4, 0x00000000, func_802E464C, D_802EA328, func_802E3BA4, 0x00E3B870, 0x00E3C320, 0x0F191919, 0x42000020, D_802EA510, 0x00000000, func_802E4694, D_802EA38C, func_802E3BA4, 0x00E3B870, 0x00E3C320, 0x11191919, 0x42000020, D_802EA52C, 0x00000000, func_802E464C, D_802EA328, func_802E3BA4, 0x00E3C320, 0x00E3CDD0, 0x14191919, 0x42000020, D_802EA548, 0x00000000, func_802E4694, D_802EA38C, func_802E3BA4, 0x00E3C320, 0x00E3CDD0, 0x12191919, 0xC2080020, 0x0000023C, 0x00000084, func_802E46BC, D_802EA440, func_802E3BA4, D_802EA4C4, 0x00000000, 0x10191919
|
||||
|
||||
glabel D_802EA618
|
||||
.word 0x42080020, 0x0000023C, 0x00000084, func_802E46BC, 0x802EA3F0, 0x00000000, 0x802EA4C4, 0x00000000, 0x0F191919
|
||||
.word 0x42080020, 0x0000023C, 0x00000084, func_802E46BC, D_802EA3F0, 0x00000000, D_802EA4C4, 0x00000000, 0x0F191919
|
||||
|
||||
glabel D_802EA63C
|
||||
.word 0x42080020, 0x0000022C, 0x00000084, func_802E46BC, 0x802EA3F0, 0x00000000, 0x802EA4D4, 0x00000000, 0x0F191919
|
||||
.word 0x42080020, 0x0000022C, 0x00000084, func_802E46BC, D_802EA3F0, 0x00000000, D_802EA4D4, 0x00000000, 0x0F191919
|
||||
|
||||
glabel D_802EA660
|
||||
.word 0x42080020, 0x00000094, 0x00000084, func_802E46BC, 0x802EA3F0, 0x00000000, 0x802EA4E4, 0x00000000, 0x14191919, 0x00000000, 0x00000000, 0x00000000, 0x00000002, func_802E5428, 0x00000003, 0x00000000, func_802E545C, 0x00000002, func_802E4DE0, 0x00000002, func_802E54A8, 0x00000003, 0x00000000, func_802E548C, 0x00000002, func_802E54CC, 0x00000003, 0x00000000, func_802E555C, 0x00000003, 0x0000003C, 0x00000000, 0x00000004, 0x00000000, 0x00000000, 0x00000003, 0x00000000, func_802E5308, 0x00000009, 0x0000014E, 0x00000002, func_80110678, 0x00000002, func_802E31EC, 0x00000003, 0x00000006, func_802E328C, 0x00000004, 0x00000000, 0x00000000
|
||||
.word 0x42080020, 0x00000094, 0x00000084, func_802E46BC, D_802EA3F0, 0x00000000, D_802EA4E4, 0x00000000, 0x14191919, 0x00000000, 0x00000000, 0x00000000
|
||||
|
||||
glabel D_802EA690
|
||||
.word 0x00000002, func_802E5428, 0x00000003, 0x00000000, func_802E545C, 0x00000002, func_802E4DE0, 0x00000002, func_802E54A8, 0x00000003, 0x00000000, func_802E548C, 0x00000002, func_802E54CC, 0x00000003, 0x00000000, func_802E555C, 0x00000003, 0x0000003C, 0x00000000, 0x00000004, 0x00000000, 0x00000000
|
||||
|
||||
glabel D_802EA6EC
|
||||
.word 0x00000003, 0x00000000, func_802E5308, 0x00000009, 0x0000014E, 0x00000002, func_80110678, 0x00000002, func_802E31EC, 0x00000003, 0x00000006, func_802E328C, 0x00000004, 0x00000000, 0x00000000
|
||||
|
||||
glabel D_802EA728
|
||||
.word 0x00000004, 0x0000000D, 0x00000001, 0x0000003C, 0x0A000700, 0x00000002, 0x00000000
|
||||
@ -42,10 +123,16 @@ glabel D_802EA744
|
||||
.word 0x00000004, 0x00000016, 0x00000001, 0x0000003C, 0x0A0007B0, 0x00000002, 0x00000000
|
||||
|
||||
glabel D_802EA760
|
||||
.word 0x00000004, 0x00000016, 0x00000001, 0x0000003C, 0x0A000808, 0x00000002, 0x00000000, 0x00000004, 0x00000022, 0x00000001, 0x0000003C, 0x0A000918, 0x00000002, 0x00000000, 0x42000020, 0x802EA77C, 0x00000000, entity_init_Hammer23Block_normal, 0x802E9E0C, func_802E3BA4, 0x00E431F0, 0x00E43B20, 0x1F191919
|
||||
.word 0x00000004, 0x00000016, 0x00000001, 0x0000003C, 0x0A000808, 0x00000002, 0x00000000
|
||||
|
||||
glabel D_802EA77C
|
||||
.word 0x00000004, 0x00000022, 0x00000001, 0x0000003C, 0x0A000918, 0x00000002, 0x00000000, 0x42000020, D_802EA77C, 0x00000000, entity_init_Hammer23Block_normal, D_802E9E0C, func_802E3BA4, 0x00E431F0, 0x00E43B20, 0x1F191919
|
||||
|
||||
glabel D_802EA7BC
|
||||
.short 0x0020, 0x00D8, 0x802E, 0xA728, 0x0000, 0x0000, 0x802E, 0x540C, 0x802E, 0xA690, 0x0000, 0x0000, 0x00E4, 0x9E40, 0x00E4, 0xA6A0, 0x3F12, 0x0612, 0x4200, 0x0020, 0x802E, 0xA77C, 0x0000, 0x0000, 0x802E, 0x5648, 0x802E, 0xA6EC, 0x802E, 0x3BA4, 0x00E4, 0x31F0, 0x00E4, 0x3B20, 0x1B19, 0x1919, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0002, 0x802E, 0x56EC, 0x0000, 0x0005, 0x0000, 0x0001, 0x0000, 0x0003, 0x0000, 0x0000, 0x802E, 0x56D0, 0x0000, 0x0009, 0x0000, 0x014E, 0x0000, 0x0002, 0x802E, 0x31EC, 0x0000, 0x0003, 0x0000, 0x0006, 0x802E, 0x328C, 0x0000, 0x0002, 0x8011, 0x0678, 0x0000, 0x0004, 0x0000, 0x0001, 0x0000, 0x0000, 0x0000, 0x0000, 0x0A00
|
||||
.word 0x002000D8, D_802EA728, 0x00000000, func_802E540C, D_802EA690, 0x00000000, 0x00E49E40, 0x00E4A6A0, 0x3F120612, 0x42000020, D_802EA77C, 0x00000000, func_802E5648, D_802EA6EC, func_802E3BA4, 0x00E431F0, 0x00E43B20, 0x1B191919, 0x00000000, 0x00000000, 0x00000000
|
||||
|
||||
glabel D_802EA810
|
||||
.short 0x0000, 0x0002, 0x802E, 0x56EC, 0x0000, 0x0005, 0x0000, 0x0001, 0x0000, 0x0003, 0x0000, 0x0000, 0x802E, 0x56D0, 0x0000, 0x0009, 0x0000, 0x014E, 0x0000, 0x0002, 0x802E, 0x31EC, 0x0000, 0x0003, 0x0000, 0x0006, 0x802E, 0x328C, 0x0000, 0x0002, 0x8011, 0x0678, 0x0000, 0x0004, 0x0000, 0x0001, 0x0000, 0x0000, 0x0000, 0x0000, 0x0A00
|
||||
|
||||
glabel D_802EA862
|
||||
.short 0x0200, 0x0A00, 0x0220, 0x0A00, 0x0240, 0x0A00, 0x0260
|
||||
@ -54,13 +141,49 @@ glabel D_802EA870
|
||||
.byte 0x14
|
||||
|
||||
glabel D_802EA871
|
||||
.byte 0x00, 0x02, 0x01, 0x02, 0x02, 0x14, 0x03, 0x02, 0x02, 0x01, 0x02, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x80, 0x2E, 0x5E, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x80, 0x2E, 0x5E, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x3C, 0x0A, 0x00, 0x08, 0xF8, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x3C, 0x80, 0x2E, 0x98, 0x28, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x3C, 0x0A, 0x00, 0x08, 0xC8, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x3C, 0x80, 0x2E, 0x98, 0x28, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x20, 0x80, 0x2E, 0xA8, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x80, 0x2E, 0x57, 0xE4, 0x80, 0x2E, 0xA8, 0x10, 0x80, 0x2E, 0x3B, 0xA4, 0x00, 0xE4, 0x48, 0x00, 0x00, 0xE4, 0x51, 0x10, 0x22, 0x19, 0x19, 0x19
|
||||
.byte 0x00, 0x02, 0x01, 0x02, 0x02, 0x14, 0x03, 0x02, 0x02, 0x01, 0x02, 0xFF, 0xFF, 0x00, 0x00
|
||||
|
||||
glabel D_802EA880
|
||||
.word 0x00000003, 0x00000000, func_802E5E50, 0x00000000
|
||||
|
||||
glabel D_802EA890
|
||||
.word 0x00000003, 0x00000000, func_802E5E50, 0x00000000
|
||||
|
||||
glabel D_802EA8A0
|
||||
.word 0x00000004, 0x0000000D, 0x00000001, 0x0000003C, 0x0A0008F8, 0x00000002, 0x00000000
|
||||
|
||||
glabel D_802EA8BC
|
||||
.word 0x00000004, 0x00000016, 0x00000001, 0x0000003C, D_802E9828, 0x00000002, 0x00000000
|
||||
|
||||
glabel D_802EA8D8
|
||||
.word 0x00000004, 0x0000000D, 0x00000001, 0x0000003C, 0x0A0008C8, 0x00000002, 0x00000000
|
||||
|
||||
glabel D_802EA8F4
|
||||
.word 0x00000004, 0x00000016, 0x00000001, 0x0000003C, D_802E9828, 0x00000002, 0x00000000, 0x42000020, D_802EA8A0, 0x00000000, func_802E57E4, D_802EA810, func_802E3BA4, 0x00E44800, 0x00E45110, 0x22191919
|
||||
|
||||
glabel D_802EA934
|
||||
.word 0x00200130, 0x802EA8BC, 0x00000000, func_802E5F50, 0x802EA880, 0x00000000, 0x00E4A6A0, 0x00E4AA80, 0x41120612, 0x42000020, 0x802EA8D8, 0x00000000, func_802E5800, 0x802EA810, func_802E3BA4, 0x00E45110, 0x00E459F0, 0x23191919, 0x00200130, 0x802EA8F4, 0x00000000, func_802E5F7C, 0x802EA890, 0x00000000, 0x00E4AA80, 0x00E4B2E0, 0x42120612, 0x00000003, 0x00000000, func_802E5FB0, 0x00000003, 0x0000000A, 0x00000000, 0x00000004, 0x00000000, 0x00000000, 0x00000003, 0x00000000, func_802E6064, 0x00000003, 0x00000002, 0x00000000, 0x00000002, func_802E6118, 0x00000003, 0x00000003, 0x00000000, 0x00000002, func_802E6178, 0x00000003, 0x0000000A, 0x00000000, 0x00000004, 0x00000000, 0x00000000, 0x00E657A0, 0x00E67120, 0x00E67120, 0x00E68580, 0x00E68580, 0x00E69D50, 0x00E69D50, 0x00E6B1B0, 0x20080000, 0x0000131C, 0x000001B8, func_802E6194, 0x802EA9A0, 0x00000000, 0x802EAA10, 0x00000000, 0x2F281928, 0x20080004, 0x0000131C, 0x000001B8, func_802E619C, 0x802EA9C4, 0x00000000, 0x802EAA20, 0x00000000, 0x2E281928, 0x00000000, 0x00000000, 0x00000002, func_802E6338, 0x00000005, 0x00000001, 0x00000002, func_802E6390, 0x00000003, 0x00000000, func_802E63A8, 0x00000003, 0x00000000, func_802E6574, 0x00000004, 0x00000001, 0x00000000, 0x00000004, 0x00000001, 0x00000005, 0x00010000, 0x00000001, 0x0000003C, 0x0A000280, 0x00000002, 0x00000000
|
||||
.word 0x00200130, D_802EA8BC, 0x00000000, func_802E5F50, D_802EA880, 0x00000000, 0x00E4A6A0, 0x00E4AA80, 0x41120612, 0x42000020, D_802EA8D8, 0x00000000, func_802E5800, D_802EA810, func_802E3BA4, 0x00E45110, 0x00E459F0, 0x23191919, 0x00200130, D_802EA8F4, 0x00000000, func_802E5F7C, D_802EA890, 0x00000000, 0x00E4AA80, 0x00E4B2E0, 0x42120612
|
||||
|
||||
glabel D_802EA9A0
|
||||
.word 0x00000003, 0x00000000, func_802E5FB0, 0x00000003, 0x0000000A, 0x00000000, 0x00000004, 0x00000000, 0x00000000
|
||||
|
||||
glabel D_802EA9C4
|
||||
.word 0x00000003, 0x00000000, func_802E6064, 0x00000003, 0x00000002, 0x00000000, 0x00000002, func_802E6118, 0x00000003, 0x00000003, 0x00000000, 0x00000002, func_802E6178, 0x00000003, 0x0000000A, 0x00000000, 0x00000004, 0x00000000, 0x00000000
|
||||
|
||||
glabel D_802EAA10
|
||||
.word 0x00E657A0, 0x00E67120, 0x00E67120, 0x00E68580
|
||||
|
||||
glabel D_802EAA20
|
||||
.word 0x00E68580, 0x00E69D50, 0x00E69D50, 0x00E6B1B0, 0x20080000, 0x0000131C, 0x000001B8, func_802E6194, D_802EA9A0, 0x00000000, D_802EAA10, 0x00000000, 0x2F281928, 0x20080004, 0x0000131C, 0x000001B8, func_802E619C, D_802EA9C4, 0x00000000, D_802EAA20, 0x00000000, 0x2E281928, 0x00000000, 0x00000000
|
||||
|
||||
glabel D_802EAA80
|
||||
.word 0x00000002, func_802E6338, 0x00000005, 0x00000001, 0x00000002, func_802E6390, 0x00000003, 0x00000000, func_802E63A8, 0x00000003, 0x00000000, func_802E6574, 0x00000004, 0x00000001, 0x00000000
|
||||
|
||||
glabel D_802EAABC
|
||||
.word 0x00000004, 0x00000001, 0x00000005, 0x00010000, 0x00000001, 0x0000003C, 0x0A000280, 0x00000002, 0x00000000
|
||||
|
||||
glabel D_802EAAE0
|
||||
.word 0x00000004, 0x00000001, 0x00000005, 0x00010000, 0x00000001, 0x0000003C, 0x0A0002A0, 0x00000002, 0x00000000, 0x0001007C, 0x802EAABC, 0x00000000, func_802E6C24, 0x802EAA80, 0x00000000, 0x00E56BA0, 0x00E56E60, 0x303C003C, 0x00000000, 0x00000000
|
||||
.word 0x00000004, 0x00000001, 0x00000005, 0x00010000, 0x00000001, 0x0000003C, 0x0A0002A0, 0x00000002, 0x00000000, 0x0001007C, D_802EAABC, 0x00000000, func_802E6C24, D_802EAA80, 0x00000000, 0x00E56BA0, 0x00E56E60, 0x303C003C, 0x00000000, 0x00000000
|
||||
|
||||
glabel D_802EAB30
|
||||
.word 0x00000056, 0x00000000, 0x00000043, 0x00000004, GetPlayerPos, 0xFE363C80, 0xFE363C81, 0xFE363C82, 0x00000043, 0x00000005, UseSettingsFrom, 0x00000000, 0xFFFFFF3D, 0xFFFFFE9A, 0xFFFFFDD5, 0x00000043, 0x00000005, SetPanTarget, 0x00000000, 0xFE363C80, 0xFE363C81, 0xFE363C82, 0x00000043, 0x00000003, SetCamDistance, 0x00000000, 0xF24F0280, 0x00000043, 0x00000004, SetCamPitch, 0x00000000, 0xF24ACA80, 0xF24A5280, 0x00000043, 0x00000003, SetCamSpeed, 0x00000000, 0xF24A9A80, 0x00000043, 0x00000004, PanToTarget, 0x00000000, 0x00000000, 0x00000001, 0x00000043, 0x00000003, WaitForCam, 0x00000000, 0xF24A7E80, 0x00000057, 0x00000000, 0x00000002, 0x00000000, 0x00000001, 0x00000000
|
||||
@ -75,13 +198,40 @@ glabel D_802EAC84
|
||||
.word 0x00000056, 0x00000000, 0x00000043, 0x00000007, AdjustCam, 0x00000000, 0xF24A9A80, 0x00000000, 0xF24DC280, 0xF24ACE80, 0xF24A3A80, 0x00000057, 0x00000000, 0x00000002, 0x00000000, 0x00000001, 0x00000000
|
||||
|
||||
glabel D_802EACC8
|
||||
.word 0x00000056, 0x00000000, 0x00000043, 0x00000003, ResetCam, 0x00000000, 0x00000003, 0x00000057, 0x00000000, 0x00000002, 0x00000000, 0x00000001, 0x00000000, 0x00000002, func_802E7034, 0x00000003, 0x00000000, func_802E70B0, 0x00000002, func_802E6E20, 0x00000002, func_802E7AE4, 0x00000002, func_802E71F8, 0x00000003, 0x00000000, func_802E75E4, 0x00000002, func_802E7C70, 0x00000003, 0x00000000, func_802E7CB8, 0x00000002, func_802E75C0, 0x00000002, func_802E6E90, 0x00000003, 0x00000000, func_802E742C, 0x00000003, 0x00000000, 0x00000000, 0x00000004, 0x00000000, 0x00000000
|
||||
.word 0x00000056, 0x00000000, 0x00000043, 0x00000003, ResetCam, 0x00000000, 0x00000003, 0x00000057, 0x00000000, 0x00000002, 0x00000000, 0x00000001, 0x00000000
|
||||
|
||||
glabel D_802EACFC
|
||||
.word 0x00000002, func_802E7034, 0x00000003, 0x00000000, func_802E70B0, 0x00000002, func_802E6E20, 0x00000002, func_802E7AE4, 0x00000002, func_802E71F8, 0x00000003, 0x00000000, func_802E75E4, 0x00000002, func_802E7C70, 0x00000003, 0x00000000, func_802E7CB8, 0x00000002, func_802E75C0, 0x00000002, func_802E6E90, 0x00000003, 0x00000000, func_802E742C, 0x00000003, 0x00000000, 0x00000000, 0x00000004, 0x00000000, 0x00000000
|
||||
|
||||
glabel D_802EAD7C
|
||||
.word 0x00000003, 0x00000000, 0x00000000, 0x00000000, 0x00000002, func_802E7034, 0x00000003, 0x00000000, func_802E70B0, 0x00000002, func_802E71F8, 0x00000002, func_802E7C70, 0x00000002, func_802E7D28, 0x00000003, 0x00000000, func_802E7230, 0x00000002, func_802E7C8C, 0x00000003, 0x00000000, func_802E742C, 0x00000003, 0x00000000, 0x00000000, 0x00000004, 0x00000000, 0x00000000, 0x00000004, 0x00000001, 0x00000001, 0x0000003C, 0x0A000EB8, 0x00000002, 0x00000000, 0x40000038, 0x802EADF0, 0x00000000, func_802E7D54, 0x802EACFC, 0x00000000, 0x00E648D0, 0x00E657A0, 0x32322D2E, 0xC0000038, 0x802EADF0, 0x00000000, entity_init_Chest, 0x802EAD8C, 0x00000000, 0x00E648D0, 0x00E657A0, 0x321C1A17, 0x00000000, 0x00000000, 0x00000000, 0x00000004, 0x00000001, 0x00000001, 0x0000003C, 0x0A004338, 0x00000002, 0x00000000
|
||||
.word 0x00000003, 0x00000000, 0x00000000, 0x00000000
|
||||
|
||||
glabel D_802EAD8C
|
||||
.word 0x00000002, func_802E7034, 0x00000003, 0x00000000, func_802E70B0, 0x00000002, func_802E71F8, 0x00000002, func_802E7C70, 0x00000002, func_802E7D28, 0x00000003, 0x00000000, func_802E7230, 0x00000002, func_802E7C8C, 0x00000003, 0x00000000, func_802E742C, 0x00000003, 0x00000000, 0x00000000, 0x00000004, 0x00000000, 0x00000000
|
||||
|
||||
glabel D_802EADF0
|
||||
.word 0x00000004, 0x00000001, 0x00000001, 0x0000003C, 0x0A000EB8, 0x00000002, 0x00000000, 0x40000038, D_802EADF0, 0x00000000, func_802E7D54, D_802EACFC, 0x00000000, 0x00E648D0, 0x00E657A0, 0x32322D2E, 0xC0000038, D_802EADF0, 0x00000000, entity_init_Chest, D_802EAD8C, 0x00000000, 0x00E648D0, 0x00E657A0, 0x321C1A17, 0x00000000, 0x00000000, 0x00000000
|
||||
|
||||
glabel D_802EAE60
|
||||
.word 0x00000004, 0x00000001, 0x00000001, 0x0000003C, 0x0A004338, 0x00000002, 0x00000000
|
||||
|
||||
glabel D_802EAE7C
|
||||
.word 0x00000004, 0x00000011, 0x00000001, 0x0000003C, D_802E9828, 0x00000002, 0x00000000, 0x00000003, 0x00000000, func_802E8858, 0x00000007, 0x00000020, 0x00000002, func_802E88EC, 0x00000003, 0x00000000, func_802E7FA0, 0x00000007, 0x00000001, 0x00000007, 0x20000000, 0x00000000, 0x42000394, 0x802EAE60, 0x00000000, func_802E7F40, 0x802EAE98, 0x00000000, 0x00E51640, 0x00E55A40, 0x24231E23, 0x00000000, 0x00000000, 0x00000003, 0x00000000, func_802E89B0, 0x00000003, 0x00000000, func_802E89F8, 0x00000003, 0x00000000, func_802E8A58, 0x00000003, 0x00000000, func_802E8ADC, 0x00000002, func_802E8BC0, 0x00000003, 0x00000000, func_802E8C94, 0x00000002, player_enter_blue_pipe, 0x00000003, 0x00000000, func_802E8D74, 0x00000002, func_802E8E10, 0x00000000, 0x00000004, 0x00000001, 0x00000001, 0x0000003C, 0x0A0006B8, 0x00000002, 0x00000000, 0x0000001C, 0x802EAF64, 0x00000000, func_802E8F94, 0x802EAF00, 0x00000000, 0x00E58CD0, 0x00E59480, 0x2B283228, 0x00000000, 0x00000000, 0x00000000, 0x00000003, 0x00000000, func_802E9050, 0x00000000, 0x00000004, 0x00000001, 0x00000001, 0x0000003C, 0x0A000A68, 0x00000002, 0x00000000
|
||||
.word 0x00000004, 0x00000011, 0x00000001, 0x0000003C, D_802E9828, 0x00000002, 0x00000000
|
||||
|
||||
glabel D_802EAE98
|
||||
.word 0x00000003, 0x00000000, func_802E8858, 0x00000007, 0x00000020, 0x00000002, func_802E88EC, 0x00000003, 0x00000000, func_802E7FA0, 0x00000007, 0x00000001, 0x00000007, 0x20000000, 0x00000000, 0x42000394, D_802EAE60, 0x00000000, func_802E7F40, D_802EAE98, 0x00000000, 0x00E51640, 0x00E55A40, 0x24231E23, 0x00000000, 0x00000000
|
||||
|
||||
glabel D_802EAF00
|
||||
.word 0x00000003, 0x00000000, func_802E89B0, 0x00000003, 0x00000000, func_802E89F8, 0x00000003, 0x00000000, func_802E8A58, 0x00000003, 0x00000000, func_802E8ADC, 0x00000002, func_802E8BC0, 0x00000003, 0x00000000, func_802E8C94, 0x00000002, player_enter_blue_pipe, 0x00000003, 0x00000000, func_802E8D74, 0x00000002, func_802E8E10, 0x00000000
|
||||
|
||||
glabel D_802EAF64
|
||||
.word 0x00000004, 0x00000001, 0x00000001, 0x0000003C, 0x0A0006B8, 0x00000002, 0x00000000, 0x0000001C, D_802EAF64, 0x00000000, func_802E8F94, D_802EAF00, 0x00000000, 0x00E58CD0, 0x00E59480, 0x2B283228, 0x00000000, 0x00000000, 0x00000000
|
||||
|
||||
glabel D_802EAFB0
|
||||
.word 0x00000003, 0x00000000, func_802E9050, 0x00000000
|
||||
|
||||
glabel D_802EAFC0
|
||||
.word 0x00000004, 0x00000001, 0x00000001, 0x0000003C, 0x0A000A68, 0x00000002, 0x00000000
|
||||
|
||||
glabel D_802EAFDC
|
||||
.word 0x0E000008, 0x802EAFC0, 0x00000000, 0x00000000, 0x802EAFB0, 0x00000000, 0x00E59480, 0x00E59F00, 0x33283214
|
||||
.word 0x0E000008, D_802EAFC0, 0x00000000, 0x00000000, D_802EAFB0, 0x00000000, 0x00E59480, 0x00E59F00, 0x33283214
|
||||
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -21,10 +21,16 @@ glabel D_80078348
|
||||
.short 0x0000, 0x0001, 0x0000, 0x000E, 0x0000, 0x0000, 0x0000, 0x000D, 0x0000, 0x4E20, 0x0000, 0x0000, 0x0000, 0x7FFF, 0x0000, 0x0000, 0x0000
|
||||
|
||||
glabel D_8007836A
|
||||
.short 0x0000, 0x0000, 0x7FFF, 0x034A, 0x0349, 0x0100, 0x0000, 0x0100, 0x0000, 0x0008, 0x0012, 0x3C7F, 0x2D7F, 0x2B5F, 0x1D00, 0xFF00, 0x2700, 0xFF00, 0x0000, 0x0100, 0x0000, 0x0008, 0x001A, 0x3C7F, 0x237F, 0x3C3F, 0x2A1F, 0x2A0F, 0x2A07, 0x2A03, 0x3600, 0xFF00, 0x3600, 0xFF00, 0x0000, 0x3433, 0x7F26, 0x3F16, 0x00FF, 0x343B, 0x7F3B, 0x3FFF, 0x0000
|
||||
.short 0x0000, 0x0000, 0x7FFF, 0x034A, 0x0349, 0x0100, 0x0000
|
||||
|
||||
glabel D_80078378
|
||||
.word 0x01000000, 0x00080012, 0x3C7F2D7F, 0x2B5F1D00, 0xFF002700, 0xFF000000
|
||||
|
||||
glabel D_80078390
|
||||
.word 0x01000000, 0x0008001A, 0x3C7F237F, 0x3C3F2A1F, 0x2A0F2A07, 0x2A033600, 0xFF003600, 0xFF000000, 0x34337F26, 0x3F1600FF, 0x343B7F3B, 0x3FFF0000
|
||||
|
||||
glabel D_800783C0
|
||||
.word 0x80078378, 0x80078390, 0x80078390, 0x80078390, 0x80078390, 0x80078390, 0x80078390, 0x80078390, 0x80078390, 0x80078390, 0x80078390, 0x80078390, 0x80078390, 0x80078390, 0x80078390, 0x80078390
|
||||
.word D_80078378, D_80078390, D_80078390, D_80078390, D_80078390, D_80078390, D_80078390, D_80078390, D_80078390, D_80078390, D_80078390, D_80078390, D_80078390, D_80078390, D_80078390, D_80078390
|
||||
|
||||
glabel D_80078400
|
||||
.word func_8004CE70, func_8004CEA4, func_8004CEC4, func_8004CF0C
|
||||
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -3,13 +3,19 @@
|
||||
.section .data
|
||||
|
||||
glabel D_800936C0
|
||||
.word 0x00000043, 0x00000001, func_8005DB00, 0x00000002, 0x00000000, 0x00000001, 0x00000000, 0x00000043, 0x00000003, SetNpcAnimation, 0xFFFFFFFF, 0xFE363C80, 0x00000043, 0x00000005, GetNpcPos, 0xFFFFFFFF, 0xFE363C80, 0xFE363C83, 0xFE363C82, 0x00000024, 0x00000002, 0xFE363C81, 0xFE363C83, 0x00000027, 0x00000002, 0xFE363C81, 0x00000001, 0x00000043, 0x00000005, SetNpcPos, 0xFFFFFFFF, 0xFE363C80, 0xFE363C81, 0xFE363C82, 0x00000008, 0x00000001, 0x00000001, 0x00000024, 0x00000002, 0xFE363C81, 0xFE363C83, 0x00000027, 0x00000002, 0xFE363C81, 0x00000004, 0x00000043, 0x00000005, SetNpcPos, 0xFFFFFFFF, 0xFE363C80, 0xFE363C81, 0xFE363C82, 0x00000008, 0x00000001, 0x00000001, 0x00000024, 0x00000002, 0xFE363C81, 0xFE363C83, 0x00000027, 0x00000002, 0xFE363C81, 0x00000010, 0x00000043, 0x00000005, SetNpcPos, 0xFFFFFFFF, 0xFE363C80, 0xFE363C81, 0xFE363C82, 0x00000008, 0x00000001, 0x00000001, 0x00000024, 0x00000002, 0xFE363C81, 0xFE363C83, 0x00000027, 0x00000002, 0xFE363C81, 0x00000008, 0x00000043, 0x00000005, SetNpcPos, 0xFFFFFFFF, 0xFE363C80, 0xFE363C81, 0xFE363C82, 0x00000008, 0x00000001, 0x00000001, 0x00000024, 0x00000002, 0xFE363C81, 0xFE363C83, 0x00000027, 0x00000002, 0xFE363C81, 0x00000014, 0x00000043, 0x00000005, SetNpcPos, 0xFFFFFFFF, 0xFE363C80, 0xFE363C81, 0xFE363C82, 0x00000008, 0x00000001, 0x00000001, 0x00000024, 0x00000002, 0xFE363C81, 0xFE363C83, 0x00000027, 0x00000002, 0xFE363C81, 0x00000008, 0x00000043, 0x00000005, SetNpcPos, 0xFFFFFFFF, 0xFE363C80, 0xFE363C81, 0xFE363C82, 0x00000008, 0x00000001, 0x00000001, 0x00000024, 0x00000002, 0xFE363C81, 0xFE363C83, 0x00000027, 0x00000002, 0xFE363C81, 0x0000000C, 0x00000043, 0x00000005, SetNpcPos, 0xFFFFFFFF, 0xFE363C80, 0xFE363C81, 0xFE363C82, 0x00000008, 0x00000001, 0x00000001, 0x00000024, 0x00000002, 0xFE363C81, 0xFE363C83, 0x00000027, 0x00000002, 0xFE363C81, 0x00000006, 0x00000043, 0x00000005, SetNpcPos, 0xFFFFFFFF, 0xFE363C80, 0xFE363C81, 0xFE363C82, 0x00000008, 0x00000001, 0x00000001, 0x00000024, 0x00000002, 0xFE363C81, 0xFE363C83, 0x00000027, 0x00000002, 0xFE363C81, 0x00000000, 0x00000043, 0x00000005, SetNpcPos, 0xFFFFFFFF, 0xFE363C80, 0xFE363C81, 0xFE363C82, 0x00000008, 0x00000001, 0x00000001, 0x00000002, 0x00000000, 0x00000001, 0x00000000, 0x00000002, 0x00000000, 0x00000001, 0x00000000, 0x00000043, 0x00000003, GetSelfVar, 0x00000000, 0xFE363C80, 0x0000000A, 0x00000002, 0xFE363C80, 0x00000000, 0x00000043, 0x00000003, SetSelfVar, 0x00000000, 0x00000001, 0x00000043, 0x00000003, BindNpcAI, 0xFFFFFFFF, 0x800939A4, 0x00000043, 0x00000004, SetNpcFlagBits, 0xFFFFFFFF, 0x00040200, 0x00000001, 0x00000043, 0x00000004, SetNpcFlagBits, 0xFFFFFFFF, 0x00000808, 0x00000000, 0x00000043, 0x00000003, SetNpcAnimation, 0xFFFFFFFF, 0xFE363C82, 0x00000024, 0x00000002, 0xFE363C80, 0x00000000, 0x00000005, 0x00000001, 0x0000001E, 0x00000043, 0x00000005, SetNpcRotation, 0xFFFFFFFF, 0x00000000, 0xFE363C80, 0x00000000, 0x00000043, 0x00000001, func_8005DD54, 0x00000043, 0x00000007, func_802CFD30, 0xFFFFFFFF, 0x00000006, 0xFE363C82, 0xFE363C82, 0xFE363C82, 0x00000000, 0x00000027, 0x00000002, 0xFE363C80, 0x0000001E, 0x00000008, 0x00000001, 0x00000001, 0x00000006, 0x00000000, 0x00000043, 0x00000005, SetNpcRotation, 0xFFFFFFFF, 0x00000000, 0x00000000, 0x00000000, 0x00000043, 0x00000007, func_802CFD30, 0xFFFFFFFF, 0x00000006, 0x000000FF, 0x000000FF, 0x000000FF, 0x00000000, 0x00000043, 0x00000004, SetNpcFlagBits, 0xFFFFFFFF, 0x00040000, 0x00000000, 0x00000043, 0x00000003, SetSelfVar, 0x00000000, 0x00000000, 0x00000043, 0x00000001, func_8005DDF0, 0x00000043, 0x00000003, BindNpcAI, 0xFFFFFFFF, 0xFE363C81, 0x00000013, 0x00000000, 0x00000002, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000
|
||||
.word 0x00000043, 0x00000001, func_8005DB00, 0x00000002, 0x00000000, 0x00000001, 0x00000000, 0x00000043, 0x00000003, SetNpcAnimation, 0xFFFFFFFF, 0xFE363C80, 0x00000043, 0x00000005, GetNpcPos, 0xFFFFFFFF, 0xFE363C80, 0xFE363C83, 0xFE363C82, 0x00000024, 0x00000002, 0xFE363C81, 0xFE363C83, 0x00000027, 0x00000002, 0xFE363C81, 0x00000001, 0x00000043, 0x00000005, SetNpcPos, 0xFFFFFFFF, 0xFE363C80, 0xFE363C81, 0xFE363C82, 0x00000008, 0x00000001, 0x00000001, 0x00000024, 0x00000002, 0xFE363C81, 0xFE363C83, 0x00000027, 0x00000002, 0xFE363C81, 0x00000004, 0x00000043, 0x00000005, SetNpcPos, 0xFFFFFFFF, 0xFE363C80, 0xFE363C81, 0xFE363C82, 0x00000008, 0x00000001, 0x00000001, 0x00000024, 0x00000002, 0xFE363C81, 0xFE363C83, 0x00000027, 0x00000002, 0xFE363C81, 0x00000010, 0x00000043, 0x00000005, SetNpcPos, 0xFFFFFFFF, 0xFE363C80, 0xFE363C81, 0xFE363C82, 0x00000008, 0x00000001, 0x00000001, 0x00000024, 0x00000002, 0xFE363C81, 0xFE363C83, 0x00000027, 0x00000002, 0xFE363C81, 0x00000008, 0x00000043, 0x00000005, SetNpcPos, 0xFFFFFFFF, 0xFE363C80, 0xFE363C81, 0xFE363C82, 0x00000008, 0x00000001, 0x00000001, 0x00000024, 0x00000002, 0xFE363C81, 0xFE363C83, 0x00000027, 0x00000002, 0xFE363C81, 0x00000014, 0x00000043, 0x00000005, SetNpcPos, 0xFFFFFFFF, 0xFE363C80, 0xFE363C81, 0xFE363C82, 0x00000008, 0x00000001, 0x00000001, 0x00000024, 0x00000002, 0xFE363C81, 0xFE363C83, 0x00000027, 0x00000002, 0xFE363C81, 0x00000008, 0x00000043, 0x00000005, SetNpcPos, 0xFFFFFFFF, 0xFE363C80, 0xFE363C81, 0xFE363C82, 0x00000008, 0x00000001, 0x00000001, 0x00000024, 0x00000002, 0xFE363C81, 0xFE363C83, 0x00000027, 0x00000002, 0xFE363C81, 0x0000000C, 0x00000043, 0x00000005, SetNpcPos, 0xFFFFFFFF, 0xFE363C80, 0xFE363C81, 0xFE363C82, 0x00000008, 0x00000001, 0x00000001, 0x00000024, 0x00000002, 0xFE363C81, 0xFE363C83, 0x00000027, 0x00000002, 0xFE363C81, 0x00000006, 0x00000043, 0x00000005, SetNpcPos, 0xFFFFFFFF, 0xFE363C80, 0xFE363C81, 0xFE363C82, 0x00000008, 0x00000001, 0x00000001, 0x00000024, 0x00000002, 0xFE363C81, 0xFE363C83, 0x00000027, 0x00000002, 0xFE363C81, 0x00000000, 0x00000043, 0x00000005, SetNpcPos, 0xFFFFFFFF, 0xFE363C80, 0xFE363C81, 0xFE363C82, 0x00000008, 0x00000001, 0x00000001, 0x00000002, 0x00000000, 0x00000001, 0x00000000
|
||||
|
||||
glabel D_800939A4
|
||||
.word 0x00000002, 0x00000000, 0x00000001, 0x00000000, 0x00000043, 0x00000003, GetSelfVar, 0x00000000, 0xFE363C80, 0x0000000A, 0x00000002, 0xFE363C80, 0x00000000, 0x00000043, 0x00000003, SetSelfVar, 0x00000000, 0x00000001, 0x00000043, 0x00000003, BindNpcAI, 0xFFFFFFFF, D_800939A4, 0x00000043, 0x00000004, SetNpcFlagBits, 0xFFFFFFFF, 0x00040200, 0x00000001, 0x00000043, 0x00000004, SetNpcFlagBits, 0xFFFFFFFF, 0x00000808, 0x00000000, 0x00000043, 0x00000003, SetNpcAnimation, 0xFFFFFFFF, 0xFE363C82, 0x00000024, 0x00000002, 0xFE363C80, 0x00000000, 0x00000005, 0x00000001, 0x0000001E, 0x00000043, 0x00000005, SetNpcRotation, 0xFFFFFFFF, 0x00000000, 0xFE363C80, 0x00000000, 0x00000043, 0x00000001, func_8005DD54, 0x00000043, 0x00000007, func_802CFD30, 0xFFFFFFFF, 0x00000006, 0xFE363C82, 0xFE363C82, 0xFE363C82, 0x00000000, 0x00000027, 0x00000002, 0xFE363C80, 0x0000001E, 0x00000008, 0x00000001, 0x00000001, 0x00000006, 0x00000000, 0x00000043, 0x00000005, SetNpcRotation, 0xFFFFFFFF, 0x00000000, 0x00000000, 0x00000000, 0x00000043, 0x00000007, func_802CFD30, 0xFFFFFFFF, 0x00000006, 0x000000FF, 0x000000FF, 0x000000FF, 0x00000000, 0x00000043, 0x00000004, SetNpcFlagBits, 0xFFFFFFFF, 0x00040000, 0x00000000, 0x00000043, 0x00000003, SetSelfVar, 0x00000000, 0x00000000, 0x00000043, 0x00000001, func_8005DDF0, 0x00000043, 0x00000003, BindNpcAI, 0xFFFFFFFF, 0xFE363C81, 0x00000013, 0x00000000, 0x00000002, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000
|
||||
|
||||
glabel D_80093B80
|
||||
.word 0x00000000, 0x4E755379, 0x7374656D, 0x322E3035, 0x00000000
|
||||
.word 0x00000000
|
||||
|
||||
glabel D_80093B84
|
||||
.word 0x4E755379, 0x7374656D, 0x322E3035, 0x00000000
|
||||
|
||||
glabel D_80093B94
|
||||
.word 0x80093B84, 0x00000000, 0x00000000
|
||||
.word D_80093B84, 0x00000000, 0x00000000
|
||||
|
||||
glabel D_80093BA0
|
||||
.word 0x80096030, 0x80097660
|
||||
@ -24,7 +30,10 @@ glabel nuContPakCompanyCode
|
||||
.short 0x0000, 0x0000
|
||||
|
||||
glabel nuContPakGameCode
|
||||
.word 0x00000000, 0x00000000, contPakOpen, contPakFree, contPakFileOpen, contPakFileReadWrite, contPakFileDelete, contPakFileState, contPakFileNum, contPakRepairId, 0x00000000
|
||||
.word 0x00000000
|
||||
|
||||
glabel D_80093CA8
|
||||
.word 0x00000000, contPakOpen, contPakFree, contPakFileOpen, contPakFileReadWrite, contPakFileDelete, contPakFileState, contPakFileNum, contPakRepairId, 0x00000000
|
||||
|
||||
glabel nuContPakCallBack
|
||||
.word 0x00000000, 0x80093CA8, 0x02000000, 0x00000000
|
||||
.word 0x00000000, D_80093CA8, 0x02000000, 0x00000000
|
||||
|
@ -78,7 +78,7 @@ glabel D_80095940
|
||||
.ascii "0123456789abcdef\0\0\0\0"
|
||||
|
||||
glabel D_80095954
|
||||
.word 0x30313233, 0x34353637, 0x38394142, 0x43444546, 0x00000000, 0x00000000, 0x00000000
|
||||
.ascii "0123456789ABCDEF\0\0\0\0\0\0\0\0\0\0\0\0"
|
||||
|
||||
glabel D_80095970
|
||||
.short 0x0000
|
||||
@ -87,7 +87,10 @@ glabel D_80095972
|
||||
.short 0x0000
|
||||
|
||||
glabel D_80095974
|
||||
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
.word 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000
|
||||
|
||||
glabel D_800959A0
|
||||
.short 0x0000
|
||||
|
||||
glabel D_800959A2
|
||||
.short 0x0000
|
||||
@ -102,7 +105,7 @@ glabel D_800959D0
|
||||
.word D_80095970
|
||||
|
||||
glabel D_800959D4
|
||||
.word 0x800959A0, 0x00000000, 0x00000000
|
||||
.word D_800959A0, 0x00000000, 0x00000000
|
||||
|
||||
glabel D_800959E0
|
||||
.word 0x10000000, 0x0000311E, 0x00000140, 0x04541E3A, 0x00000271, 0x00170C69, 0x0C6F0C6D, 0x00800300, 0x00000200, 0x00000000, 0x00000280, 0x00000400, 0x005F0239, 0x0009026B, 0x00000002, 0x00000280, 0x00000400, 0x005F0239, 0x0009026B, 0x00000002
|
||||
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user