76 lines
No EOL
2 KiB
C
76 lines
No EOL
2 KiB
C
#include "dolphin.h"
|
|
#include "game/object.h"
|
|
#include "REL/w03Dll.h"
|
|
#include "game/board/main.h"
|
|
#include "game/board/model.h"
|
|
|
|
typedef struct w03UnkWorkStruct {
|
|
s16 unk_00[5];
|
|
char unk_0A[2];
|
|
f32 unk_0C;
|
|
} w03UnkWorkStruct;
|
|
|
|
extern w03State* lbl_1_bss_0;
|
|
omObjData* lbl_1_bss_138[2];
|
|
extern Process *boardObjMan;
|
|
extern s16 lbl_1_data_1E0;
|
|
|
|
void fn_1_79E0(omObjData* arg0);
|
|
|
|
char* kemuri_strings[] = {
|
|
"kemuri1", "kemuri2", "kemuri3",
|
|
"kemuri4", "kemuri5"
|
|
};
|
|
|
|
void fn_1_785C(void) {
|
|
f32 var_f31;
|
|
s32 i;
|
|
w03UnkWorkStruct* temp_r31;
|
|
char* temp_r29;
|
|
|
|
lbl_1_bss_138[0] = omAddObjEx(boardObjMan, 0x101, 0U, 0U, -1, fn_1_79E0);
|
|
temp_r31 = (w03UnkWorkStruct*)&lbl_1_bss_138[0]->work[0];
|
|
for (i = 0; i < 5; i++) {
|
|
temp_r31->unk_00[i] = BoardModelCreate(0x770008, NULL, 0);
|
|
temp_r29 = kemuri_strings[i];
|
|
if (0.0f == temp_r31->unk_0C) {
|
|
temp_r31->unk_0C = BoardModelMotionMaxTimeGet(temp_r31->unk_00[i]);
|
|
}
|
|
var_f31 = temp_r31->unk_0C * BoardRandFloat();
|
|
if (var_f31 < 1.0f) {
|
|
var_f31 = 1.0f;
|
|
}
|
|
BoardModelHookSet(lbl_1_data_1E0, temp_r29, temp_r31->unk_00[i]);
|
|
BoardModelMotionStart(temp_r31->unk_00[i], 0, 0x40000001);
|
|
BoardModelMotionTimeSet(temp_r31->unk_00[i], var_f31);
|
|
BoardModelLayerSet(temp_r31->unk_00[i], 2);
|
|
BoardModelPassSet(temp_r31->unk_00[i], 0);
|
|
}
|
|
}
|
|
|
|
void fn_1_79E0(omObjData* arg0) {
|
|
s32 var_r29;
|
|
s32 i;
|
|
w03UnkWorkStruct* temp_r30;
|
|
|
|
temp_r30 = (w03UnkWorkStruct*)&arg0->work[0];
|
|
|
|
if (BoardIsKill() != 0) {
|
|
for (i = 0; i < 5; i++) {
|
|
BoardModelKill(temp_r30->unk_00[i]);
|
|
}
|
|
lbl_1_bss_138[0] = NULL;
|
|
omDelObjEx(HuPrcCurrentGet(), arg0);
|
|
return;
|
|
}
|
|
if (lbl_1_bss_0->unk3 != 0) {
|
|
var_r29 = 0;
|
|
} else {
|
|
var_r29 = 1;
|
|
}
|
|
for (i = 0; i < 5; i++) {
|
|
BoardModelVisibilitySet(temp_r30->unk_00[i], var_r29);
|
|
}
|
|
}
|
|
|
|
char pad[4] = "\0\0\0\0"; |