match w03Dll smoke.c, add almost last matching function for bootDll main.c
This commit is contained in:
parent
eb1ae5ea18
commit
c68649cfa0
4 changed files with 153 additions and 14 deletions
83
src/REL/w03Dll/smoke.c
Normal file
83
src/REL/w03Dll/smoke.c
Normal file
|
|
@ -0,0 +1,83 @@
|
|||
#include "dolphin.h"
|
||||
#include "game/object.h"
|
||||
#include "REL/w03Dll.h"
|
||||
#include "board_unsplit.h"
|
||||
#include "game/board/main.h"
|
||||
|
||||
typedef struct w03UnkWorkStruct {
|
||||
s16 unk_00[5];
|
||||
char unk_0A[2];
|
||||
f32 unk_0C;
|
||||
} w03UnkWorkStruct;
|
||||
|
||||
extern w03State* lbl_1_bss_0;
|
||||
extern omObjData* lbl_1_bss_138;
|
||||
extern Process *boardObjMan;
|
||||
extern s16 lbl_1_data_1E0;
|
||||
|
||||
void fn_1_79E0(omObjData* arg0);
|
||||
f32 BoardModelMotionMaxTimeGet(s16);
|
||||
|
||||
char kemuri1[] = "kemuri1";
|
||||
char kemuri2[] = "kemuri2";
|
||||
char kemuri3[] = "kemuri3";
|
||||
char kemuri4[] = "kemuri4";
|
||||
char kemuri5[] = "kemuri5";
|
||||
|
||||
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 = omAddObjEx(boardObjMan, 0x101, 0U, 0U, -1, fn_1_79E0);
|
||||
temp_r31 = (w03UnkWorkStruct*)&lbl_1_bss_138->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 = 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";
|
||||
Loading…
Add table
Add a link
Reference in a new issue