diff --git a/src/REL/w02Dll/gamble.c b/src/REL/w02Dll/gamble.c index 9a4e562c..dcb77bfa 100644 --- a/src/REL/w02Dll/gamble.c +++ b/src/REL/w02Dll/gamble.c @@ -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(); diff --git a/src/REL/w02Dll/main.c b/src/REL/w02Dll/main.c index 5f132f85..424fed5c 100644 --- a/src/REL/w02Dll/main.c +++ b/src/REL/w02Dll/main.c @@ -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; diff --git a/src/REL/w02Dll/roulette.c b/src/REL/w02Dll/roulette.c new file mode 100644 index 00000000..4efa5f08 --- /dev/null +++ b/src/REL/w02Dll/roulette.c @@ -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(); + } +} \ No newline at end of file