complete w05Dll/mg_item.c
This commit is contained in:
parent
c66a4d8669
commit
74e1c14c39
3 changed files with 853 additions and 50 deletions
|
|
@ -171,48 +171,48 @@ lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x8 scope:local data:
|
|||
lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x8 scope:local data:4byte
|
||||
lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 scope:local data:float
|
||||
lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 scope:local data:float
|
||||
lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 data:float
|
||||
lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 data:float
|
||||
lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float
|
||||
lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 data:float
|
||||
lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 data:float
|
||||
lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 data:float
|
||||
lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 data:float
|
||||
lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 data:float
|
||||
lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 data:float
|
||||
lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 data:float
|
||||
lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 data:float
|
||||
lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 data:float
|
||||
lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 data:float
|
||||
lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x8 data:double
|
||||
lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x8 data:double
|
||||
lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 data:float
|
||||
lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 data:float
|
||||
lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 data:float
|
||||
lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x4 data:float
|
||||
lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 data:float
|
||||
lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 data:float
|
||||
lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x8 data:double
|
||||
lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 data:float
|
||||
lbl_1_rodata_214 = .rodata:0x00000214; // type:object size:0x4 data:float
|
||||
lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 data:float
|
||||
lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0x4 data:float
|
||||
lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 data:float
|
||||
lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x8 data:double
|
||||
lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 data:float
|
||||
lbl_1_rodata_234 = .rodata:0x00000234; // type:object size:0x4 data:float
|
||||
lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x4 data:float
|
||||
lbl_1_rodata_23C = .rodata:0x0000023C; // type:object size:0x4 data:float
|
||||
lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x4 data:float
|
||||
lbl_1_rodata_244 = .rodata:0x00000244; // type:object size:0x4 data:float
|
||||
lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 data:float
|
||||
lbl_1_rodata_24C = .rodata:0x0000024C; // type:object size:0x4 data:float
|
||||
lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 data:float
|
||||
lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 data:float
|
||||
lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 data:float
|
||||
lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 data:float
|
||||
lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 data:float
|
||||
lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 data:float
|
||||
lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 scope:local data:float
|
||||
lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 scope:local data:float
|
||||
lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 scope:local data:float
|
||||
lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 scope:local data:float
|
||||
lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 scope:local data:float
|
||||
lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 scope:local data:float
|
||||
lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 scope:local data:float
|
||||
lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 scope:local data:float
|
||||
lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 scope:local data:float
|
||||
lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 scope:local data:float
|
||||
lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 scope:local data:float
|
||||
lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 scope:local data:float
|
||||
lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 scope:local data:float
|
||||
lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x8 scope:local data:double
|
||||
lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x8 scope:local data:double
|
||||
lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 scope:local data:float
|
||||
lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 scope:local data:float
|
||||
lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 scope:local data:float
|
||||
lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x4 scope:local data:float
|
||||
lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 scope:local data:float
|
||||
lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 scope:local data:float
|
||||
lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x8 scope:local data:double
|
||||
lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 scope:local data:float
|
||||
lbl_1_rodata_214 = .rodata:0x00000214; // type:object size:0x4 scope:local data:float
|
||||
lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 scope:local data:float
|
||||
lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0x4 scope:local data:float
|
||||
lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 scope:local data:float
|
||||
lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x8 scope:local data:double
|
||||
lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 scope:local data:float
|
||||
lbl_1_rodata_234 = .rodata:0x00000234; // type:object size:0x4 scope:local data:float
|
||||
lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x4 scope:local data:float
|
||||
lbl_1_rodata_23C = .rodata:0x0000023C; // type:object size:0x4 scope:local data:float
|
||||
lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x4 scope:local data:float
|
||||
lbl_1_rodata_244 = .rodata:0x00000244; // type:object size:0x4 scope:local data:float
|
||||
lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 scope:local data:float
|
||||
lbl_1_rodata_24C = .rodata:0x0000024C; // type:object size:0x4 scope:local data:float
|
||||
lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 scope:local data:float
|
||||
lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 scope:local data:float
|
||||
lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 scope:local data:float
|
||||
lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 scope:local data:float
|
||||
lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 scope:local data:float
|
||||
lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 scope:local data:float
|
||||
lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 data:float
|
||||
lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0x4 data:float
|
||||
lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 data:float
|
||||
|
|
@ -285,12 +285,12 @@ lbl_1_data_2A4 = .data:0x000002A4; // type:object size:0x48
|
|||
lbl_1_data_2EC = .data:0x000002EC; // type:object size:0x8
|
||||
lbl_1_data_2F4 = .data:0x000002F4; // type:object size:0x18
|
||||
lbl_1_data_310 = .data:0x00000310; // type:object size:0x8
|
||||
lbl_1_data_318 = .data:0x00000318; // type:object size:0x7 data:string
|
||||
lbl_1_data_31F = .data:0x0000031F; // type:object size:0x7 data:string
|
||||
lbl_1_data_326 = .data:0x00000326; // type:object size:0xA
|
||||
lbl_1_data_318 = .data:0x00000318; // type:object size:0x7 scope:local data:string
|
||||
lbl_1_data_31F = .data:0x0000031F; // type:object size:0x7 scope:local data:string
|
||||
lbl_1_data_326 = .data:0x00000326; // type:object size:0xA scope:local data:string
|
||||
lbl_1_data_330 = .data:0x00000330; // type:object size:0xC
|
||||
lbl_1_data_33C = .data:0x0000033C; // type:object size:0x7 data:string
|
||||
lbl_1_data_343 = .data:0x00000343; // type:object size:0xD data:string
|
||||
lbl_1_data_33C = .data:0x0000033C; // type:object size:0x7 scope:local data:string
|
||||
lbl_1_data_343 = .data:0x00000343; // type:object size:0xD scope:local data:string
|
||||
lbl_1_data_350 = .data:0x00000350; // type:object size:0x38
|
||||
lbl_1_data_388 = .data:0x00000388; // type:object size:0xB8
|
||||
lbl_1_data_440 = .data:0x00000440; // type:object size:0xC
|
||||
|
|
@ -335,7 +335,7 @@ lbl_1_bss_90 = .bss:0x00000090; // type:object size:0x4 data:4byte
|
|||
lbl_1_bss_94 = .bss:0x00000094; // type:object size:0x4 data:4byte
|
||||
lbl_1_bss_98 = .bss:0x00000098; // type:object size:0x4 data:4byte
|
||||
lbl_1_bss_9C = .bss:0x0000009C; // type:object size:0x2 data:2byte
|
||||
lbl_1_bss_9E = .bss:0x0000009E; // type:object size:0x2 data:2byte
|
||||
lbl_1_bss_9E = .bss:0x0000009E; // type:object size:0x4 data:2byte
|
||||
lbl_1_bss_A2 = .bss:0x000000A2; // type:object size:0x2 data:2byte
|
||||
lbl_1_bss_A4 = .bss:0x000000A4; // type:object size:0x6
|
||||
lbl_1_bss_AA = .bss:0x000000AA; // type:object size:0x6
|
||||
|
|
|
|||
|
|
@ -1414,7 +1414,7 @@ config.libs = [
|
|||
Object(Matching, "REL/w05Dll/hotel.c"),
|
||||
Object(Matching, "REL/w05Dll/monkey.c"),
|
||||
Object(Matching, "REL/w05Dll/dolphin.c"),
|
||||
Object(NonMatching, "REL/w05Dll/mg_item.c"),
|
||||
Object(Matching, "REL/w05Dll/mg_item.c"),
|
||||
Object(NonMatching, "REL/w05Dll/mg_coin.c"),
|
||||
}
|
||||
),
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@
|
|||
#include "game/objsub.h"
|
||||
#include "game/frand.h"
|
||||
#include "game/chrman.h"
|
||||
#include "game/pad.h"
|
||||
#include "game/minigame_seq.h"
|
||||
|
||||
#include "game/board/model.h"
|
||||
|
|
@ -12,5 +13,807 @@
|
|||
#include "game/board/window.h"
|
||||
#include "game/board/audio.h"
|
||||
|
||||
typedef struct UnkStruct {
|
||||
s16 unk_00;
|
||||
s16 unk_02;
|
||||
s16 unk_04;
|
||||
s16 unk_06;
|
||||
s16 unk_08;
|
||||
s16 unk_0A[3];
|
||||
s16 unk_10;
|
||||
s16 unk_12;
|
||||
} unkStruct;
|
||||
|
||||
// data
|
||||
s32 lbl_1_data_310[2] = { 0x79, 0x7A };
|
||||
char *lbl_1_data_330[3] = { "suika1", "suika2", "suika3" };
|
||||
char *lbl_1_data_330[3] = { "suika1", "suika2", "suika3" };
|
||||
|
||||
// bss
|
||||
s16 lbl_1_bss_B6;
|
||||
s16 lbl_1_bss_B0[3];
|
||||
s16 lbl_1_bss_AA[3];
|
||||
s16 lbl_1_bss_A4[3];
|
||||
s16 lbl_1_bss_A2;
|
||||
s16 lbl_1_bss_9E[2];
|
||||
s16 lbl_1_bss_9C;
|
||||
Process* lbl_1_bss_98;
|
||||
omObjData* lbl_1_bss_94;
|
||||
omObjData* lbl_1_bss_90;
|
||||
omObjData* lbl_1_bss_8C;
|
||||
s32 lbl_1_bss_88;
|
||||
s32 lbl_1_bss_7C[3];
|
||||
AnimData* lbl_1_bss_78;
|
||||
|
||||
// prototypes
|
||||
void fn_1_7284(omObjData*);
|
||||
void fn_1_7314(void);
|
||||
void fn_1_73C0(void);
|
||||
void fn_1_77B0(void);
|
||||
void fn_1_78A0(omObjData*);
|
||||
void fn_1_799C(void);
|
||||
void fn_1_7E4C(omObjData*);
|
||||
void fn_1_7F04(omObjData*);
|
||||
void fn_1_80D8(omObjData*);
|
||||
void fn_1_8410(omObjData*);
|
||||
void fn_1_850C(omObjData*);
|
||||
void fn_1_8668(omObjData*);
|
||||
void fn_1_8798(unkStruct*, s32*, s32*, s32*);
|
||||
void fn_1_88B8(void);
|
||||
void fn_1_896C(void);
|
||||
void fn_1_91DC(void);
|
||||
void fn_1_9268(ModelData*, ParticleData*, f32[3][4]);
|
||||
|
||||
void fn_1_6B28(void) {
|
||||
BoardModelAttrSet(*lbl_1_bss_14, 0x40000002U);
|
||||
lbl_1_bss_98 = NULL;
|
||||
lbl_1_bss_78 = NULL;
|
||||
}
|
||||
|
||||
void fn_1_6B7C(void) {
|
||||
Vec sp1C;
|
||||
Vec sp10;
|
||||
s32 spC;
|
||||
s32 var_r31;
|
||||
|
||||
lbl_1_bss_B6 = GWSystem.player_curr;
|
||||
spC = GWPlayer[lbl_1_bss_B6].character;
|
||||
|
||||
for (var_r31 = 0; var_r31 < 2; var_r31++) {
|
||||
lbl_1_bss_9E[var_r31] = BoardPlayerMotionCreate(lbl_1_bss_B6, lbl_1_data_310[var_r31] | lbl_1_data_124[GWPlayer[lbl_1_bss_B6].character]);
|
||||
}
|
||||
lbl_1_bss_A2 = BoardModelCreate(0x790013, NULL, 0);
|
||||
BoardModelVisibilitySet(lbl_1_bss_A2, 0);
|
||||
sp1C.x = sp1C.y = sp1C.z = 3.33333f;
|
||||
BoardModelScaleSetV(lbl_1_bss_A2, &sp1C);
|
||||
Hu3DModelObjPosGet(BoardModelIDGet(lbl_1_bss_14[0]), "chara1", &sp1C);
|
||||
BoardPlayerPosGet(lbl_1_bss_B6, &sp10);
|
||||
BoardPlayerPosLerpStart(lbl_1_bss_B6, &sp10, &sp1C, 0x1E);
|
||||
|
||||
while (GWPlayer[lbl_1_bss_B6].moving != 0) {
|
||||
HuPrcVSleep();
|
||||
}
|
||||
BoardPlayerMotBlendSet(lbl_1_bss_B6, 0, 0xF);
|
||||
|
||||
while (BoardPlayerMotBlendCheck(lbl_1_bss_B6) == 0) {
|
||||
HuPrcVSleep();
|
||||
}
|
||||
|
||||
HuPrcSleep(0x3C);
|
||||
BoardAudSeqPause(0, 1, 0x3E8);
|
||||
HuAudFXPlay(0x30D);
|
||||
fn_1_88B8();
|
||||
HuAudFXPlay(0x491);
|
||||
omVibrate(lbl_1_bss_B6, 0x7FFF, 6, 6);
|
||||
BoardModelHookSet(lbl_1_bss_14[0], "chara1", BoardPlayerModelGet(lbl_1_bss_B6));
|
||||
BoardModelMotionStartEndSet(lbl_1_bss_14[0], 0x1E, 0x5A);
|
||||
BoardModelAttrReset(lbl_1_bss_14[0], 0x40000002);
|
||||
BoardMusStart(1, 0x22, 0x7F, 0);
|
||||
BoardPlayerMotionShiftSet(lbl_1_bss_B6, lbl_1_bss_9E[0], 0.0f, 30.0f, 0x40000001);
|
||||
HuPrcSleep(0x1E);
|
||||
BoardModelVisibilitySet(lbl_1_bss_A2, 1);
|
||||
BoardModelHookSet(BoardPlayerModelGet(lbl_1_bss_B6), "a-itemhook-r", lbl_1_bss_A2);
|
||||
Hu3DModelObjPosGet(BoardModelIDGet(*lbl_1_bss_14), "chara1", &sp10);
|
||||
Hu3DModelObjPosGet(BoardModelIDGet(BoardPlayerModelGet(lbl_1_bss_B6)), "a-itemhook-r", &sp1C);
|
||||
PSVECAdd(&sp1C, &sp10, &sp1C);
|
||||
sp1C.y += 25.0f;
|
||||
CharModelLayerSetAll(7);
|
||||
CharModelEffectCreate(-1, &sp1C);
|
||||
HuPadRumbleStop(GWPlayer[lbl_1_bss_B6].port);
|
||||
BoardModelAttrSet(lbl_1_bss_14[0], 0x40000002);
|
||||
HuPrcSleep(0x1E);
|
||||
BoardModelAttrReset(lbl_1_bss_14[0], 0x40000002);
|
||||
omVibrate(lbl_1_bss_B6, 0x7FFF, 6, 6);
|
||||
HuAudFXPlay(0x492);
|
||||
|
||||
while (BoardModelMotionTimeGet(lbl_1_bss_14[0]) < 90.0f) {
|
||||
HuPrcVSleep();
|
||||
}
|
||||
BoardModelMotionTimeSet(lbl_1_bss_14[0], 90.0f);
|
||||
HuPadRumbleStop(GWPlayer[lbl_1_bss_B6].port);
|
||||
BoardModelHookReset(lbl_1_bss_14[0]);
|
||||
|
||||
for (var_r31 = 0; var_r31 < 3; var_r31++) {
|
||||
BoardModelHookSet(lbl_1_bss_14[0], lbl_1_data_330[var_r31], lbl_1_bss_AA[var_r31]);
|
||||
}
|
||||
Hu3DModelObjPosGet(BoardModelIDGet(lbl_1_bss_14[0]), "chara1", &sp10);
|
||||
BoardPlayerPosSetV(lbl_1_bss_B6, &sp10);
|
||||
HuPrcSleep(0x3C);
|
||||
lbl_1_bss_94 = omAddObjEx(boardObjMan, 0x101, 0, 0, -1, fn_1_7284);
|
||||
lbl_1_bss_8C = omAddObjEx(boardObjMan, 0x101, 0, 0, -1, fn_1_78A0);
|
||||
lbl_1_bss_90 = omAddObjEx(boardObjMan, 0x101, 0, 0, -1, NULL);
|
||||
lbl_1_bss_90->data = HuMemDirectMallocNum(HEAP_SYSTEM, 0x14, 0x10000000U);
|
||||
if (lbl_1_bss_78 == NULL) {
|
||||
lbl_1_bss_78 = HuSprAnimRead(HuDataSelHeapReadNum(0x120000, 0x10000000, HEAP_DATA));
|
||||
HuSprAnimLock(lbl_1_bss_78);
|
||||
}
|
||||
lbl_1_bss_9C = 0;
|
||||
}
|
||||
|
||||
void fn_1_7284(omObjData* arg0) {
|
||||
if ((lbl_1_bss_9C != 0) && (BoardMGDoneFlagGet() == 1)) {
|
||||
fn_1_77B0();
|
||||
fn_1_7314();
|
||||
fn_1_73C0();
|
||||
omDelObjEx(boardObjMan, arg0);
|
||||
}
|
||||
}
|
||||
|
||||
void fn_1_72E4(void) {
|
||||
lbl_1_bss_9C = 1;
|
||||
BoardMGExit();
|
||||
}
|
||||
|
||||
void fn_1_7314(void) {
|
||||
s32 var_r31;
|
||||
|
||||
BoardModelHookReset(lbl_1_bss_14[0]);
|
||||
|
||||
for (var_r31 = 0; var_r31 < 3; var_r31++) {
|
||||
BoardModelKill(lbl_1_bss_A4[var_r31]);
|
||||
BoardModelKill(lbl_1_bss_AA[var_r31]);
|
||||
}
|
||||
if (lbl_1_bss_78 != 0) {
|
||||
HuSprAnimKill(lbl_1_bss_78);
|
||||
lbl_1_bss_78 = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
void fn_1_73C0(void) {
|
||||
omDelObjEx(boardObjMan, lbl_1_bss_90);
|
||||
BoardMGDoneFlagSet(0);
|
||||
}
|
||||
|
||||
void fn_1_7400(void) {
|
||||
|
||||
while (BoardModelMotionTimeGet(lbl_1_bss_14[0]) < 30.0f) {
|
||||
HuPrcVSleep();
|
||||
}
|
||||
BoardModelAttrSet(lbl_1_bss_14[0], 0x40000002U);
|
||||
BoardModelMotionTimeSet(lbl_1_bss_14[0], 30.0f);
|
||||
lbl_1_bss_98 = HuPrcCreate(fn_1_896C, 0x2004, 0x1000, 0);
|
||||
HuPrcDestructorSet2(lbl_1_bss_98, fn_1_91DC);
|
||||
lbl_1_bss_98->user_data = (void* )7;
|
||||
HuPrcEnd();
|
||||
}
|
||||
|
||||
s32 lbl_1_data_350[14] = {
|
||||
0x0007006D, 0x0007006E, 0x0007006F, 0x00070070,
|
||||
0x00070071, 0x00070072, 0x00070073, 0x00070074,
|
||||
0x00070076, 0x00070077, 0x00070078, 0x00070079,
|
||||
0x0007007A, 0x0007007B
|
||||
};
|
||||
|
||||
s16 lbl_1_data_388[92] = {
|
||||
0, 1, -1, 2, 0, -1, 1, 2,
|
||||
0, -1, 2, 1, 0, 2, -1, 1,
|
||||
0, 2, 1, -1, 1, 2, -1, 0,
|
||||
1, 2, 0, -1, 1, -1, 0, 2,
|
||||
1, -1, 2, 0, 1, 0, 2, -1,
|
||||
1, 0, -1, 2, 2, -1, 0, 1,
|
||||
2, -1, 1, 0, 2, 0, 1, -1,
|
||||
2, 0, -1, 1, 2, 1, -1, 0,
|
||||
2, 1, 0, -1, -1, 0, 1, 2,
|
||||
-1, 0, 2, 1, -1, 1, 2, 0,
|
||||
-1, 1, 0, 2, -1, 2, 0, 1,
|
||||
-1, 2, 1, 0
|
||||
};
|
||||
|
||||
f32 lbl_1_data_440[3] = {-90.0f, 0.0f, 90.0f};
|
||||
|
||||
void fn_1_74D0(s16 arg0[3]) {
|
||||
f32 temp_f31;
|
||||
s32 var_r31;
|
||||
|
||||
for (var_r31 = 0; var_r31 < 3; var_r31++) {
|
||||
lbl_1_bss_B0[var_r31] = arg0[var_r31];
|
||||
}
|
||||
|
||||
for (var_r31 = 0; var_r31 < 3; var_r31++) {
|
||||
lbl_1_bss_A4[var_r31] = BoardModelCreate(lbl_1_data_350[lbl_1_bss_B0[var_r31]], NULL, 0);
|
||||
if (lbl_1_bss_B0[var_r31] == 0xB) {
|
||||
BoardModelAttrSet(lbl_1_bss_A4[var_r31], 0x40000001U);
|
||||
}
|
||||
if (lbl_1_bss_B0[var_r31] == 5) {
|
||||
temp_f31 = -50.0f;
|
||||
Hu3DData[BoardModelIDGet(lbl_1_bss_A4[var_r31])].unk_F0[1][3] = temp_f31;
|
||||
}
|
||||
if (lbl_1_bss_B0[var_r31] == 4) {
|
||||
BoardModelMotionSpeedSet(lbl_1_bss_A4[var_r31], 0.0f);
|
||||
}
|
||||
BoardModelVisibilitySet(lbl_1_bss_A4[var_r31], 0);
|
||||
}
|
||||
|
||||
for (var_r31 = 0; var_r31 < 3; var_r31++) {
|
||||
lbl_1_bss_AA[var_r31] = BoardModelCreate(0x790012, NULL, 1);
|
||||
BoardModelHookSet(lbl_1_bss_14[0], lbl_1_data_330[var_r31], lbl_1_bss_AA[var_r31]);
|
||||
BoardModelAttrSet(lbl_1_bss_AA[var_r31], 0x40000002);
|
||||
BoardModelMotionTimeSet(lbl_1_bss_AA[var_r31], 10.0f);
|
||||
}
|
||||
|
||||
HuAudFXPlay(0x488);
|
||||
BoardModelMotionTimeSet(lbl_1_bss_14[0], 0.0f);
|
||||
BoardModelMotionStartEndSet(lbl_1_bss_14[0], 0, 0x1E);
|
||||
BoardModelAttrReset(lbl_1_bss_14[0], 0x40000002);
|
||||
HuPrcCreate(fn_1_7400, 0x2004, 0x1000, 0);
|
||||
}
|
||||
|
||||
void fn_1_77B0(void) {
|
||||
HuAudFXPlay(0x489);
|
||||
BoardModelMotionStartEndSet(lbl_1_bss_14[0], 0x5A, 0x78);
|
||||
BoardModelMotionTimeSet(lbl_1_bss_14[0], 90.0f);
|
||||
BoardModelAttrReset(lbl_1_bss_14[0], 0x40000002);
|
||||
|
||||
while (BoardModelMotionEndCheck(lbl_1_bss_14[0]) == 0) {
|
||||
fn_1_1208(lbl_1_bss_14[6], 0.0f, 6.0f);
|
||||
HuPrcVSleep();
|
||||
}
|
||||
|
||||
while (fn_1_1208(lbl_1_bss_14[6], 0.0f, 6.0f) == 0) {
|
||||
HuPrcVSleep();
|
||||
}
|
||||
}
|
||||
|
||||
void fn_1_78A0(omObjData* arg0) {
|
||||
if (arg0->work[0] == 0) {
|
||||
arg0->work[0] = MGSeqCreate(3, 0);
|
||||
return;
|
||||
}
|
||||
if (MGSeqStatGet(arg0->work[0]) == 0) {
|
||||
arg0->func = NULL;
|
||||
lbl_1_bss_90->func = fn_1_7F04;
|
||||
}
|
||||
}
|
||||
|
||||
void fn_1_7928(omObjData* arg0) {
|
||||
Process *temp;
|
||||
if (((u32)lbl_1_bss_98->user_data & 0x10) != 0) {
|
||||
temp = HuPrcCreate(fn_1_799C, 0x2004, 0x1800, 0);
|
||||
temp->user_data = arg0;
|
||||
arg0->func = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
void fn_1_799C(void) {
|
||||
Vec sp2C;
|
||||
Vec sp20;
|
||||
Vec sp14;
|
||||
Vec sp8;
|
||||
f32 temp_f29;
|
||||
f32 temp_f30;
|
||||
f32 var_f31;
|
||||
s32 temp_r27;
|
||||
s32 temp_r31;
|
||||
s32 var_r28;
|
||||
s32 var_r29;
|
||||
omObjData* temp_r30;
|
||||
|
||||
temp_r30 = HuPrcCurrentGet()->user_data;
|
||||
BoardPlayerPosGet(lbl_1_bss_B6, &sp2C);
|
||||
temp_r31 = temp_r30->work[0];
|
||||
BoardModelPosGet(lbl_1_bss_A4[temp_r31], &sp20);
|
||||
sp2C.y = sp20.y = 0.0f;
|
||||
PSVECSubtract(&sp2C, &sp20, &sp14);
|
||||
temp_f30 = PSVECMag(&sp14);
|
||||
PSVECScale(&sp14, &sp14, 0.016666668);
|
||||
|
||||
for (var_r29 = 0; var_r29 < 0x3C; var_r29++) {
|
||||
BoardModelPosGet(lbl_1_bss_A4[temp_r31], &sp20);
|
||||
PSVECAdd(&sp20, &sp14, &sp20);
|
||||
BoardModelPosSetV(lbl_1_bss_A4[temp_r31], &sp20);
|
||||
HuPrcVSleep();
|
||||
}
|
||||
BoardModelPosGet(lbl_1_bss_A4[temp_r31], &sp20);
|
||||
sp20.x = sp2C.x;
|
||||
sp20.z = sp2C.z;
|
||||
BoardModelPosSetV(lbl_1_bss_A4[temp_r31], &sp20);
|
||||
BoardPlayerMotBlendSet(lbl_1_bss_B6, 0, 0xF);
|
||||
|
||||
while (BoardPlayerMotBlendCheck(lbl_1_bss_B6) == 0) {
|
||||
fn_1_1208(lbl_1_bss_14[6], 90.0f, 6.0f);
|
||||
HuPrcVSleep();
|
||||
}
|
||||
|
||||
while (fn_1_1208(lbl_1_bss_14[6], 90.0f, 6.0f) == 0) {
|
||||
HuPrcVSleep();
|
||||
}
|
||||
BoardWinCreate(2, 0x27000C, 7);
|
||||
BoardWinInsertMesSet(lbl_1_bss_B0[temp_r31] + 0x80000, 0);
|
||||
BoardWinWait();
|
||||
BoardWinKill();
|
||||
HuPrcKill(lbl_1_bss_98);
|
||||
lbl_1_bss_98 = NULL;
|
||||
HuPrcVSleep();
|
||||
HuAudFXPlay(0x30D);
|
||||
BoardModelPosGet(lbl_1_bss_A4[temp_r31], &sp20);
|
||||
BoardModelScaleGet(lbl_1_bss_A4[temp_r31], &sp8);
|
||||
var_f31 = sp8.x;
|
||||
temp_f29 = -0.075f;
|
||||
temp_f30 = (sp2C.y - sp20.y) / 30.0f;
|
||||
var_r28 = 0;
|
||||
HuAudFXFadeOut(lbl_1_bss_88, 0x1F3);
|
||||
while (var_r28 == 0) {
|
||||
sp20.y += temp_f30;
|
||||
var_f31 += temp_f29;
|
||||
if (var_f31 < 0.0f) {
|
||||
var_f31 = 0.0f;
|
||||
var_r28 = 1;
|
||||
}
|
||||
sp8.x = sp8.y = sp8.z = var_f31;
|
||||
BoardModelPosSetV(lbl_1_bss_A4[temp_r31], &sp20);
|
||||
BoardModelScaleSetV(lbl_1_bss_A4[temp_r31], &sp8);
|
||||
HuPrcVSleep();
|
||||
}
|
||||
HuAudFXStop(lbl_1_bss_88);
|
||||
BoardModelVisibilitySet(lbl_1_bss_A4[temp_r31], 0);
|
||||
BoardPlayerItemAdd(lbl_1_bss_B6, lbl_1_bss_B0[temp_r31]);
|
||||
omVibrate(lbl_1_bss_B6, 0xC, 6, 6);
|
||||
temp_r27 = HuAudSStreamPlay(2);
|
||||
BoardPlayerMotionShiftSet(lbl_1_bss_B6, 7, 0.0f, 5.0f, 0);
|
||||
|
||||
while (BoardPlayerMotionEndCheck(lbl_1_bss_B6) == 0) {
|
||||
HuPrcVSleep();
|
||||
}
|
||||
HuPrcSleep(0x1E);
|
||||
|
||||
while (HuAudSStreamStatGet(temp_r27) != 0) {
|
||||
HuPrcVSleep();
|
||||
}
|
||||
BoardAudSeqPause(0, 0, 0x3E8);
|
||||
BoardWinCreate(2, 0x27000D, 7);
|
||||
BoardWinWait();
|
||||
BoardWinKill();
|
||||
temp_r30->func = &fn_1_7E4C;
|
||||
HuPrcEnd();
|
||||
}
|
||||
|
||||
void fn_1_7E4C(omObjData* arg0) {
|
||||
lbl_1_bss_9C = 1;
|
||||
BoardMGExit();
|
||||
omDelObjEx(boardObjMan, arg0);
|
||||
}
|
||||
|
||||
void fn_1_7E94(unkStruct* arg0) {
|
||||
if (--arg0->unk_02 == 0) {
|
||||
arg0->unk_02 = 0x3C;
|
||||
if (--arg0->unk_00 >= 0) {
|
||||
MGSeqParamSet(arg0->unk_04, 1, arg0->unk_00);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void fn_1_7F04(omObjData* arg0) {
|
||||
f32 spC;
|
||||
f32 sp8;
|
||||
s32 var_r30;
|
||||
s32 var_r28;
|
||||
unkStruct* temp_r31;
|
||||
|
||||
temp_r31 = arg0->data;
|
||||
temp_r31->unk_00 = 5;
|
||||
temp_r31->unk_02 = 0x3C;
|
||||
temp_r31->unk_04 = MGSeqCreate(1, temp_r31->unk_00, 0x120, 0x40);
|
||||
HuWinMesMaxSizeGet(1, &sp8, 0x27000E);
|
||||
temp_r31->unk_06 = HuWinCreate(-10000.0f, 344.0f, sp8, spC, 0);
|
||||
HuWinMesSet(temp_r31->unk_06, 0x27000E);
|
||||
HuWinBGTPLvlSet(temp_r31->unk_06, 0.0f);
|
||||
HuWinMesSpeedSet(temp_r31->unk_06, 0);
|
||||
temp_r31->unk_08 = 1;
|
||||
|
||||
for (var_r30 = 0; var_r30 < 3; var_r30++) {
|
||||
temp_r31->unk_0A[var_r30] = -1;
|
||||
}
|
||||
|
||||
for (var_r30 = 0; var_r30 < 2; var_r30++) {
|
||||
do {
|
||||
var_r28 = frandmod(3);
|
||||
} while (temp_r31->unk_0A[var_r28] != -1);
|
||||
temp_r31->unk_0A[var_r28] = var_r30;
|
||||
}
|
||||
|
||||
for (var_r30 = 0; var_r30 < 3; var_r30++) {
|
||||
if (temp_r31->unk_0A[var_r30] == -1) {
|
||||
temp_r31->unk_0A[var_r30] = 2;
|
||||
}
|
||||
}
|
||||
temp_r31->unk_12 = frandmod(5);
|
||||
temp_r31->unk_10 = (frandmod(0x1E) + 0xF);
|
||||
arg0->func = fn_1_80D8;
|
||||
}
|
||||
|
||||
void fn_1_80D8(omObjData* arg0) {
|
||||
s32 sp10;
|
||||
s32 spC;
|
||||
s32 sp8;
|
||||
f32 var_f31;
|
||||
s32 temp_r30;
|
||||
s32 var_r29;
|
||||
unkStruct* temp_r31;
|
||||
|
||||
temp_r31 = arg0->data;
|
||||
fn_1_7E94(temp_r31);
|
||||
temp_r30 = GWPlayer[lbl_1_bss_B6].port;
|
||||
if (GWPlayer[lbl_1_bss_B6].com != 0) {
|
||||
fn_1_8798(temp_r31, &sp10, &spC, &sp8);
|
||||
} else {
|
||||
sp10 = HuPadStkX[temp_r30];
|
||||
spC = HuPadStkY[temp_r30];
|
||||
sp8 = HuPadBtnDown[temp_r30];
|
||||
}
|
||||
|
||||
if (((sp8 & 0x100) != 0) || (temp_r31->unk_00 < 0)) {
|
||||
MGSeqParamSet(temp_r31->unk_04, 2, -1);
|
||||
HuWinKill(temp_r31->unk_06);
|
||||
BoardPlayerMotionStart(lbl_1_bss_B6, lbl_1_bss_9E[1], 0);
|
||||
arg0->func = fn_1_8410;
|
||||
return;
|
||||
}
|
||||
if ((spC != 0) || (sp10 != 0)) {
|
||||
var_r29 = -1;
|
||||
var_f31 = (180.0 * (atan2(spC, sp10) / M_PI));
|
||||
if (var_f31 < 0.0f) {
|
||||
var_f31 += 360.0f;
|
||||
}
|
||||
|
||||
if ((var_f31 > 170.0f) && (var_f31 < 190.0f)) {
|
||||
var_r29 = 0;
|
||||
} else if ((var_f31 > 260.0f) && (var_f31 < 280.0f)) {
|
||||
var_r29 = 1;
|
||||
} else if ((var_f31 < 10.0f) || (var_f31 > 350.0f)) {
|
||||
var_r29 = 2;
|
||||
}
|
||||
if (var_r29 != -1) {
|
||||
temp_r31->unk_08 = temp_r31->unk_0A[var_r29];
|
||||
BoardPlayerRotYSet(lbl_1_bss_B6, lbl_1_data_440[temp_r31->unk_08]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void fn_1_8410(omObjData* arg0) {
|
||||
s32 temp_r30;
|
||||
unkStruct* temp_r31;
|
||||
|
||||
temp_r31 = arg0->data;
|
||||
if (BoardPlayerMotionTimeGet(lbl_1_bss_B6) >= 30.0f) {
|
||||
BoardAudSeqFadeOut(1, 0x64);
|
||||
HuAudFXPlay(0x486);
|
||||
HuAudFXPlay(0x487);
|
||||
temp_r30 = (1 << temp_r31->unk_08);
|
||||
temp_r30 |= 0x1C0;
|
||||
lbl_1_bss_98 = HuPrcCreate(fn_1_896C, 0x2004, 0x4000, 0);
|
||||
HuPrcDestructorSet2(lbl_1_bss_98, fn_1_91DC);
|
||||
lbl_1_bss_98->user_data = (void*)temp_r30;
|
||||
lbl_1_bss_8C->work[0] = temp_r31->unk_08;
|
||||
arg0->func = fn_1_850C;
|
||||
}
|
||||
}
|
||||
|
||||
void fn_1_850C(omObjData* arg0) {
|
||||
Vec sp14;
|
||||
Vec sp8;
|
||||
f32 temp_f31;
|
||||
|
||||
temp_f31 = BoardPlayerMotionMaxTimeGet(lbl_1_bss_B6);
|
||||
if (BoardPlayerMotionTimeGet(lbl_1_bss_B6) >= temp_f31) {
|
||||
BoardPlayerMotionStart(lbl_1_bss_B6, lbl_1_bss_9E[0], 0x40000001);
|
||||
Hu3DModelObjPosGet(BoardModelIDGet(lbl_1_bss_14[0]), "chara1", &sp8);
|
||||
Hu3DModelObjPosGet(BoardModelIDGet(BoardPlayerModelGet(lbl_1_bss_B6)), "a-itemhook-r", &sp14);
|
||||
PSVECAdd(&sp14, &sp8, &sp14);
|
||||
sp14.y += 25.0f;
|
||||
CharModelLayerSetAll(7);
|
||||
CharModelEffectCreate(-1, &sp14);
|
||||
arg0->work[0] = 0xA;
|
||||
arg0->func = fn_1_8668;
|
||||
}
|
||||
}
|
||||
|
||||
void fn_1_8668(omObjData* arg0) {
|
||||
s32 var_r30;
|
||||
|
||||
if (arg0->work[0] == 0) {
|
||||
BoardModelHookReset(BoardPlayerModelGet(lbl_1_bss_B6));
|
||||
BoardPlayerMotionShiftSet(lbl_1_bss_B6, 1, 0.0f, 5.0f, 0x40000001);
|
||||
arg0->func = NULL;
|
||||
lbl_1_bss_8C->func = fn_1_7928;
|
||||
BoardModelKill(lbl_1_bss_A2);
|
||||
|
||||
for (var_r30 = 0; var_r30 < 2; var_r30++) {
|
||||
BoardPlayerMotionKill(lbl_1_bss_B6, lbl_1_bss_9E[var_r30]);
|
||||
}
|
||||
return;
|
||||
}
|
||||
arg0->work[0] -= 1;
|
||||
}
|
||||
|
||||
void fn_1_8798(unkStruct* arg0, s32* arg1, s32* arg2, s32* arg3) {
|
||||
*arg1 = *arg2 = *arg3 = 0;
|
||||
if (arg0->unk_10 != 0) {
|
||||
arg0->unk_10 -= 1;
|
||||
return;
|
||||
}
|
||||
arg0->unk_10 = frandmod(0xF) + 10;
|
||||
if (arg0->unk_12 == 0) {
|
||||
*arg3 = 0x100;
|
||||
return;
|
||||
}
|
||||
arg0->unk_12 -= 1;
|
||||
if (((s32)frand() & 1) != 0) {
|
||||
*arg1 = ((frand() & 1) * 0x8C) - 0x46;
|
||||
return;
|
||||
}
|
||||
*arg2 = ((frand() & 1) * 0x8C) - 0x46;
|
||||
}
|
||||
|
||||
void* fn_1_8884(void) {
|
||||
if (lbl_1_bss_98 == NULL) {
|
||||
return NULL;
|
||||
}
|
||||
return lbl_1_bss_98->user_data;
|
||||
}
|
||||
|
||||
void fn_1_88B8(void) {
|
||||
s32 userData = (s32)lbl_1_bss_98->user_data;
|
||||
userData |= 8;
|
||||
lbl_1_bss_98->user_data = (void* ) (userData);
|
||||
|
||||
while (((u32)fn_1_8884() & 0x20) == 0) {
|
||||
HuPrcVSleep();
|
||||
}
|
||||
HuPrcKill(lbl_1_bss_98);
|
||||
lbl_1_bss_98 = NULL;
|
||||
}
|
||||
|
||||
void fn_1_896C(void) {
|
||||
Vec sp18;
|
||||
Vec spC;
|
||||
f32 sp8;
|
||||
f32 temp_f29;
|
||||
f32 var_f30;
|
||||
f32 var_f31;
|
||||
u32 temp_r30;
|
||||
s32 var_r28;
|
||||
s32 var_r31;
|
||||
s32 var_r29;
|
||||
ParticleData *var_r27;
|
||||
|
||||
temp_r30 = (u32)HuPrcCurrentGet()->user_data;
|
||||
|
||||
for (var_r31 = 0; var_r31 < 3; var_r31++) {
|
||||
var_r29 = (1 << var_r31);
|
||||
if ((temp_r30 & var_r29) != 0) {
|
||||
BoardModelAttrReset(lbl_1_bss_AA[var_r31], 0x40000002);
|
||||
if ((temp_r30 & 0x80) != 0) {
|
||||
BoardModelMotionStartEndSet(lbl_1_bss_AA[var_r31], 0, 0x28);
|
||||
BoardModelMotionTimeSet(lbl_1_bss_AA[var_r31], 0.0f);
|
||||
} else {
|
||||
BoardModelMotionStartEndSet(lbl_1_bss_AA[var_r31], 0xA, 0x28);
|
||||
BoardModelMotionTimeSet(lbl_1_bss_AA[var_r31], 10.0f);
|
||||
}
|
||||
}
|
||||
}
|
||||
if ((temp_r30 & 0x80) != 0) {
|
||||
HuPrcSleep(0x19);
|
||||
} else {
|
||||
HuPrcSleep(0xF);
|
||||
}
|
||||
spC.x = spC.y = spC.z = 0.0f;
|
||||
|
||||
for (var_r31 = 0; var_r31 < 3; var_r31++) {
|
||||
var_r29 = (1 << var_r31);
|
||||
if ((temp_r30 & var_r29) != 0) {
|
||||
BoardModelVisibilitySet(lbl_1_bss_A4[var_r31], 1);
|
||||
BoardModelScaleSetV(lbl_1_bss_A4[var_r31], &spC);
|
||||
Hu3DModelObjPosGet(BoardModelIDGet(lbl_1_bss_14[0]), lbl_1_data_330[var_r31], &sp18);
|
||||
BoardModelPosSetV(lbl_1_bss_A4[var_r31], &sp18);
|
||||
if ((temp_r30 & 0x40) != 0) {
|
||||
lbl_1_bss_7C[var_r31] = Hu3DParticleCreate(lbl_1_bss_78, 0x64);
|
||||
var_r27 = Hu3DData[lbl_1_bss_7C[var_r31]].unk_120;
|
||||
var_r27->unk_02 = lbl_1_bss_A4[var_r31];
|
||||
Hu3DParticleHookSet(lbl_1_bss_7C[var_r31], fn_1_9268);
|
||||
Hu3DParticleColSet(lbl_1_bss_7C[var_r31], 0xFF, 0xFF, 0);
|
||||
Hu3DModelPosSet(lbl_1_bss_7C[var_r31], 0.0f, 0.0f, 0.0f);
|
||||
Hu3DParticleBlendModeSet(lbl_1_bss_7C[var_r31], 1);
|
||||
Hu3DModelLayerSet(lbl_1_bss_7C[var_r31], 2);
|
||||
}
|
||||
if ((temp_r30 & 0x100) != 0) {
|
||||
lbl_1_bss_88 = HuAudFXPlay(0x35F);
|
||||
HuAudFXPlay(0x310);
|
||||
} else {
|
||||
HuAudFXPlay(0x362);
|
||||
}
|
||||
}
|
||||
}
|
||||
temp_f29 = 150.0f + sp18.y;
|
||||
sp8 = 0.0f;
|
||||
var_f31 = 12.0f;
|
||||
|
||||
loop_20:
|
||||
for (var_r28 = 0, var_r31 = 0; var_r31 < 3; var_r31++) {
|
||||
var_r29 = (1 << var_r31);
|
||||
if ((temp_r30 & var_r29) != 0) {
|
||||
var_r28++;
|
||||
sp8 += 0.1f;
|
||||
if (sp8 > 1.0f) {
|
||||
sp8 = 1.0f;
|
||||
}
|
||||
|
||||
spC.x = spC.y = spC.z = sp8;
|
||||
BoardModelScaleSetV(lbl_1_bss_A4[var_r31], (Vec* ) &sp8); //!
|
||||
BoardModelPosGet(lbl_1_bss_A4[var_r31], &sp18);
|
||||
sp18.y += var_f31;
|
||||
if (sp18.y >= temp_f29) {
|
||||
sp18.y = temp_f29;
|
||||
var_r28 -= 1;
|
||||
}
|
||||
BoardModelPosSetV(lbl_1_bss_A4[var_r31], &sp18);
|
||||
}
|
||||
}
|
||||
var_f31 *= 0.95f;
|
||||
if (var_r28 > 0) {
|
||||
HuPrcVSleep();
|
||||
goto loop_20;
|
||||
}
|
||||
spC.x = spC.y = spC.z = 1.0f;
|
||||
for (var_r31 = 0; var_r31 < 3; var_r31++) {
|
||||
var_r29 = (1 << var_r31);
|
||||
if ((temp_r30 & var_r29) != 0) {
|
||||
BoardModelScaleSetV(lbl_1_bss_A4[var_r31], &spC);
|
||||
}
|
||||
}
|
||||
temp_r30 = (u32) HuPrcCurrentGet()->user_data | 0x10;
|
||||
HuPrcCurrentGet()->user_data = (void*)temp_r30;
|
||||
var_f30 = 0.0f;
|
||||
|
||||
loop_37:
|
||||
temp_r30 = (u32) HuPrcCurrentGet()->user_data;
|
||||
if ((temp_r30 & 8) == 0) {
|
||||
for (var_r31 = 0; var_r31 < 3; var_r31++) {
|
||||
var_r29 = (1 << var_r31);
|
||||
if ((temp_r30 & var_r29) != 0) {
|
||||
BoardModelPosGet(lbl_1_bss_A4[var_r31], &sp18);
|
||||
sp18.y = (sp18.y + (0.25 * sin((M_PI * var_f30) / 180.0)));
|
||||
BoardModelPosSetV(lbl_1_bss_A4[var_r31], &sp18);
|
||||
}
|
||||
}
|
||||
var_f30 += 5.0f;
|
||||
if (var_f30 >= 360.0f) {
|
||||
var_f30 -= 360.0f;
|
||||
}
|
||||
HuPrcVSleep();
|
||||
goto loop_37;
|
||||
}
|
||||
|
||||
for (var_r31 = 0; var_r31 < 3; var_r31++) {
|
||||
BoardModelMotionStartEndSet(lbl_1_bss_AA[var_r31], 0x28, 0x46);
|
||||
}
|
||||
HuPrcSleep(0xD);
|
||||
var_f31 = -8.0f;
|
||||
loop_50:
|
||||
for (var_r28 = 0, var_r31 = 0; var_r31 < 3; var_r31++) {
|
||||
var_r29 = (1 << var_r31);
|
||||
if ((temp_r30 & var_r29) != 0) {
|
||||
var_r28++;
|
||||
sp8 -= 0.02f;
|
||||
if (sp8 < 0.0f) {
|
||||
sp8 = 0.0f;
|
||||
}
|
||||
spC.x = spC.y = spC.z = sp8;
|
||||
BoardModelScaleSetV(lbl_1_bss_A4[var_r31], (Vec* ) &sp8); //!
|
||||
BoardModelPosGet(lbl_1_bss_A4[var_r31], &sp18);
|
||||
sp18.y += var_f31;
|
||||
if (sp18.y <= (temp_f29 - 150.0f)) {
|
||||
sp18.y = temp_f29 - 150.0f;
|
||||
}
|
||||
if (BoardModelMotionTimeGet(lbl_1_bss_AA[var_r31]) >= 70.0f) {
|
||||
var_r28--;
|
||||
}
|
||||
BoardModelPosSetV(lbl_1_bss_A4[var_r31], &sp18);
|
||||
}
|
||||
}
|
||||
var_f31 *= 0.98f;
|
||||
if (var_r28 > 0) {
|
||||
HuPrcVSleep();
|
||||
goto loop_50;
|
||||
}
|
||||
|
||||
for (var_r31 = 0; var_r31 < 3; var_r31++) {
|
||||
var_r29 = (1 << var_r31);
|
||||
if ((temp_r30 & var_r29) != 0) {
|
||||
spC.x = spC.y = spC.z = 1.0f;
|
||||
BoardModelScaleSetV(lbl_1_bss_A4[var_r31], &spC);
|
||||
BoardModelVisibilitySet(lbl_1_bss_A4[var_r31], 0);
|
||||
}
|
||||
}
|
||||
temp_r30 = (u32)HuPrcCurrentGet()->user_data;
|
||||
temp_r30 |= 0x20;
|
||||
HuPrcCurrentGet()->user_data = (void*)temp_r30;
|
||||
while (1) {
|
||||
HuPrcVSleep();
|
||||
}
|
||||
}
|
||||
|
||||
void fn_1_91DC(void) {
|
||||
u32 temp_r30;
|
||||
s32 var_r29;
|
||||
s32 var_r31;
|
||||
|
||||
temp_r30 = (u32)HuPrcCurrentGet()->user_data;
|
||||
if ((temp_r30 & 0x40) != 0) {
|
||||
for (var_r31 = 0; var_r31 < 3; var_r31++) {
|
||||
var_r29 = (1 << var_r31);
|
||||
if ((temp_r30 & var_r29) != 0) {
|
||||
Hu3DModelKill(lbl_1_bss_7C[var_r31]);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void fn_1_9268(ModelData* model, ParticleData* particle, f32 (*matrix)[4]) {
|
||||
Vec sp8;
|
||||
HsfanimStruct01* var_r31;
|
||||
f32 temp_f30;
|
||||
f32 temp_f29;
|
||||
f32 temp_f31;
|
||||
s32 var_r28;
|
||||
s32 var_r29;
|
||||
|
||||
if (particle->unk_34 == 0) {
|
||||
var_r31 = particle->unk_48;
|
||||
for (var_r29 = 0; var_r29 < particle->unk_30; var_r29++, var_r31++) {
|
||||
var_r31->unk40.a = 0;
|
||||
var_r31->unk2C = 0.0f;
|
||||
}
|
||||
particle->unk_00 = 0;
|
||||
}
|
||||
BoardModelScaleGet(particle->unk_02, &sp8);
|
||||
temp_f31 = sp8.x;
|
||||
BoardModelPosGet(particle->unk_02, &sp8);
|
||||
|
||||
for (var_r29 = 0; var_r29 < 0x16; var_r29++) {
|
||||
var_r31 = particle->unk_48;
|
||||
|
||||
for (var_r28 = 0; var_r28 < particle->unk_30; var_r28++, var_r31++) {
|
||||
if (var_r31->unk2C == 0.0f) break;
|
||||
}
|
||||
if (var_r28 != particle->unk_30) {
|
||||
temp_f30 = 360.0f * (0.003921569f * (s32)(frand() & 0xFF));
|
||||
temp_f29 = temp_f31 * (20.0f + (60.0f * (0.003921569f * (s32)(frand() & 0xFF))));
|
||||
var_r31->unk34.x = sp8.x + (temp_f29 * sin((M_PI * temp_f30) / 180.0));
|
||||
var_r31->unk34.z = sp8.z + (temp_f29 * cos((M_PI * temp_f30) / 180.0));
|
||||
var_r31->unk34.y = sp8.y + (temp_f31 * (-30.0f + (40.0f * (0.003921569f * (s32)(frand() & 0xFF)))));
|
||||
var_r31->unk08.x = 0.5f + (3.0f * (0.003921569f * (s32)(frand() & 0xFF)));
|
||||
var_r31->unk08.y = 0.3f + (2.0f * (0.003921569f * (s32)(frand() & 0xFF)));
|
||||
var_r31->unk40.a = 0xB4;
|
||||
var_r31->unk2C = 15.0f * temp_f31;
|
||||
}
|
||||
}
|
||||
var_r31 = particle->unk_48;
|
||||
for (var_r29 = 0; var_r29 < particle->unk_30; var_r29++, var_r31++) {
|
||||
if (0.0f != var_r31->unk2C) {
|
||||
var_r31->unk34.y -= var_r31->unk08.x;
|
||||
var_r31->unk2C -= var_r31->unk08.y;
|
||||
if (var_r31->unk2C <= 0.0f) {
|
||||
var_r31->unk2C = 0.0f;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue