w02 cleanup and initial w02|roulette.c

This commit is contained in:
M0liusX 2024-01-31 16:17:07 -06:00
parent e76421af5c
commit 369307cf6b
3 changed files with 73 additions and 43 deletions

View file

@ -1,12 +1,8 @@
#include "dolphin.h"
#include "game/process.h"
#include "game/gamework_data.h"
#include "game/board/main.h"
#include "REL/w02Dll.h"
Process* lbl_1_bss_50;
s32 lbl_1_bss_54;
void fn_1_2D04();

View file

@ -1,10 +1,4 @@
#include "dolphin.h"
#include "game/process.h"
#include "game/gamework_data.h"
#include "game/board/model.h"
#include "game/board/space.h"
#include "game/board/main.h"
#include "game/board/window.h"
#include "REL/w02Dll.h"
// Temporary defines
#define BOARD_ITEM_MINI 0x0
@ -32,15 +26,15 @@ typedef struct ModelTransform {
} ModelTransform;
/* BSS */
u8* lbl_1_bss_0;
Process* lbl_1_bss_4;
s16 lbl_1_bss_8[4]; // Item List
s32* lbl_1_bss_10;
Point3d lbl_1_bss_14;
Point3d lbl_1_bss_20;
s16 lbl_1_bss_2C;
s16 lbl_1_bss_2E;
s16 lbl_1_bss_30[0x10]; // Model List
s16 lbl_1_bss_2E;
s16 lbl_1_bss_2C;
Point3d lbl_1_bss_20;
Point3d lbl_1_bss_14;
s32* lbl_1_bss_10;
s16 lbl_1_bss_8[4]; // Item List
Process* lbl_1_bss_4;
u8* lbl_1_bss_0;
/* DATA */
ModelTransform lbl_1_data_0[0x10] = {
@ -92,29 +86,6 @@ extern void CharModelDataClose(s16);
extern u32 frand();
extern u32 frandmod(u32);
// Local Functions
void fn_1_770();
void fn_1_72C();
s32 fn_1_774();
s32 fn_1_800();
void fn_1_92C();
s32 fn_1_1128();
// Local Extern Functions
extern void fn_1_394C(s32);
extern void fn_1_3BF4();
extern void fn_1_39F4();
extern void fn_1_5CF8();
extern void fn_1_5D28();
extern void fn_1_5F90();
extern void fn_1_79BC(s16* itemList);
extern void fn_1_8244(s32);
extern void fn_1_9250();
extern void fn_1_93C8(s32 spaceFlag);
extern void fn_1_BC1C();
extern void fn_1_E41C();
// function is probably global. only inlined in rels?
inline s32 get_current_board(void) {
return GWSystem.board;

63
src/REL/w02Dll/roulette.c Normal file
View file

@ -0,0 +1,63 @@
#include "REL/w02Dll.h"
/* RODATA */
extern f32 lbl_1_rodata_408;
extern f32 lbl_1_rodata_40C;
extern f32 lbl_1_rodata_410;
extern f32 lbl_1_rodata_414;
/* BSS */
extern s16 lbl_1_bss_388;
/* FUNCTIONS */
void fn_1_BC1C(void) {
Point3d sp8;
BoardModelPosGet(lbl_1_bss_30[15], &sp8);
sp8.z -= lbl_1_rodata_408;
sp8.y += lbl_1_rodata_40C;
BoardModelPosSetV(lbl_1_bss_30[6], &sp8);
BoardModelAttrSet(lbl_1_bss_30[5], 0x40000002);
BoardModelMotionTimeSet(lbl_1_bss_30[5], lbl_1_rodata_410);
BoardModelRotGet(lbl_1_bss_30[15], &sp8);
sp8.y = lbl_1_rodata_410;
BoardModelRotSetV(lbl_1_bss_30[15], &sp8);
}
void fn_1_BCFC(void) {
s32 spaceLinkFlags;
s32 temp_r30;
s32 temp_r29;
BoardDiceDigit2DShowSet(0);
spaceLinkFlags = BoardSpaceLinkFlagSearch(0, (s32) GWPlayer[lbl_1_bss_388].space_curr, 2U);
BoardPlayerMoveToAsync(lbl_1_bss_388, spaceLinkFlags);
while (GWPlayer[lbl_1_bss_388].moving) {
HuPrcVSleep();
}
BoardRotateDiceNumbers((s32) lbl_1_bss_388);
BoardCameraViewSet(2);
BoardCameraMotionWait();
BoardPlayerMotBlendSet((s32) lbl_1_bss_388, 0x5A, 0xF);
while (BoardPlayerMotBlendCheck((s32) lbl_1_bss_388) == 0) {
HuPrcVSleep();
}
BoardModelRotYSet(lbl_1_bss_30[15], lbl_1_rodata_414);
fn_1_121C(0x130000);
HuAudFXPlay(0x44);
temp_r29 = fn_1_BE88();
BoardStatusShowSetAll(0);
fn_1_121C(0x130001);
temp_r30 = fn_1_C108(temp_r29);
fn_1_CD04(temp_r30);
BoardCameraViewSet(1);
BoardStatusShowSetAll(1);
BoardCameraMotionWait();
BoardDiceDigit2DShowSet(1);
HuPrcKill(NULL);
while(TRUE) {
HuPrcVSleep();
}
}