Merge branch 'main' of https://github.com/abnormalhare/mp4-dtk
This commit is contained in:
commit
157df727d4
20 changed files with 2523 additions and 639 deletions
188
src/REL/m407dll/score.c
Normal file
188
src/REL/m407dll/score.c
Normal file
|
|
@ -0,0 +1,188 @@
|
|||
#include "game/process.h"
|
||||
#include "game/object.h"
|
||||
#include "game/esprite.h"
|
||||
|
||||
typedef struct unkDominationData6 {
|
||||
/* 0x00 */ s32 unk_00;
|
||||
/* 0x04 */ s32 unk_04;
|
||||
/* 0x08 */ s16 unk_08;
|
||||
/* 0x0A */ s16 unk_0A;
|
||||
/* 0x0C */ s16 unk_0C[8]; //what size is this??
|
||||
/* 0x1C */ s32 unk_1C;
|
||||
/* 0x20 */ f32 unk_20;
|
||||
} unkDominationData6; //sizeof 0x24
|
||||
|
||||
//func signatures
|
||||
void fn_1_61A0(void);
|
||||
void fn_1_6218(void);
|
||||
void fn_1_62A0(void);
|
||||
void fn_1_5FE4(omObjData* arg0);
|
||||
void fn_1_5FB4(s32 arg0);
|
||||
s16 fn_1_28D4(void);
|
||||
|
||||
//bss
|
||||
Process* lbl_1_bss_398C;
|
||||
omObjData* lbl_1_bss_3988;
|
||||
|
||||
//data
|
||||
typedef void (*ObjFuncs)(void);
|
||||
|
||||
ObjFuncs lbl_1_data_360[] = {
|
||||
fn_1_61A0,
|
||||
fn_1_6218,
|
||||
fn_1_62A0
|
||||
};
|
||||
|
||||
void fn_1_5C5C(Process* arg0, s16 arg1) {
|
||||
unkDominationData6* temp_r31;
|
||||
u32 i;
|
||||
|
||||
lbl_1_bss_398C = arg0;
|
||||
lbl_1_bss_3988 = omAddObjEx(lbl_1_bss_398C, 0x800, 0U, 0U, 7, fn_1_5FE4);
|
||||
lbl_1_bss_3988->data = HuMemDirectMallocNum(HEAP_SYSTEM, 0x24, 0x10000000U);
|
||||
temp_r31 = lbl_1_bss_3988->data;
|
||||
temp_r31->unk_08 = arg1;
|
||||
temp_r31->unk_0A = 0;
|
||||
temp_r31->unk_0C[6] = espEntry(0x260025, 2, 0);
|
||||
espTPLvlSet(temp_r31->unk_0C[6], 0.5f);
|
||||
espPosSet(temp_r31->unk_0C[6], 508.0f, 64.0f);
|
||||
temp_r31->unk_0C[7] = espEntry(0x260022, 1, 0);
|
||||
espPosSet(temp_r31->unk_0C[7], 480.0f, 56.0f);
|
||||
|
||||
for (i = 0; i < 3; i++) {
|
||||
temp_r31->unk_0C[i] = espEntry(0x26001F, 0, 0);
|
||||
espPosSet(temp_r31->unk_0C[i], i * 16 + 0x1F4, 56.0f);
|
||||
espDispOff(temp_r31->unk_0C[i]);
|
||||
}
|
||||
|
||||
for (i = 0; i < 3; i++) {
|
||||
temp_r31->unk_0C[i+3] = espEntry(0x260020, 1, 0);
|
||||
espPosSet(temp_r31->unk_0C[i+3], i * 16 + 0x1F4, 74.0f);
|
||||
}
|
||||
|
||||
for (i = 0; i < 8; i++) {
|
||||
espDispOff(temp_r31->unk_0C[i]);
|
||||
}
|
||||
|
||||
fn_1_5FB4(0);
|
||||
}
|
||||
|
||||
void fn_1_5ECC(void) {
|
||||
s32 i;
|
||||
unkDominationData6* temp_r30;
|
||||
|
||||
temp_r30 = lbl_1_bss_3988->data;
|
||||
for (i = 0; i < 7; i++) {
|
||||
espKill(temp_r30->unk_0C[i]);
|
||||
}
|
||||
|
||||
HuMemDirectFree(lbl_1_bss_3988->data);
|
||||
}
|
||||
|
||||
void fn_1_5F40(s32 arg0) {
|
||||
switch (arg0) {
|
||||
case 0:
|
||||
fn_1_5FB4(1);
|
||||
break;
|
||||
case 1:
|
||||
fn_1_5FB4(2);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void fn_1_5F90(void) {
|
||||
fn_1_5FB4(0);
|
||||
}
|
||||
|
||||
//this function is an inline for other TUs, but not this one
|
||||
void fn_1_5FB4(s32 arg0) {
|
||||
unkDominationData6* temp_r31;
|
||||
|
||||
temp_r31 = lbl_1_bss_3988->data;
|
||||
temp_r31->unk_00 = arg0;
|
||||
temp_r31->unk_04 = 0;
|
||||
}
|
||||
|
||||
void fn_1_5FE4(omObjData* arg0) {
|
||||
s16 temp_r31;
|
||||
unkDominationData6* temp_r30;
|
||||
|
||||
temp_r30 = lbl_1_bss_3988->data;
|
||||
lbl_1_data_360[temp_r30->unk_00]();
|
||||
temp_r31 = temp_r30->unk_08;
|
||||
espBankSet(temp_r30->unk_0C[0], temp_r31 / 100);
|
||||
temp_r31 = (temp_r31 - ((temp_r31 / 100) * 100));
|
||||
espBankSet(temp_r30->unk_0C[1], (temp_r31 / 10));
|
||||
temp_r31 = (temp_r31 - ((temp_r31 / 10) * 10));
|
||||
espBankSet(temp_r30->unk_0C[2], temp_r31);
|
||||
temp_r31 = temp_r30->unk_0A;
|
||||
espBankSet(temp_r30->unk_0C[3], (temp_r31 / 100));
|
||||
temp_r31 = (temp_r31 - ((temp_r31 / 100) * 100));
|
||||
espBankSet(temp_r30->unk_0C[4], (temp_r31 / 10));
|
||||
temp_r31 = (temp_r31 - ((temp_r31 / 10) * 10));
|
||||
espBankSet(temp_r30->unk_0C[5], temp_r31);
|
||||
}
|
||||
|
||||
void fn_1_61A0(void) {
|
||||
s32 i;
|
||||
unkDominationData6* temp_r31;
|
||||
|
||||
temp_r31 = lbl_1_bss_3988->data;
|
||||
|
||||
if (temp_r31->unk_04 == 0) {
|
||||
for (i = 0; i < 8; i++) {
|
||||
espDispOff(temp_r31->unk_0C[i]);
|
||||
}
|
||||
temp_r31->unk_04++;
|
||||
}
|
||||
}
|
||||
|
||||
void fn_1_6218(void) {
|
||||
s16 i;
|
||||
unkDominationData6* temp_r31;
|
||||
|
||||
temp_r31 = lbl_1_bss_3988->data;
|
||||
|
||||
if (temp_r31->unk_04 == 0) {
|
||||
for (i = 0; i < 8; i++) {
|
||||
espDispOn(temp_r31->unk_0C[i]);
|
||||
}
|
||||
temp_r31->unk_04++;
|
||||
}
|
||||
|
||||
temp_r31->unk_0A = fn_1_28D4();
|
||||
}
|
||||
|
||||
void fn_1_62A0(void) {
|
||||
s32 i;
|
||||
unkDominationData6* temp_r31;
|
||||
|
||||
temp_r31 = lbl_1_bss_3988->data;
|
||||
|
||||
if (temp_r31->unk_04 == 0) {
|
||||
temp_r31->unk_1C = 0;
|
||||
temp_r31->unk_20 = 1.0f;
|
||||
if (temp_r31->unk_0A > temp_r31->unk_08) {
|
||||
temp_r31->unk_08 = temp_r31->unk_0A;
|
||||
}
|
||||
temp_r31->unk_04++;
|
||||
}
|
||||
|
||||
if (temp_r31->unk_1C == 0) {
|
||||
if ((temp_r31->unk_20 += 0.02f) >= 1.2f) {
|
||||
temp_r31->unk_20 = 1.2f;
|
||||
temp_r31->unk_1C = 1;
|
||||
}
|
||||
} else {
|
||||
if ((temp_r31->unk_20 -= 0.04f) <= 1.0f) {
|
||||
temp_r31->unk_20 = 1.0f;
|
||||
temp_r31->unk_1C = 0;
|
||||
}
|
||||
}
|
||||
|
||||
for (i = 0; i <= 2; i++) {
|
||||
espScaleSet(temp_r31->unk_0C[i], temp_r31->unk_20, temp_r31->unk_20);
|
||||
}
|
||||
|
||||
espScaleSet(temp_r31->unk_0C[7], temp_r31->unk_20, temp_r31->unk_20);
|
||||
}
|
||||
86
src/REL/resultDll/datalist.c
Normal file
86
src/REL/resultDll/datalist.c
Normal file
|
|
@ -0,0 +1,86 @@
|
|||
#include "REL/resultdll.h"
|
||||
|
||||
s16 lbl_1_bss_1A9C[32];
|
||||
s16 lbl_1_bss_1A5C[32];
|
||||
s16 lbl_1_bss_1A1A[33];
|
||||
s16 lbl_1_bss_1A18;
|
||||
|
||||
void fn_1_8FF8(DataListModel *model_list)
|
||||
{
|
||||
DataListModel *list;
|
||||
s16 i;
|
||||
s16 model;
|
||||
s16 clear_i;
|
||||
ModelData *model_ptr;
|
||||
void *data;
|
||||
list = model_list;
|
||||
for(clear_i=0; clear_i<32; clear_i++) {
|
||||
lbl_1_bss_1A9C[clear_i] = lbl_1_bss_1A5C[clear_i] = -1;
|
||||
}
|
||||
for(i=0; list->datanum != 0xFFFFFFFF; list++, i++) {
|
||||
if(list->type == 0) {
|
||||
data = HuDataSelHeapReadNum(list->datanum, MEMORY_DEFAULT_NUM, HEAP_DATA);
|
||||
model = Hu3DModelCreate(data);
|
||||
lbl_1_bss_1A9C[i] = model;
|
||||
Hu3DModelAttrSet(model, list->attr);
|
||||
Hu3DModelPosSetV(model, &list->pos);
|
||||
Hu3DModelRotSetV(model, &list->rot);
|
||||
Hu3DModelScaleSetV(model, &list->scale);
|
||||
model_ptr = &Hu3DData[model];
|
||||
if(model_ptr->unk_08 != -1) {
|
||||
lbl_1_bss_1A5C[i] = model_ptr->unk_08;
|
||||
}
|
||||
} else if(list->type == 1) {
|
||||
data = HuDataSelHeapReadNum(list->datanum, MEMORY_DEFAULT_NUM, HEAP_DATA);
|
||||
lbl_1_bss_1A5C[i] = Hu3DJointMotion(lbl_1_bss_1A9C[list->mot_link], data);
|
||||
|
||||
}
|
||||
(void)i;
|
||||
}
|
||||
list = model_list;
|
||||
for(i=0; list->datanum != 0xFFFFFFFF; list++, i++) {
|
||||
if(list->type == 2) {
|
||||
model = Hu3DModelLink(lbl_1_bss_1A9C[list->link]);
|
||||
lbl_1_bss_1A9C[i] = model;
|
||||
Hu3DModelAttrSet(model, list->attr);
|
||||
Hu3DModelPosSetV(model, &list->pos);
|
||||
Hu3DModelRotSetV(model, &list->rot);
|
||||
Hu3DModelScaleSetV(model, &list->scale);
|
||||
}
|
||||
if(list->mot_link != -1) {
|
||||
Hu3DMotionSet(lbl_1_bss_1A9C[i], lbl_1_bss_1A5C[list->mot_link]);
|
||||
}
|
||||
(void)i;
|
||||
}
|
||||
}
|
||||
|
||||
void fn_1_927C(DataListSprite *sprite_list)
|
||||
{
|
||||
DataListSprite *list;
|
||||
s16 sprite;
|
||||
s16 clear_i;
|
||||
s16 i;
|
||||
list = sprite_list;
|
||||
for(clear_i=0; clear_i<32; clear_i++) {
|
||||
lbl_1_bss_1A1A[clear_i] = -1;
|
||||
}
|
||||
for(i=0; list->datanum; i++, list++) {
|
||||
sprite = espEntry(list->datanum, 100, 0);
|
||||
lbl_1_bss_1A1A[i] = sprite;
|
||||
espPosSet(sprite, list->x, list->y);
|
||||
espColorSet(sprite, list->color.r, list->color.g, list->color.b);
|
||||
espTPLvlSet(sprite, list->color.a/255.0f);
|
||||
espPriSet(sprite, list->prio);
|
||||
espAttrSet(sprite, list->attr);
|
||||
}
|
||||
}
|
||||
|
||||
void fn_1_93B4(void)
|
||||
{
|
||||
s16 i;
|
||||
for(i=0; i<32; i++) {
|
||||
if(lbl_1_bss_1A1A[i] != -1) {
|
||||
espKill(lbl_1_bss_1A1A[i]);
|
||||
}
|
||||
}
|
||||
}
|
||||
File diff suppressed because it is too large
Load diff
403
src/REL/w06Dll/bridge.c
Executable file
403
src/REL/w06Dll/bridge.c
Executable file
|
|
@ -0,0 +1,403 @@
|
|||
#include "REL/w06Dll.h"
|
||||
#include "game/audio.h"
|
||||
#include "game/data.h"
|
||||
#include "game/gamework_data.h"
|
||||
#include "game/object.h"
|
||||
#include "game/objsub.h"
|
||||
#include "game/process.h"
|
||||
#include "game/window.h"
|
||||
#include "game/board/main.h"
|
||||
#include "game/board/model.h"
|
||||
#include "game/board/player.h"
|
||||
#include "game/board/space.h"
|
||||
#include "game/board/window.h"
|
||||
|
||||
#include "dolphin.h"
|
||||
#include "math.h"
|
||||
|
||||
typedef struct {
|
||||
struct {
|
||||
u8 unk00_field0 : 1;
|
||||
u8 unk00_field1 : 1;
|
||||
u8 unk00_field2 : 1;
|
||||
u8 unk00_field3 : 1;
|
||||
u8 unk00_field4 : 1;
|
||||
};
|
||||
u8 unk01;
|
||||
s8 unk02;
|
||||
s8 unk03;
|
||||
s16 unk04;
|
||||
char unk06[2];
|
||||
float unk08;
|
||||
} BssCCWork;
|
||||
|
||||
static void fn_1_8320(void);
|
||||
static void fn_1_8420(void);
|
||||
static s32 fn_1_8490(s32 arg0, s8 arg1);
|
||||
static void fn_1_8A58(omObjData *arg0);
|
||||
|
||||
static s8 lbl_1_bss_E6;
|
||||
static s16 lbl_1_bss_E4;
|
||||
static s16 lbl_1_bss_E2;
|
||||
static s16 lbl_1_bss_D6[3][2];
|
||||
static s16 lbl_1_bss_D0[3];
|
||||
static omObjData *lbl_1_bss_CC;
|
||||
static Process *lbl_1_bss_C8;
|
||||
|
||||
static s16 lbl_1_data_418 = -1;
|
||||
|
||||
static float lbl_1_data_41C[][2] = {
|
||||
{ 90.0f, 180.0f },
|
||||
{ -90.0f, 0.0f },
|
||||
{ 180.0f, 0.0f }
|
||||
};
|
||||
|
||||
static s32 lbl_1_data_434[][2] = {
|
||||
{ 0x00000200, 0x00000100 },
|
||||
{ 0x00000080, 0x00000040 },
|
||||
{ 0x00000800, 0x00000400 }
|
||||
};
|
||||
|
||||
static s32 lbl_1_data_44C[] = {
|
||||
DATA_MAKE_NUM(DATADIR_W06, 3),
|
||||
DATA_MAKE_NUM(DATADIR_W06, 3),
|
||||
DATA_MAKE_NUM(DATADIR_W06, 4)
|
||||
};
|
||||
|
||||
static s32 lbl_1_data_458[8] = {
|
||||
DATA_MAKE_NUM(DATADIR_MARIOMOT, 26),
|
||||
DATA_MAKE_NUM(DATADIR_LUIGIMOT, 26),
|
||||
DATA_MAKE_NUM(DATADIR_PEACHMOT, 26),
|
||||
DATA_MAKE_NUM(DATADIR_YOSHIMOT, 26),
|
||||
DATA_MAKE_NUM(DATADIR_WARIOMOT, 26),
|
||||
DATA_MAKE_NUM(DATADIR_DONKEYMOT, 26),
|
||||
DATA_MAKE_NUM(DATADIR_DAISYMOT, 26),
|
||||
DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 26),
|
||||
};
|
||||
|
||||
static s32 lbl_1_data_478[8] = {
|
||||
DATA_MAKE_NUM(DATADIR_W06, 30),
|
||||
DATA_MAKE_NUM(DATADIR_W06, 31),
|
||||
DATA_MAKE_NUM(DATADIR_W06, 32),
|
||||
DATA_MAKE_NUM(DATADIR_W06, 33),
|
||||
DATA_MAKE_NUM(DATADIR_W06, 34),
|
||||
DATA_MAKE_NUM(DATADIR_W06, 35),
|
||||
DATA_MAKE_NUM(DATADIR_W06, 36),
|
||||
DATA_MAKE_NUM(DATADIR_W06, 37)
|
||||
};
|
||||
|
||||
void fn_1_7BB0(void) {
|
||||
Vec sp8;
|
||||
float var_f29;
|
||||
BoardSpace *var_r26;
|
||||
s16 temp_r27;
|
||||
s32 var_r28;
|
||||
s32 i;
|
||||
|
||||
if (GWSystem.star_pos < 4) {
|
||||
lbl_1_bss_0->unk00_field2 = 0;
|
||||
} else {
|
||||
lbl_1_bss_0->unk00_field2 = 1;
|
||||
}
|
||||
for (i = 0; i < 3; i++) {
|
||||
lbl_1_bss_D0[i] = BoardModelCreate(lbl_1_data_44C[i], NULL, 0);
|
||||
switch (i) {
|
||||
case 0:
|
||||
var_r28 = (lbl_1_bss_0->unk00_field0 != 0) ? 1 : 0;
|
||||
OSs8tof32(&lbl_1_bss_0->unk01, &var_f29);
|
||||
break;
|
||||
case 1:
|
||||
var_r28 = (lbl_1_bss_0->unk00_field1 != 0) ? 1 : 0;
|
||||
OSs8tof32(&lbl_1_bss_0->unk02, &var_f29);
|
||||
break;
|
||||
case 2:
|
||||
var_r28 = (lbl_1_bss_0->unk00_field2 != 0) ? 1 : 0;
|
||||
var_f29 = 0.0f;
|
||||
break;
|
||||
}
|
||||
temp_r27 = BoardSpaceFlagPosGet(0, lbl_1_data_434[i][var_r28], &sp8);
|
||||
BoardModelPosSetV(lbl_1_bss_D0[i], &sp8);
|
||||
BoardModelRotYSet(lbl_1_bss_D0[i], lbl_1_data_41C[i][var_r28]);
|
||||
BoardModelMotionShiftSet(lbl_1_bss_D0[i], 0, 60.0f * var_f29, 0.0f, 0);
|
||||
HuPrcSleep(2);
|
||||
BoardModelMotionSpeedSet(lbl_1_bss_D0[i], 0.0f);
|
||||
lbl_1_bss_D6[i][var_r28] = temp_r27;
|
||||
temp_r27 = BoardSpaceFlagSearch(0, lbl_1_data_434[i][var_r28 ^ 1]);
|
||||
var_r26 = BoardSpaceGet(0, temp_r27);
|
||||
var_r26->flag |= 0x04000000;
|
||||
lbl_1_bss_D6[i][var_r28 ^ 1] = temp_r27;
|
||||
}
|
||||
}
|
||||
|
||||
void fn_1_7F3C(void) {
|
||||
s32 i;
|
||||
|
||||
for (i = 0; i < 3; i++) {
|
||||
BoardModelKill(lbl_1_bss_D0[i]);
|
||||
lbl_1_bss_D0[i] = -1;
|
||||
}
|
||||
}
|
||||
|
||||
void fn_1_7FA4(void) {
|
||||
Vec sp8;
|
||||
float temp_f31;
|
||||
BoardSpace *temp_r3;
|
||||
s16 temp_r30;
|
||||
s16 temp_r29;
|
||||
s16 var_r31;
|
||||
|
||||
if (GWSystem.star_pos < 4) {
|
||||
lbl_1_bss_0->unk00_field2 = 0;
|
||||
} else {
|
||||
lbl_1_bss_0->unk00_field2 = 1;
|
||||
}
|
||||
var_r31 = 2;
|
||||
temp_r30 = (lbl_1_bss_0->unk00_field2 != 0) ? 1 : 0;
|
||||
temp_f31 = 0.0f;
|
||||
temp_r29 = BoardSpaceFlagPosGet(0, lbl_1_data_434[var_r31][temp_r30], &sp8);
|
||||
BoardModelPosSetV(lbl_1_bss_D0[var_r31], &sp8);
|
||||
BoardModelRotYSet(lbl_1_bss_D0[var_r31], lbl_1_data_41C[var_r31][temp_r30]);
|
||||
BoardModelMotionShiftSet(lbl_1_bss_D0[var_r31], 0, 60.0f * temp_f31, 0.0f, 0);
|
||||
HuPrcSleep(2);
|
||||
BoardModelMotionSpeedSet(lbl_1_bss_D0[var_r31], 0.0f);
|
||||
lbl_1_bss_D6[var_r31][temp_r30] = temp_r29;
|
||||
temp_r29 = BoardSpaceFlagSearch(0, lbl_1_data_434[var_r31][temp_r30]);
|
||||
temp_r3 = BoardSpaceGet(0, temp_r29);
|
||||
temp_r3->flag &= ~0x04000000;
|
||||
temp_r29 = BoardSpaceFlagSearch(0, lbl_1_data_434[var_r31][temp_r30 ^ 1]);
|
||||
temp_r3 = BoardSpaceGet(0, temp_r29);
|
||||
temp_r3->flag |= 0x04000000;
|
||||
lbl_1_bss_D6[var_r31][temp_r30 ^ 1] = temp_r29;
|
||||
}
|
||||
|
||||
void fn_1_8264(s32 arg0, s16 arg1) {
|
||||
BoardDiceDigit2DShowSet(0);
|
||||
lbl_1_bss_E6 = arg0;
|
||||
lbl_1_bss_E4 = arg1;
|
||||
lbl_1_bss_C8 = HuPrcChildCreate(fn_1_8320, 0x2003, 0x3800, 0, boardMainProc);
|
||||
HuPrcDestructorSet2(lbl_1_bss_C8, fn_1_8420);
|
||||
while (lbl_1_bss_C8) {
|
||||
HuPrcVSleep();
|
||||
}
|
||||
BoardDiceDigit2DShowSet(1);
|
||||
}
|
||||
|
||||
static void fn_1_8320(void) {
|
||||
s32 temp_r30;
|
||||
s8 *var_r31;
|
||||
BoardSpace *var_r29;
|
||||
|
||||
temp_r30 = GWSystem.player_curr;
|
||||
if (lbl_1_bss_E6 != 0) {
|
||||
var_r31 = &lbl_1_bss_0->unk02;
|
||||
} else {
|
||||
var_r31 = &lbl_1_bss_0->unk01;
|
||||
}
|
||||
var_r29 = BoardSpaceGet(0, lbl_1_bss_E4);
|
||||
lbl_1_bss_E2 = var_r29->link[0];
|
||||
GWPlayer[temp_r30].space_curr = lbl_1_bss_E2;
|
||||
fn_1_8490(temp_r30, *var_r31);
|
||||
(*var_r31)++;
|
||||
if (*var_r31 >= 3) {
|
||||
*var_r31 = 0;
|
||||
}
|
||||
HuPrcEnd();
|
||||
}
|
||||
|
||||
static void fn_1_8420(void) {
|
||||
if (lbl_1_data_418 != -1) {
|
||||
BoardPlayerMotionKill(GWSystem.player_curr, lbl_1_data_418);
|
||||
lbl_1_data_418 = -1;
|
||||
}
|
||||
lbl_1_bss_C8 = NULL;
|
||||
}
|
||||
|
||||
static s32 fn_1_8490(s32 arg0, s8 arg1) {
|
||||
Vec sp24;
|
||||
Vec sp18;
|
||||
Vec spC;
|
||||
float temp_f30;
|
||||
float var_f29;
|
||||
float var_f28;
|
||||
s32 temp_r27;
|
||||
omObjData *var_r26;
|
||||
BssCCWork *temp_r29;
|
||||
s8 var_r28;
|
||||
|
||||
BoardPlayerPosGet(arg0, &sp18);
|
||||
BoardSpacePosGet(0, lbl_1_bss_E2, &sp24);
|
||||
PSVECSubtract(&sp24, &sp18, &spC);
|
||||
temp_f30 = 180.0 * (atan2(spC.x, spC.z) / M_PI);
|
||||
BoardPlayerMotBlendSet(arg0, temp_f30, 0xF);
|
||||
while (!BoardPlayerMotBlendCheck(arg0)) {
|
||||
HuPrcVSleep();
|
||||
}
|
||||
BoardPlayerIdleSet(arg0);
|
||||
HuPrcSleep(11);
|
||||
temp_r27 = GWPlayer[arg0].character;
|
||||
switch (arg1) {
|
||||
case 0:
|
||||
lbl_1_data_418 = -1;
|
||||
var_f29 = 60.0f;
|
||||
var_f28 = 1.0f;
|
||||
break;
|
||||
case 1:
|
||||
lbl_1_data_418 = BoardPlayerMotionCreate(arg0, lbl_1_data_478[temp_r27]);
|
||||
var_f29 = 50.0f;
|
||||
var_f28 = 2.5f;
|
||||
if (GWPlayer[arg0].bowser_suit) {
|
||||
BoardPlayerIdleSet(arg0);
|
||||
HuPrcSleep(30);
|
||||
} else {
|
||||
BoardPlayerMotionShiftSet(arg0, lbl_1_data_418, 0.0f, 6.0f, 0);
|
||||
BoardPlayerMotionSpeedSet(arg0, 1.5f);
|
||||
HuPrcSleep(60);
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
lbl_1_data_418 = BoardPlayerMotionCreate(arg0, lbl_1_data_458[temp_r27]);
|
||||
var_f29 = 40.0f;
|
||||
var_f28 = 2.0f;
|
||||
if (GWPlayer[arg0].bowser_suit) {
|
||||
BoardPlayerIdleSet(arg0);
|
||||
HuPrcSleep(30);
|
||||
} else {
|
||||
BoardPlayerMotionShiftSet(arg0, lbl_1_data_418, 0.0f, 6.0f, 0x40000001);
|
||||
BoardPlayerMotionSpeedSet(arg0, 3.0f);
|
||||
HuPrcSleep(60);
|
||||
}
|
||||
break;
|
||||
}
|
||||
var_r26 = omAddObjEx(boardObjMan, 0x101, 0, 0, -1, fn_1_8A58);
|
||||
lbl_1_bss_CC = var_r26;
|
||||
temp_r29 = OM_GET_WORK_PTR(var_r26, BssCCWork);
|
||||
temp_r29->unk00_field0 = 0;
|
||||
temp_r29->unk00_field1 = 0;
|
||||
temp_r29->unk00_field2 = 0;
|
||||
temp_r29->unk00_field3 = 0;
|
||||
temp_r29->unk00_field4 = 0;
|
||||
temp_r29->unk01 = 0;
|
||||
temp_r29->unk03 = arg1;
|
||||
temp_r29->unk02 = 0;
|
||||
temp_r29->unk04 = lbl_1_bss_D0[lbl_1_bss_E6];
|
||||
OSs8tof32(&arg1, &temp_r29->unk08);
|
||||
temp_r29->unk08 = 60.0f * (temp_r29->unk08 + 1.0f);
|
||||
BoardPlayerPosLerpStart(arg0, &sp18, &sp24, var_f29);
|
||||
BoardPlayerMotionSpeedSet(arg0, var_f28);
|
||||
for (var_r28 = 0; GWPlayer[arg0].moving; var_r28++) {
|
||||
if (!(var_r28 & 0xF)) {
|
||||
omVibrate(arg0, 12, 6, 6);
|
||||
}
|
||||
HuPrcVSleep();
|
||||
}
|
||||
temp_f30 -= 180.0f;
|
||||
BoardPlayerMotBlendSet(arg0, temp_f30, 0xF);
|
||||
while (!BoardPlayerMotBlendCheck(arg0)) {
|
||||
HuPrcVSleep();
|
||||
}
|
||||
while (lbl_1_bss_CC) {
|
||||
HuPrcVSleep();
|
||||
}
|
||||
HuPrcSleep(30);
|
||||
if (arg1 == 2) {
|
||||
BoardWinCreate(0, MAKE_MESSID(48, 40), -1);
|
||||
BoardWinWait();
|
||||
BoardWinKill();
|
||||
}
|
||||
BoardCameraTargetPlayerSet(arg0);
|
||||
BoardCameraViewSet(1);
|
||||
temp_f30 += 180.0f;
|
||||
BoardPlayerMotBlendSet(arg0, temp_f30, 0xF);
|
||||
while (!BoardPlayerMotBlendCheck(arg0)) {
|
||||
HuPrcVSleep();
|
||||
}
|
||||
BoardCameraMotionWait();
|
||||
if (arg1 == 1) {
|
||||
BoardWinCreate(0, MAKE_MESSID(48, 15), -1);
|
||||
BoardWinWait();
|
||||
BoardWinKill();
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void fn_1_8A58(omObjData *arg0) {
|
||||
Vec sp8;
|
||||
u8 var_r30;
|
||||
BoardSpace *var_r29;
|
||||
BssCCWork *temp_r31;
|
||||
|
||||
temp_r31 = OM_GET_WORK_PTR(arg0, BssCCWork);
|
||||
if (temp_r31->unk00_field0 != 0 || BoardIsKill()) {
|
||||
lbl_1_bss_CC = NULL;
|
||||
omDelObjEx(HuPrcCurrentGet(), arg0);
|
||||
return;
|
||||
}
|
||||
if (temp_r31->unk01 != 0) {
|
||||
temp_r31->unk01--;
|
||||
return;
|
||||
}
|
||||
if (temp_r31->unk00_field1 != 0 && temp_r31->unk00_field4 == 0) {
|
||||
BoardModelMotionStart(temp_r31->unk04, 0, 0);
|
||||
BoardModelMotionTimeSet(temp_r31->unk04, temp_r31->unk08 - 60.0f);
|
||||
BoardModelMotionSpeedSet(temp_r31->unk04, 1.0f);
|
||||
temp_r31->unk00_field4 = 1;
|
||||
}
|
||||
if (temp_r31->unk00_field2 != 0) {
|
||||
HuAudFXPlay(0x49C);
|
||||
temp_r31->unk00_field2 = 0;
|
||||
}
|
||||
if (temp_r31->unk00_field3 != 0) {
|
||||
HuAudFXPlay(0x49D);
|
||||
temp_r31->unk00_field3 = 0;
|
||||
}
|
||||
switch (temp_r31->unk02) {
|
||||
case 0:
|
||||
if (temp_r31->unk00_field1 == 0) {
|
||||
if (GWPlayer[GWSystem.player_curr].bowser_suit != 0) {
|
||||
temp_r31->unk01 = 72;
|
||||
} else {
|
||||
temp_r31->unk01 = 30;
|
||||
}
|
||||
temp_r31->unk00_field2 = 1;
|
||||
temp_r31->unk00_field1 = 1;
|
||||
break;
|
||||
}
|
||||
if (BoardModelMotionTimeGet(temp_r31->unk04) >= temp_r31->unk08) {
|
||||
BoardModelMotionTimeSet(temp_r31->unk04, temp_r31->unk08);
|
||||
BoardModelMotionSpeedSet(temp_r31->unk04, 0.0f);
|
||||
if (temp_r31->unk03 == 2) {
|
||||
temp_r31->unk01 = 30;
|
||||
temp_r31->unk02 = 1;
|
||||
temp_r31->unk00_field3 = 1;
|
||||
} else {
|
||||
temp_r31->unk00_field0 = 1;
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 1:
|
||||
if (lbl_1_bss_E6 == 0) {
|
||||
var_r30 = lbl_1_bss_0->unk00_field0;
|
||||
lbl_1_bss_0->unk00_field0 ^= 1;
|
||||
} else {
|
||||
var_r30 = lbl_1_bss_0->unk00_field1;
|
||||
lbl_1_bss_0->unk00_field1 ^= 1;
|
||||
}
|
||||
var_r29 = BoardSpaceGet(0, lbl_1_bss_D6[lbl_1_bss_E6][var_r30]);
|
||||
var_r29->flag |= 0x04000000;
|
||||
var_r29 = BoardSpaceGet(0, lbl_1_bss_D6[lbl_1_bss_E6][var_r30 ^ 1]);
|
||||
var_r29->flag &= ~0x04000000;
|
||||
BoardSpacePosGet(0, lbl_1_bss_D6[lbl_1_bss_E6][var_r30 ^ 1], &sp8);
|
||||
BoardModelMotionStart(temp_r31->unk04, 0, 0);
|
||||
BoardModelMotionTimeSet(temp_r31->unk04, 180.0f);
|
||||
BoardModelPosSetV(temp_r31->unk04, &sp8);
|
||||
BoardModelRotYSet(temp_r31->unk04, lbl_1_data_41C[lbl_1_bss_E6][var_r30 ^ 1]);
|
||||
BoardCameraTargetModelSet(temp_r31->unk04);
|
||||
temp_r31->unk02 = 2;
|
||||
break;
|
||||
case 2:
|
||||
if (BoardModelMotionEndCheck(temp_r31->unk04) && BoardCameraMotionIsDone()) {
|
||||
temp_r31->unk00_field0 = 1;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
366
src/REL/w06Dll/fire.c
Executable file
366
src/REL/w06Dll/fire.c
Executable file
|
|
@ -0,0 +1,366 @@
|
|||
#include "REL/w06Dll.h"
|
||||
#include "game/audio.h"
|
||||
#include "game/data.h"
|
||||
#include "game/gamework_data.h"
|
||||
#include "game/objsub.h"
|
||||
#include "game/process.h"
|
||||
#include "game/window.h"
|
||||
#include "game/board/main.h"
|
||||
#include "game/board/model.h"
|
||||
#include "game/board/player.h"
|
||||
#include "game/board/space.h"
|
||||
#include "game/board/window.h"
|
||||
|
||||
#include "dolphin.h"
|
||||
#include "math.h"
|
||||
|
||||
static void fn_1_6F80(void);
|
||||
static void fn_1_7210(void);
|
||||
static s32 fn_1_72A4(void);
|
||||
static void fn_1_72CC(s32 arg0);
|
||||
static void fn_1_73EC(float arg0);
|
||||
static void fn_1_74BC(s32 arg0);
|
||||
static void fn_1_7574(void);
|
||||
static void fn_1_7674(s32 arg0);
|
||||
static void fn_1_7760(s32 arg0);
|
||||
static s32 fn_1_7944(s32 arg0);
|
||||
|
||||
static s8 lbl_1_bss_C6;
|
||||
static s8 lbl_1_bss_C2[4];
|
||||
static s16 lbl_1_bss_C0;
|
||||
static s32 lbl_1_bss_BC;
|
||||
static s32 lbl_1_bss_B8;
|
||||
static u8 lbl_1_bss_94_gap[0x24];
|
||||
static Process *lbl_1_bss_90;
|
||||
|
||||
static s32 lbl_1_data_208[8] = {
|
||||
0x00000123,
|
||||
0x00000163,
|
||||
0x000001A3,
|
||||
0x000001E3,
|
||||
0x00000223,
|
||||
0x00000263,
|
||||
0x000002A3,
|
||||
0x000002E3
|
||||
};
|
||||
|
||||
static s8 lbl_1_data_228 = -1;
|
||||
static s16 lbl_1_data_22A = -1;
|
||||
static s16 lbl_1_data_22C = -1;
|
||||
static s16 lbl_1_data_22E = -1;
|
||||
|
||||
static s32 lbl_1_data_230[] = {
|
||||
MAKE_MESSID(8, 14),
|
||||
MAKE_MESSID(8, 15),
|
||||
MAKE_MESSID(8, 16),
|
||||
MAKE_MESSID(8, 17),
|
||||
MAKE_MESSID(8, 18),
|
||||
MAKE_MESSID(8, 19),
|
||||
MAKE_MESSID(8, 20),
|
||||
MAKE_MESSID(8, 21),
|
||||
MAKE_MESSID(8, 22),
|
||||
MAKE_MESSID(8, 23),
|
||||
MAKE_MESSID(8, 24),
|
||||
MAKE_MESSID(8, 25),
|
||||
MAKE_MESSID(8, 26),
|
||||
MAKE_MESSID(8, 27)
|
||||
};
|
||||
|
||||
void fn_1_6EF0(void) {
|
||||
BoardDiceDigit2DShowSet(0);
|
||||
lbl_1_bss_90 = HuPrcChildCreate(fn_1_6F80, 0x2003, 0x3800, 0, boardMainProc);
|
||||
HuPrcDestructorSet2(lbl_1_bss_90, fn_1_7210);
|
||||
while (lbl_1_bss_90) {
|
||||
HuPrcVSleep();
|
||||
}
|
||||
BoardDiceDigit2DShowSet(1);
|
||||
}
|
||||
|
||||
static void fn_1_6F80(void) {
|
||||
s32 temp_r31;
|
||||
s32 sp8;
|
||||
|
||||
lbl_1_bss_B8 = -1;
|
||||
temp_r31 = GWSystem.player_curr;
|
||||
sp8 = GWPlayer[temp_r31].space_curr;
|
||||
if (BoardSpaceFlagGet(0, GWPlayer[temp_r31].space_curr) & 0x2000) {
|
||||
lbl_1_bss_C6 = 0;
|
||||
lbl_1_bss_C0 = lbl_1_bss_C[2];
|
||||
lbl_1_bss_BC = 0x4A6;
|
||||
} else {
|
||||
lbl_1_bss_C6 = 1;
|
||||
lbl_1_bss_C0 = lbl_1_bss_C[3];
|
||||
lbl_1_bss_BC = 0x49B;
|
||||
}
|
||||
fn_1_72CC(temp_r31);
|
||||
fn_1_7760(temp_r31);
|
||||
BoardCameraMotionWait();
|
||||
BoardModelMotionShiftSet(lbl_1_bss_C0, 0, 0.0f, 8.0f, 0x40000001);
|
||||
HuPrcSleep(8);
|
||||
while (BoardModelMotionTimeGet(lbl_1_bss_C0) < 22.0f) {
|
||||
HuPrcVSleep();
|
||||
}
|
||||
fn_1_7674(temp_r31);
|
||||
BoardModelMotionStartEndSet(lbl_1_bss_C0, 30, 60);
|
||||
lbl_1_data_228 = 2;
|
||||
HuPrcSleep(30);
|
||||
fn_1_74BC(1);
|
||||
while (!BoardModelMotionEndCheck(lbl_1_data_22C)) {
|
||||
HuPrcVSleep();
|
||||
}
|
||||
lbl_1_data_228 = 3;
|
||||
BoardModelHookReset(lbl_1_bss_C0);
|
||||
if (lbl_1_bss_B8 != -1) {
|
||||
HuAudFXStop(lbl_1_bss_B8);
|
||||
}
|
||||
BoardModelMotionShiftSet(lbl_1_bss_C0, 0, 60.0f, 8.0f, 0);
|
||||
fn_1_73EC(0.0f);
|
||||
fn_1_7574();
|
||||
while (!BoardModelMotionEndCheck(lbl_1_bss_C0)) {
|
||||
HuPrcVSleep();
|
||||
}
|
||||
BoardPlayerPostTurnHookSet(temp_r31, fn_1_72A4);
|
||||
HuPrcEnd();
|
||||
}
|
||||
|
||||
static void fn_1_7210(void) {
|
||||
if (lbl_1_data_22C != -1) {
|
||||
BoardModelKill(lbl_1_data_22C);
|
||||
lbl_1_data_22C = -1;
|
||||
}
|
||||
if (lbl_1_data_22A != -1) {
|
||||
BoardModelKill(lbl_1_data_22A);
|
||||
lbl_1_data_22A = -1;
|
||||
}
|
||||
lbl_1_bss_90 = NULL;
|
||||
}
|
||||
|
||||
static s32 fn_1_72A4(void) {
|
||||
fn_1_74BC(0);
|
||||
return 1;
|
||||
}
|
||||
|
||||
static void fn_1_72CC(s32 arg0) {
|
||||
Vec sp24;
|
||||
Vec sp18;
|
||||
Vec spC;
|
||||
s32 var_r30;
|
||||
s32 i;
|
||||
|
||||
if (lbl_1_bss_C6 == 0) {
|
||||
var_r30 = 0x2000;
|
||||
} else {
|
||||
var_r30 = 0x1000;
|
||||
}
|
||||
BoardPlayerPosGet(arg0, &sp18);
|
||||
BoardModelPosGet(lbl_1_bss_C0, &sp24);
|
||||
PSVECSubtract(&sp24, &sp18, &spC);
|
||||
for (i = 0; i < 4; i++) {
|
||||
if (var_r30 & BoardSpaceFlagGet(0, GWPlayer[i].space_curr)) {
|
||||
lbl_1_bss_C2[i] = 1;
|
||||
} else {
|
||||
lbl_1_bss_C2[i] = 0;
|
||||
}
|
||||
}
|
||||
fn_1_73EC(180.0 * (atan2(spC.x, spC.z) / M_PI));
|
||||
}
|
||||
|
||||
static void fn_1_73EC(float arg0) {
|
||||
s32 var_r30;
|
||||
s32 i;
|
||||
|
||||
for (i = 0; i < 4; i++) {
|
||||
if (lbl_1_bss_C2[i] != 0) {
|
||||
BoardPlayerMotBlendSet(i, arg0, 15);
|
||||
}
|
||||
}
|
||||
do {
|
||||
var_r30 = 0;
|
||||
for (i = 0; i < 4; i++) {
|
||||
if (lbl_1_bss_C2[i] != 0 && !BoardPlayerMotBlendCheck(i)) {
|
||||
var_r30 = 1;
|
||||
}
|
||||
}
|
||||
HuPrcVSleep();
|
||||
} while (var_r30 != 0);
|
||||
}
|
||||
|
||||
static void fn_1_74BC(s32 arg0) {
|
||||
s32 i;
|
||||
|
||||
for (i = 0; i < 4; i++) {
|
||||
if (lbl_1_bss_C2[i] == 0) {
|
||||
continue;
|
||||
}
|
||||
if (arg0 != 0) {
|
||||
omVibrate(i, 12, 4, 2);
|
||||
HuAudFXPlay(lbl_1_data_208[GWPlayer[i].character]);
|
||||
}
|
||||
BoardPlayerCopyEyeMat(i, arg0);
|
||||
}
|
||||
}
|
||||
|
||||
static void fn_1_7574(void) {
|
||||
s32 temp_r3;
|
||||
s32 temp_r29;
|
||||
s32 temp_r28;
|
||||
s32 i;
|
||||
|
||||
for (i = 0; i < 4; i++) {
|
||||
if (lbl_1_bss_C2[i] == 0) {
|
||||
continue;
|
||||
}
|
||||
temp_r3 = fn_1_7944(i);
|
||||
if (temp_r3 != -1) {
|
||||
temp_r29 = GWPlayer[i].items[temp_r3];
|
||||
BoardPlayerItemRemove(i, temp_r3);
|
||||
temp_r28 = BoardPlayerGetCharMess(i);
|
||||
BoardWinCreate(0, MAKE_MESSID(48, 16), -1);
|
||||
BoardWinInsertMesSet(temp_r28, 0);
|
||||
BoardWinInsertMesSet(lbl_1_data_230[temp_r29], 1);
|
||||
BoardWinPlayerSet(i);
|
||||
BoardWinWait();
|
||||
BoardWinKill();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static void fn_1_7674(s32 arg0) {
|
||||
Vec sp8;
|
||||
float var_f31;
|
||||
|
||||
if (lbl_1_bss_C6 == 0) {
|
||||
var_f31 = -90.0f;
|
||||
} else {
|
||||
var_f31 = 90.0f;
|
||||
}
|
||||
lbl_1_data_22C = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W06, 15), NULL, 0);
|
||||
BoardModelPosGet(lbl_1_bss_C0, &sp8);
|
||||
BoardModelMotionStart(lbl_1_data_22C, 0, 0);
|
||||
BoardModelHookSet(lbl_1_bss_C0, "fire", lbl_1_data_22C);
|
||||
lbl_1_bss_B8 = HuAudFXPlay(lbl_1_bss_BC);
|
||||
}
|
||||
|
||||
static void fn_1_7760(s32 arg0) {
|
||||
Vec sp2C;
|
||||
Vec sp20;
|
||||
Vec sp14;
|
||||
Vec sp8;
|
||||
u32 var_r30;
|
||||
u32 var_r28;
|
||||
s16 var_r29;
|
||||
s32 i;
|
||||
|
||||
if (lbl_1_bss_C6 == 0) {
|
||||
var_r30 = 0x6000;
|
||||
} else {
|
||||
var_r30 = 0x5000;
|
||||
}
|
||||
for (var_r29 = i = 0; i < BoardSpaceCountGet(0); i++) {
|
||||
var_r28 = BoardSpaceFlagGet(0, i + 1);
|
||||
if (var_r30 == (var_r28 & var_r30)) {
|
||||
var_r29 = i + 1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
BoardModelPosGet(lbl_1_bss_C0, &sp20);
|
||||
BoardSpacePosGet(0, var_r29, &sp2C);
|
||||
PSVECSubtract(&sp2C, &sp20, &sp8);
|
||||
sp8.x *= 0.4f;
|
||||
sp8.y *= 0.4f;
|
||||
sp8.z *= 0.4f;
|
||||
PSVECAdd(&sp20, &sp8, &sp2C);
|
||||
lbl_1_data_22A = BoardModelCreate(DATA_MAKE_NUM(DATADIR_BOARD, 10), NULL, 0);
|
||||
BoardModelVisibilitySet(lbl_1_data_22A, 0);
|
||||
BoardModelPosSetV(lbl_1_data_22A, &sp2C);
|
||||
sp14.x = 0.0f;
|
||||
sp14.y = 200.0f;
|
||||
sp14.z = 0.0f;
|
||||
BoardCameraMotionStartEx(lbl_1_data_22A, 0, &sp14, 2500.0f, -1.0f, 21);
|
||||
BoardCameraMotionWait();
|
||||
}
|
||||
|
||||
static s8 lbl_1_data_26D[] = {
|
||||
0, 0, 1, 1, 0,
|
||||
0, 1, 1, 1, 1,
|
||||
2, 2, 2, 2
|
||||
};
|
||||
|
||||
static s8 lbl_1_data_27B[] = { 40, 30, 20, 10 };
|
||||
|
||||
static s8 lbl_1_data_27F[4][2] = {
|
||||
{ 35, 80 }, { 30, 70 },
|
||||
{ 20, 60 }, { 10, 50 }
|
||||
};
|
||||
|
||||
static s32 fn_1_7944(s32 arg0) {
|
||||
s8 spB[3];
|
||||
s8 sp8[3];
|
||||
s32 var_r25;
|
||||
s32 temp_r26;
|
||||
s32 var_r30;
|
||||
s32 temp_r27;
|
||||
s32 var_r31;
|
||||
s32 i;
|
||||
|
||||
var_r25 = BoardPlayerItemCount(arg0);
|
||||
if (var_r25 == 0) {
|
||||
return -1;
|
||||
}
|
||||
for (var_r30 = i = 0; i < 3; i++) {
|
||||
temp_r26 = GWPlayer[arg0].items[i];
|
||||
if (temp_r26 != -1) {
|
||||
spB[var_r30] = temp_r26;
|
||||
sp8[var_r30] = i;
|
||||
var_r30++;
|
||||
}
|
||||
}
|
||||
if (var_r30 == 0) {
|
||||
return -1;
|
||||
}
|
||||
if (var_r30 == 1) {
|
||||
return 0;
|
||||
}
|
||||
temp_r27 = BoardRandMod(100);
|
||||
if (lbl_1_data_26D[spB[0]] > lbl_1_data_26D[spB[1]]) {
|
||||
if (lbl_1_data_27B[GWPlayer[arg0].rank] > temp_r27) {
|
||||
var_r31 = 1;
|
||||
} else {
|
||||
var_r31 = 0;
|
||||
}
|
||||
} else if (lbl_1_data_27B[GWPlayer[arg0].rank] > temp_r27) {
|
||||
var_r31 = 0;
|
||||
} else {
|
||||
var_r31 = 1;
|
||||
}
|
||||
if (var_r30 == 3) {
|
||||
if (lbl_1_data_26D[spB[var_r31]] > lbl_1_data_26D[spB[2]]) {
|
||||
if (lbl_1_data_27F[GWPlayer[arg0].rank][1] > temp_r27) {
|
||||
var_r31 = 2;
|
||||
}
|
||||
} else if (lbl_1_data_27F[GWPlayer[arg0].rank][1] < temp_r27) {
|
||||
var_r31 = 2;
|
||||
}
|
||||
}
|
||||
var_r31 = sp8[var_r31];
|
||||
return var_r31;
|
||||
}
|
||||
|
||||
static char *lbl_1_data_394[] = {
|
||||
"01 : CHIBI KINOKO",
|
||||
"02 : DEKA KINOKO",
|
||||
"03 : SUPER CHIBI KINOKO",
|
||||
"04 : SUPER DEKA KINOKO",
|
||||
"05 : DEKACHIBI HAMMER",
|
||||
"06 : WARP DOKAN",
|
||||
"07 : TRADE CARD",
|
||||
"08 : BIRI-Q SEAL",
|
||||
"09 : TERE-YOKE LIGHT",
|
||||
"10 : WAN-WAN WHISTLE",
|
||||
"11 : KOOPA SUIT",
|
||||
"12 : TERESA SUISYO",
|
||||
"13 : MAJIN NO LAMP",
|
||||
"14 : ITEM BUKURO"
|
||||
};
|
||||
|
||||
static u8 lbl_1_data_3CC[0x4C] = { 0 };
|
||||
|
|
@ -52,7 +52,7 @@ static BoardMapObject lbl_1_data_0[MAPOBJ_MAX] = {
|
|||
|
||||
static omObjData *lbl_1_bss_8;
|
||||
static s32 lbl_1_bss_4;
|
||||
void *lbl_1_bss_0;
|
||||
UnkW06BoardData *lbl_1_bss_0;
|
||||
|
||||
static s16 lbl_1_data_F0 = -1;
|
||||
static s16 lbl_1_data_F2 = -1;
|
||||
|
|
@ -87,7 +87,7 @@ void BoardCreate(void) {
|
|||
s32 *var_r29;
|
||||
s32 i;
|
||||
|
||||
lbl_1_bss_0 = GWSystem.board_data;
|
||||
lbl_1_bss_0 = (UnkW06BoardData*) GWSystem.board_data;
|
||||
BoardSpaceInit(DATA_MAKE_NUM(DATADIR_W06, 0));
|
||||
lbl_1_data_F0 = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W06, 1), NULL, 0);
|
||||
fn_8006DDE8(lbl_1_data_F0, -1.0f);
|
||||
|
|
|
|||
|
|
@ -597,16 +597,16 @@ void HuAudVoiceInit(s16 ovl) {
|
|||
}
|
||||
}
|
||||
|
||||
void HuAudPlayerVoicePlay(s16 arg0, s16 arg1) {
|
||||
s32 HuAudPlayerVoicePlay(s16 arg0, s16 arg1) {
|
||||
s16 temp_r31 = GWPlayerCfg[arg0].character;
|
||||
|
||||
HuAudCharVoicePlay(temp_r31, arg1);
|
||||
return HuAudCharVoicePlay(temp_r31, arg1);
|
||||
}
|
||||
|
||||
void HuAudPlayerVoicePlayPos(s16 arg0, s16 arg1, Vec *arg2) {
|
||||
s32 HuAudPlayerVoicePlayPos(s16 arg0, s16 arg1, Vec *arg2) {
|
||||
s16 temp_r31 = GWPlayerCfg[arg0].character;
|
||||
|
||||
HuAudCharVoicePlayPos(temp_r31, arg1, arg2);
|
||||
return HuAudCharVoicePlayPos(temp_r31, arg1, arg2);
|
||||
}
|
||||
|
||||
void HuAudPlayerVoicePlayEntry(s16 arg0, s16 arg1) {
|
||||
|
|
|
|||
|
|
@ -1782,7 +1782,7 @@ void BoardPlayerMotBlendSet(s32 arg0, s16 arg1, s16 arg2) {
|
|||
temp_r26 = OM_GET_WORK_PTR(temp_r3, bitcopy2);
|
||||
temp_r26->field00_bit0 = 1;
|
||||
|
||||
for (var_r19 = 0; var_r19 < 180; var_r19++) {
|
||||
for (var_r19 = 0; var_r19 < 180U; var_r19++) {
|
||||
if (BoardPlayerMotBlendCheck(arg0) != 0)
|
||||
break;
|
||||
HuPrcVSleep();
|
||||
|
|
|
|||
|
|
@ -578,11 +578,11 @@ void SLCurSlotNoSet(void);
|
|||
void SLSaveDataMake(void);
|
||||
void SLCommonSet(void);
|
||||
void SLSaveBoard(void);
|
||||
void SLSaveBoardBackup(void);
|
||||
void SLSaveBoardStory(void);
|
||||
void SLSave(void);
|
||||
void SLLoadGameStat(void);
|
||||
void SLLoadBoard(void);
|
||||
void SLLoadBoardBackup(void);
|
||||
void SLLoadBoardStory(void);
|
||||
void SLLoad(void);
|
||||
void SLCurBoxNoSet(void);
|
||||
void SLSaveFlagSet(void);
|
||||
|
|
@ -1595,11 +1595,11 @@ extern void _kerjmp_SLCurSlotNoSet(void);
|
|||
extern void _kerjmp_SLSaveDataMake(void);
|
||||
extern void _kerjmp_SLCommonSet(void);
|
||||
extern void _kerjmp_SLSaveBoard(void);
|
||||
extern void _kerjmp_SLSaveBoardBackup(void);
|
||||
extern void _kerjmp_SLSaveBoardStory(void);
|
||||
extern void _kerjmp_SLSave(void);
|
||||
extern void _kerjmp_SLLoadGameStat(void);
|
||||
extern void _kerjmp_SLLoadBoard(void);
|
||||
extern void _kerjmp_SLLoadBoardBackup(void);
|
||||
extern void _kerjmp_SLLoadBoardStory(void);
|
||||
extern void _kerjmp_SLLoad(void);
|
||||
extern void _kerjmp_SLCurBoxNoSet(void);
|
||||
extern void _kerjmp_SLSaveFlagSet(void);
|
||||
|
|
@ -3195,16 +3195,16 @@ asm void _kerent(void) {
|
|||
b SLCommonSet
|
||||
entry _kerjmp_SLSaveBoard
|
||||
b SLSaveBoard
|
||||
entry _kerjmp_SLSaveBoardBackup
|
||||
b SLSaveBoardBackup
|
||||
entry _kerjmp_SLSaveBoardStory
|
||||
b SLSaveBoardStory
|
||||
entry _kerjmp_SLSave
|
||||
b SLSave
|
||||
entry _kerjmp_SLLoadGameStat
|
||||
b SLLoadGameStat
|
||||
entry _kerjmp_SLLoadBoard
|
||||
b SLLoadBoard
|
||||
entry _kerjmp_SLLoadBoardBackup
|
||||
b SLLoadBoardBackup
|
||||
entry _kerjmp_SLLoadBoardStory
|
||||
b SLLoadBoardStory
|
||||
entry _kerjmp_SLLoad
|
||||
b SLLoad
|
||||
entry _kerjmp_SLCurBoxNoSet
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@
|
|||
#include "stddef.h"
|
||||
|
||||
#define SAVE_GET_PLAYER(player_idx) &saveBuf.buf[((player_idx)*sizeof(PlayerState))+offsetof(SaveBufData, player)]
|
||||
#define SAVE_GET_PLAYER_BACKUP(player_idx) &saveBuf.buf[((player_idx)*sizeof(PlayerState))+offsetof(SaveBufData, playerBackup)]
|
||||
#define SAVE_GET_PLAYER_STORY(player_idx) &saveBuf.buf[((player_idx)*sizeof(PlayerState))+offsetof(SaveBufData, playerStory)]
|
||||
|
||||
static s16 SLCreateSaveWin(void);
|
||||
static void SLKillSaveWin(void);
|
||||
|
|
@ -319,12 +319,12 @@ void SLSaveBoard(void) {
|
|||
}
|
||||
}
|
||||
|
||||
void SLSaveBoardBackup(void) {
|
||||
void SLSaveBoardStory(void) {
|
||||
s16 i;
|
||||
|
||||
memcpy(&saveBuf.data.systemBackup, &GWSystem, sizeof(SystemState));
|
||||
memcpy(&saveBuf.data.systemStory, &GWSystem, sizeof(SystemState));
|
||||
for (i = 0; i < 4; i++) {
|
||||
memcpy(SAVE_GET_PLAYER_BACKUP(i), &GWPlayer[i], sizeof(PlayerState));
|
||||
memcpy(SAVE_GET_PLAYER_STORY(i), &GWPlayer[i], sizeof(PlayerState));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -470,12 +470,12 @@ void SLLoadBoard(void) {
|
|||
}
|
||||
}
|
||||
|
||||
void SLLoadBoardBackup(void) {
|
||||
void SLLoadBoardStory(void) {
|
||||
s16 i;
|
||||
|
||||
memcpy(&GWSystem, &saveBuf.data.systemBackup, 0xDC);
|
||||
memcpy(&GWSystem, &saveBuf.data.systemStory, 0xDC);
|
||||
for (i = 0; i < 4; i++) {
|
||||
memcpy(&GWPlayer[i], SAVE_GET_PLAYER_BACKUP(i), sizeof(PlayerState));
|
||||
memcpy(&GWPlayer[i], SAVE_GET_PLAYER_STORY(i), sizeof(PlayerState));
|
||||
GWPlayerCfg[i].character = GWPlayer[i].character;
|
||||
GWPlayerCfg[i].pad_idx = GWPlayer[i].port;
|
||||
GWPlayerCfg[i].diff = GWPlayer[i].diff;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue