Merge branch 'Rainchus:main' into main

This commit is contained in:
CreateSource 2024-04-23 21:11:15 -04:00 committed by GitHub
commit 321115a5e3
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
16 changed files with 1897 additions and 105 deletions

View file

@ -17,9 +17,9 @@ GetStickY = .text:0x00001C20; // type:function size:0x84 scope:local
GetBtn = .text:0x00001CA4; // type:function size:0x90 scope:local
GetBtnDown = .text:0x00001D34; // type:function size:0x24 scope:local
E3PadUpdate = .text:0x00001D58; // type:function size:0xFC
E3PadInit = .text:0x00001E54; // type:function size:0x1C0
MotionGetMaxTime = .text:0x00002014; // type:function size:0x78
MotionGetShiftTime = .text:0x0000208C; // type:function size:0x2C
E3PadRead = .text:0x00001E54; // type:function size:0x1C0
MotionMaxTimeGet = .text:0x00002014; // type:function size:0x78
MotionShiftTimeGet = .text:0x0000208C; // type:function size:0x2C
InitMenuControl = .text:0x000020B8; // type:function size:0xA4 scope:local
UpdateMenuControl = .text:0x0000215C; // type:function size:0x400 scope:local
UpdateOvlWatch = .text:0x0000255C; // type:function size:0x124 scope:local
@ -29,13 +29,13 @@ InitPlayerCnt = .text:0x00002A38; // type:function size:0x59C scope:local
UpdateCharSelCursor = .text:0x00002FD4; // type:function size:0x208 scope:local
UpdateCharSelPlayerCursor = .text:0x000031DC; // type:function size:0x37C scope:local
UpdateCharSelComCursor = .text:0x00003558; // type:function size:0x3B4 scope:local
IsCharSelDone = .text:0x0000390C; // type:function size:0xAC scope:local
CheckCharSel = .text:0x0000390C; // type:function size:0xAC scope:local
UpdateCharSel = .text:0x000039B8; // type:function size:0x2B8 scope:local
InitCharSel = .text:0x00003C70; // type:function size:0x534 scope:local
UpdateVibrateCfg = .text:0x000041A4; // type:function size:0x2DC scope:local
InitVibrateCfg = .text:0x00004480; // type:function size:0x520 scope:local
UpdateGameModeSel = .text:0x000049A0; // type:function size:0x59C scope:local
InitGameModeSel = .text:0x00004F3C; // type:function size:0x4E8 scope:local
UpdateRumbleCfg = .text:0x000041A4; // type:function size:0x2DC scope:local
InitRumbleCfg = .text:0x00004480; // type:function size:0x520 scope:local
UpdateModeSel = .text:0x000049A0; // type:function size:0x59C scope:local
InitModeSel = .text:0x00004F3C; // type:function size:0x4E8 scope:local
E3BGUpdate = .text:0x00005424; // type:function size:0x100 scope:local
E3BGCreate = .text:0x00005524; // type:function size:0x184
InitCamera = .text:0x000056A8; // type:function size:0x7C scope:local
@ -71,47 +71,47 @@ lbl_2_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float
lbl_2_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float
lbl_2_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 data:float
lbl_2_rodata_80 = .rodata:0x00000080; // type:object size:0x8 data:float
lbl_2_rodata_88 = .rodata:0x00000088; // type:object size:0x4 data:float
lbl_2_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 data:float
lbl_2_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float
lbl_2_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float
lbl_2_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float
lbl_2_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float
lbl_2_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float
lbl_2_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float
lbl_2_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float
lbl_2_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 data:float
lbl_2_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 data:float
lbl_2_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 data:float
lbl_2_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float
lbl_2_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 data:float
lbl_2_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 data:double
lbl_2_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float
lbl_2_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float
lbl_2_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float
lbl_2_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 data:float
lbl_2_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float
lbl_2_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 data:float
lbl_2_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float
lbl_2_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 data:float
lbl_2_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 data:float
lbl_2_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 data:float
lbl_2_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float
lbl_2_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float
lbl_2_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float
lbl_2_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float
lbl_2_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float
lbl_2_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float
lbl_2_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float
lbl_2_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float
lbl_2_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float
lbl_2_rodata_114 = .rodata:0x00000114; // type:object size:0x4 data:float
lbl_2_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float
lbl_2_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 data:float
lbl_2_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float
lbl_2_rodata_124 = .rodata:0x00000124; // type:object size:0x4 data:float
lbl_2_rodata_128 = .rodata:0x00000128; // type:object size:0x4 data:float
lbl_2_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 data:float
lbl_2_rodata_88 = .rodata:0x00000088; // type:object size:0x4 scope:local data:float
lbl_2_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 scope:local data:float
lbl_2_rodata_90 = .rodata:0x00000090; // type:object size:0x4 scope:local data:float
lbl_2_rodata_94 = .rodata:0x00000094; // type:object size:0x4 scope:local data:float
lbl_2_rodata_98 = .rodata:0x00000098; // type:object size:0x4 scope:local data:float
lbl_2_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 scope:local data:float
lbl_2_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 scope:local data:float
lbl_2_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 scope:local data:float
lbl_2_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 scope:local data:float
lbl_2_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 scope:local data:float
lbl_2_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 scope:local data:float
lbl_2_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 scope:local data:float
lbl_2_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 scope:local data:float
lbl_2_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 scope:local data:float
lbl_2_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 scope:local data:double
lbl_2_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 scope:local data:float
lbl_2_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 scope:local data:float
lbl_2_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 scope:local data:float
lbl_2_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 scope:local data:float
lbl_2_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 scope:local data:float
lbl_2_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 scope:local data:float
lbl_2_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 scope:local data:float
lbl_2_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 scope:local data:float
lbl_2_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 scope:local data:float
lbl_2_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 scope:local data:float
lbl_2_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 scope:local data:float
lbl_2_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 scope:local data:float
lbl_2_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 scope:local data:float
lbl_2_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 scope:local data:float
lbl_2_rodata_100 = .rodata:0x00000100; // type:object size:0x4 scope:local data:float
lbl_2_rodata_104 = .rodata:0x00000104; // type:object size:0x4 scope:local data:float
lbl_2_rodata_108 = .rodata:0x00000108; // type:object size:0x4 scope:local data:float
lbl_2_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 scope:local data:float
lbl_2_rodata_110 = .rodata:0x00000110; // type:object size:0x4 scope:local data:float
lbl_2_rodata_114 = .rodata:0x00000114; // type:object size:0x4 scope:local data:float
lbl_2_rodata_118 = .rodata:0x00000118; // type:object size:0x4 scope:local data:float
lbl_2_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 scope:local data:float
lbl_2_rodata_120 = .rodata:0x00000120; // type:object size:0x4 scope:local data:float
lbl_2_rodata_124 = .rodata:0x00000124; // type:object size:0x4 scope:local data:float
lbl_2_rodata_128 = .rodata:0x00000128; // type:object size:0x4 scope:local data:float
lbl_2_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 scope:local data:float
lbl_2_data_0 = .data:0x00000000; // type:object size:0x24
lbl_2_data_24 = .data:0x00000024; // type:object size:0x11 data:string
lbl_2_data_36 = .data:0x00000036; // type:object size:0x8
@ -136,27 +136,27 @@ cursorYOfsTbl = .data:0x000001F4; // type:object size:0x14 scope:local
mgPicTbl = .data:0x00000208; // type:object size:0x34 scope:local
startText = .data:0x0000023C; // type:object size:0x14 scope:local
shadowPos = .data:0x00000250; // type:object size:0xC scope:local
shadowUp = .data:0x0000025C; // type:object size:0xC scope:local
shadowTarget = .data:0x00000268; // type:object size:0xC scope:local
lbl_2_data_274 = .data:0x00000274; // type:object size:0x60
shadowTarget = .data:0x0000025C; // type:object size:0xC scope:local
shadowUp = .data:0x00000268; // type:object size:0xC scope:local
lbl_2_data_274 = .data:0x00000274; // type:object size:0x60 data:float
playerCntTbl = .data:0x000002D4; // type:object size:0x8 scope:local
charTbl = .data:0x000002DC; // type:object size:0x10 scope:local
charSfxTbl = .data:0x000002EC; // type:object size:0x20 scope:local
lbl_2_data_30C = .data:0x0000030C; // type:object size:0x12
lbl_2_data_30C = .data:0x0000030C; // type:object size:0x12 scope:local
lbl_2_data_31E = .data:0x0000031E; // type:object size:0x8
playerCntMessTbl = .data:0x00000328; // type:object size:0x10 scope:local
charPosTbl = .data:0x00000338; // type:object size:0x40 scope:local
charComSfxTbl = .data:0x00000378; // type:object size:0x20
lbl_2_data_398 = .data:0x00000398; // type:object size:0xE data:string
charPosTbl = .data:0x00000338; // type:object size:0x40 scope:local data:float
charComSfxTbl = .data:0x00000378; // type:object size:0x20 scope:local
lbl_2_data_398 = .data:0x00000398; // type:object size:0xE scope:local data:string
charSpriteTbl = .data:0x000003A8; // type:object size:0x20 scope:local
cursorSpriteTbl = .data:0x000003C8; // type:object size:0x14 scope:local
highlightSpriteTbl = .data:0x000003DC; // type:object size:0x14 scope:local
vibrateSettingMess = .data:0x000003F0; // type:object size:0x8 scope:local
hiliteSprTbl = .data:0x000003DC; // type:object size:0x14 scope:local
rumbleMess = .data:0x000003F0; // type:object size:0x8 scope:local
modeSelCursorPosTbl = .data:0x000003F8; // type:object size:0x10 scope:local
boardSelCursorPosTbl = .data:0x00000408; // type:object size:0x10 scope:local
camRotTbl = .data:0x00000418; // type:object size:0x60 scope:local
lbl_2_data_478 = .data:0x00000478; // type:object size:0x24
lbl_2_data_49C = .data:0x0000049C; // type:object size:0x24
camViewTbl = .data:0x00000418; // type:object size:0x60 scope:local data:float
lbl_2_data_478 = .data:0x00000478; // type:object size:0x24 data:float
lbl_2_data_49C = .data:0x0000049C; // type:object size:0x24 data:float
lbl_2_data_4C0 = .data:0x000004C0; // type:object size:0x10
lbl_2_bss_A = .bss:0x0000000A; // type:object size:0x2 data:2byte
lbl_2_bss_C = .bss:0x0000000C; // type:object size:0x2 data:2byte
@ -166,8 +166,9 @@ mgPicObj = .bss:0x00000018; // type:object size:0x4 scope:local data:4byte
mgSelectObj = .bss:0x0000001C; // type:object size:0x4 scope:local data:4byte
mgInterface = .bss:0x00000020; // type:object size:0x4 scope:local data:4byte
mgDefault = .bss:0x00000024; // type:object size:0x2 scope:local data:2byte
lbl_2_bss_28 = .bss:0x00000028; // type:object size:0xC data:2byte
lbl_2_bss_34 = .bss:0x00000034; // type:object size:0x2 scope:local data:2byte
repBtn = .bss:0x00000028; // type:object size:0x2 scope:local data:2byte
lbl_2_bss_2A = .bss:0x0000002A; // type:object size:0xA data:2byte
lbl_2_bss_34 = .bss:0x00000034; // type:object size:0x2 data:2byte
lbl_2_bss_36 = .bss:0x00000036; // type:object size:0x2 data:2byte
lbl_2_bss_38 = .bss:0x00000038; // type:object size:0x2 data:2byte
lbl_2_bss_3A = .bss:0x0000003A; // type:object size:0x2 data:2byte
@ -184,7 +185,7 @@ e3BGObj = .bss:0x00000070; // type:object size:0x4 data:4byte
configModeObj = .bss:0x00000074; // type:object size:0x10 scope:local data:4byte
lbl_2_bss_84 = .bss:0x00000084; // type:object size:0x8 data:4byte
cameraObj = .bss:0x0000008C; // type:object size:0x4 scope:local data:4byte
lbl_2_bss_90 = .bss:0x00000090; // type:object size:0x4 data:4byte
e3OvlWatchObj = .bss:0x00000090; // type:object size:0x4 data:4byte
e3ViewObj = .bss:0x00000094; // type:object size:0x4 data:4byte
e3MenuMainObj = .bss:0x00000098; // type:object size:0x4 data:4byte
e3CameraFov = .bss:0x0000009C; // type:object size:0x4 data:float
@ -195,7 +196,7 @@ e3NextOvl = .bss:0x000000AC; // type:object size:0x4 data:4byte
lbl_2_bss_B0 = .bss:0x000000B0; // type:object size:0x4 data:4byte
e3ExitEnableF = .bss:0x000000B4; // type:object size:0x4 data:4byte
e3EvtNo = .bss:0x000000B8; // type:object size:0x4 scope:local data:4byte
e3ConfigPlayerF = .bss:0x000000BC; // type:object size:0x2 data:2byte
e3ConfigPlayerCnt = .bss:0x000000BC; // type:object size:0x2 data:2byte
e3PadCtrl = .bss:0x000000BE; // type:object size:0x2 data:2byte
e3PadData = .bss:0x000000C0; // type:object size:0x20
configE3 = .bss:0x000000E0; // type:object size:0x18 scope:local data:2byte

View file

@ -783,7 +783,7 @@ config.libs = [
objects = {
Object(NonMatching, "REL/E3setupDLL/mgselect.c"),
Object(Matching, "REL/executor.c"),
Object(NonMatching, "REL/E3setupDLL/main.c"),
Object(Matching, "REL/E3setupDLL/main.c"),
}
),
Rel('instDll',

30
include/REL/E3SetupDLL.h Normal file
View file

@ -0,0 +1,30 @@
#ifndef E3SETUPDLL_H
#define E3SETUPDLL_H
#include "game/object.h"
#include "game/pad.h"
typedef struct e3pad {
u16 btn;
u16 btnDown;
u16 enable;
u16 unk6;
} E3Pad;
extern E3Pad e3PadData[4];
extern s16 e3PadCtrl;
extern s16 e3ConfigPlayerF;
extern s32 e3ExitEnableF;
extern OverlayID e3NextOvl;
extern s32 e3NextEvent;
extern u32 e3ExitMode;
void E3MainInit(void);
void E3MGSelectInit(void);
s16 E3PadRead(void);
u16 E3PadUpdate(s16 player, E3Pad *pad);
void E3OvlWatchInit(omObjData *object);
void E3BGCreate(omObjData *object);
void E3LightInit(void);
#endif

View file

@ -35,13 +35,10 @@ extern Point3d Center;
extern f32 CZoom;
void fn_1_29C();
void fn_1_28F8(Point3d * arg0, Point3d * arg1);
extern void omOutView();
void fn_1_37DC(omObjData*);
void fn_1_439C(omObjData*);
void fn_1_46F0();
s16 MGSeqCreate(s16, ...);
void MGSeqParamSet(s16, s16, s16);
typedef void (omObjFunc2)(struct om_obj_data *);
omObjFunc2 fn_1_F9C;

21
include/ext_math.h Normal file
View file

@ -0,0 +1,21 @@
#ifndef _EXT_MATH_H
#define _EXT_MATH_H
#include "math.h"
#include "dolphin/mtx.h"
typedef struct vec2f {
float x;
float y;
} Vec2f;
#define ABS(x) (((x) < 0) ? -(x) : (x))
#define VECDistanceXZ(a, b) sqrtf((((a)->x-(b)->x)*((a)->x-(b)->x))+(((a)->z-(b)->z)*((a)->z-(b)->z)))
#define VECMagXZ(a) sqrtf(((a)->x*(a)->x)+((a)->z*(a)->z))
#define sind(x) sin(M_PI*(x)/180.0)
#define cosd(x) cos(M_PI*(x)/180.0)
#define atan2d(y, x) (180.0*(atan2((y), (x)) / M_PI))
#endif

View file

@ -310,4 +310,7 @@ static inline void GWPlayerCoinWinSet(s32 player, s16 value)
}
}
#define GWPlayerCoinWinAdd(player, value) GWPlayerCoinWinSet((player), GWPlayerCoinWinGet((player))+(value))
#define GWPlayerCoinCollectAdd(player, value) GWPlayerCoinCollectSet((player), GWPlayerCoinCollectGet((player))+(value))
#endif

View file

@ -4,6 +4,43 @@
#include "game/object.h"
#include "stdarg.h"
#define MG_SEQ_TYPE_TIMER 1
#define MG_SEQ_TYPE_AUTO 3
#define MG_SEQ_TYPE_1VS3 4
#define MG_SEQ_TYPE_WIN 5
#define MG_SEQ_TYPE_BATTLE 6
#define MG_SEQ_TYPE_STORY 7
#define MG_SEQ_TYPE_4P 8
#define MG_SEQ_TYPE_2VS2 9
#define MG_SEQ_TYPE_PINBALL 10
#define MG_SEQ_TYPE_BOWSER 11
#define MG_SEQ_TYPE_ALTWIN 12
#define MG_SEQ_TYPE_DRAW 13
#define MG_SEQ_TYPE_RECORD 14
#define MG_SEQ_WIN_TYPE_WIN 3
#define MG_SEQ_WIN_TYPE_LOSE 4
#define MG_SEQ_WIN_TYPE_CHAMPION 5
#define MG_SEQ_WORD_START 0
#define MG_SEQ_WORD_FINISH 1
#define MG_SEQ_WORD_DRAW 2
#define MGSeqTimerCreate(value) MGSeqCreate(MG_SEQ_TYPE_TIMER, (value), -1, -1)
#define MGSeqTimerCreateXY(value, x, y) MGSeqCreate(MG_SEQ_TYPE_TIMER, (value), (int)(x), (int)(y))
#define MGSeqStartCreate() MGSeqCreate(MG_SEQ_TYPE_AUTO, MG_SEQ_WORD_START)
#define MGSeqFinishCreate() MGSeqCreate(MG_SEQ_TYPE_AUTO, MG_SEQ_WORD_FINISH)
#define MGSeqDrawCreate() MGSeqCreate(MG_SEQ_TYPE_AUTO, MG_SEQ_WORD_DRAW)
#define MGSeqStartCreateType(type) MGSeqCreate((type), MG_SEQ_WORD_START)
#define MGSeqFinishCreateType(type) MGSeqCreate((type), MG_SEQ_WORD_FINISH)
#define MGSeqDrawCreateType(type) MGSeqCreate((type), MG_SEQ_WORD_DRAW)
#define MGSeqWinCreate(player_1, player_2, player_3, player_4) MGSeqCreate(MG_SEQ_TYPE_WIN, MG_SEQ_WIN_TYPE_WIN, (player_1), (player_2), (player_3), (player_4))
#define MGSeqLoseCreate(player_1, player_2, player_3, player_4) MGSeqCreate(MG_SEQ_TYPE_WIN, MG_SEQ_WIN_TYPE_LOSE, (player_1), (player_2), (player_3), (player_4))
#define MGSeqChampionCreate(player_1, player_2, player_3, player_4) MGSeqCreate(MG_SEQ_TYPE_ALTWIN, MG_SEQ_WIN_TYPE_CHAMPION, (player_1), (player_2), (player_3), (player_4))
#define MGSeqRecordCreate(value) MGSeqCreate(MG_SEQ_TYPE_RECORD, (value))
typedef struct seq_work SeqWork;
typedef int (*SeqUpdateFunc)(SeqWork *work);

1702
src/REL/E3setupDLL/main.c Normal file

File diff suppressed because it is too large Load diff

View file

View file

@ -211,7 +211,7 @@ void fn_1_4E8C(void) {
temp_r31 = lbl_1_bss_397C->data;
if (temp_r31->unk_06 == -1) {
temp_r31->unk_06 = MGSeqCreate(3, 0);
temp_r31->unk_06 = MGSeqStartCreate();
temp_r31->unk_44 = HuAudSeqPlay(0x46);
fn_1_2564();
for (i = 0; i < 4; i++) {
@ -222,7 +222,7 @@ void fn_1_4E8C(void) {
MGSeqKill(temp_r31->unk_06);
temp_r31->unk_06 = -1;
temp_r31->unk_10 = 0x258;
temp_r31->unk_08 = MGSeqCreate(1, temp_r31->unk_10 / 60, -1, -1);
temp_r31->unk_08 = MGSeqTimerCreate(temp_r31->unk_10 / 60);
fn_1_1E4();
fn_1_4C3C(3);
}
@ -299,7 +299,7 @@ void fn_1_52AC(void) {
temp_r31 = lbl_1_bss_397C->data;
if (temp_r31->unk_04 == 0) {
temp_r31->unk_06 = MGSeqCreate(3, 1);
temp_r31->unk_06 = MGSeqFinishCreate();
temp_r31->unk_04++;
HuAudSeqFadeOut(temp_r31->unk_44, 100);
}
@ -362,7 +362,7 @@ void fn_1_5574(void) {
temp_r31 = lbl_1_bss_397C->data;
if (temp_r31->unk_04 == 0) {
GWMGRecordSet(1, fn_1_28D4());
temp_r31->unk_06 = MGSeqCreate(14, fn_1_28D4());
temp_r31->unk_06 = MGSeqRecordCreate(fn_1_28D4());
fn_1_5F40(1);
temp_r31->unk_04++;
return;
@ -384,15 +384,15 @@ void fn_1_5630(void) {
}
}
if (temp_r31->unk_24 == 0) {
temp_r31->unk_06 = MGSeqCreate(3, 2);
temp_r31->unk_06 = MGSeqDrawCreate();
HuAudSStreamPlay(4);
} else {
temp_r31->unk_06 = MGSeqCreate(5, 3, fn_1_4C0(temp_r31->unk_1C[0]), fn_1_4C0(temp_r31->unk_1C[1]), fn_1_4C0(temp_r31->unk_1C[2]), fn_1_4C0(temp_r31->unk_1C[3]));
temp_r31->unk_06 = MGSeqWinCreate(fn_1_4C0(temp_r31->unk_1C[0]), fn_1_4C0(temp_r31->unk_1C[1]), fn_1_4C0(temp_r31->unk_1C[2]), fn_1_4C0(temp_r31->unk_1C[3]));
for (i = 0; i < ARRAY_COUNT(temp_r31->unk_1C); i++) {
if (temp_r31->unk_1C[i] != -1) {
fn_1_3C4(temp_r31->unk_1C[i]);
GWPlayerCoinWinSet(temp_r31->unk_1C[i], GWPlayerCoinWinGet(temp_r31->unk_1C[i])+10);
}
GWPlayerCoinWinAdd(temp_r31->unk_1C[i], 10);
}
}
HuAudSStreamPlay(1);
}
@ -500,7 +500,7 @@ void fn_1_5BB0(void) {
temp_r31 = lbl_1_bss_397C->data;
if (temp_r31->unk_04 == 0) {
temp_r31->unk_06 = MGSeqCreate(3, 2);
temp_r31->unk_06 = MGSeqDrawCreate();
temp_r31->unk_04++;
}
if (MGSeqStatGet(temp_r31->unk_06) == 0) {

View file

@ -11,6 +11,7 @@
#include "game/window.h"
#include "game/gamework_data.h"
#include "game/sprite.h"
#include "game/minigame_seq.h"
#include "REL/modeltestDll.h"
@ -287,7 +288,7 @@ void fn_1_29C(omObjData * arg0)
HuSprExecLayerSet(0x40, 1);
HuSprGrpDrawNoSet(lbl_1_bss_99C, 0x40);
lbl_1_bss_458 = 0x293;
lbl_1_bss_45A[0] = MGSeqCreate(1, lbl_1_bss_458 / 60, -1, -1);
lbl_1_bss_45A[0] = MGSeqTimerCreate(lbl_1_bss_458 / 60);
temp_r29 = HuDataSelHeapReadNum(0x120001, 0x10000000, 2);
temp_r28 = HuSprAnimRead(temp_r29);
lbl_1_bss_888 = Hu3DParManCreate(temp_r28, 0x3E8, &lbl_1_data_208);
@ -505,27 +506,27 @@ void fn_1_F9C(struct om_obj_data * omData)
}
if ((HuPadBtnDown[0] & PAD_BUTTON_B) != 0) {
var_r30 = MGSeqCreate(teropPatterns.unk0[lbl_1_bss_24], 0);
var_r30 = MGSeqStartCreateType(teropPatterns.unk0[lbl_1_bss_24]);
}
if ((HuPadBtnDown[0] & PAD_BUTTON_A) != 0) {
var_r30 = MGSeqCreate(teropPatterns.unk0[lbl_1_bss_24], 2);
var_r30 = MGSeqDrawCreateType(teropPatterns.unk0[lbl_1_bss_24]);
}
if ((HuPadBtnDown[0] & PAD_BUTTON_Y) != 0) {
var_r30 = MGSeqCreate(0xE, 0x3B);
var_r30 = MGSeqRecordCreate(59);
}
if ((HuPadBtnDown[0] & (PAD_BUTTON_LEFT | PAD_BUTTON_RIGHT | PAD_BUTTON_UP | PAD_BUTTON_DOWN)) != 0) {
if ((HuPadBtnDown[0] & PAD_BUTTON_UP) != 0) {
MGSeqCreate(0xC, 5, GWPlayerCfg[0].character, -1, -1, -1);
MGSeqChampionCreate(GWPlayerCfg[0].character, -1, -1, -1);
}
if ((HuPadBtnDown[0] & PAD_BUTTON_LEFT) != 0) {
MGSeqCreate(0xC, 5, GWPlayerCfg[0].character, GWPlayerCfg[1].character, -1, -1);
MGSeqChampionCreate(GWPlayerCfg[0].character, GWPlayerCfg[1].character, -1, -1);
}
if ((HuPadBtnDown[0] & PAD_BUTTON_DOWN) != 0) {
MGSeqCreate(0xC, 5, GWPlayerCfg[0].character, GWPlayerCfg[1].character, GWPlayerCfg[2].character, -1);
MGSeqChampionCreate(GWPlayerCfg[0].character, GWPlayerCfg[1].character, GWPlayerCfg[2].character, -1);
}
if ((HuPadBtnDown[0] & PAD_BUTTON_RIGHT) != 0) {
MGSeqCreate(0xC, 5, GWPlayerCfg[0].character, GWPlayerCfg[1].character, GWPlayerCfg[2].character, GWPlayerCfg[3].character);
MGSeqChampionCreate(GWPlayerCfg[0].character, GWPlayerCfg[1].character, GWPlayerCfg[2].character, GWPlayerCfg[3].character);
}
}
fontcolor = 5;

View file

@ -337,7 +337,7 @@ static void fn_1_E914(omObjData *arg0) {
lbl_1_bss_7FC[i]->func = fn_1_FED0;
}
BoardPlayerMotionShiftSet(lbl_1_bss_7E4, lbl_1_bss_7B8, 0.0f, 5.0f, 0x40000001);
lbl_1_bss_7D6 = MGSeqCreate(3, 0);
lbl_1_bss_7D6 = MGSeqStartCreate();
BoardMusStart(1, 0xE, 0x7F, 0);
arg0->func = fn_1_ECD4;
}
@ -359,7 +359,7 @@ static void fn_1_ECD4(omObjData *arg0) {
arg0->func = fn_1_EED8;
lbl_1_bss_7D2 = 5;
lbl_1_bss_7D0 = 60;
lbl_1_bss_7D4 = MGSeqCreate(1, lbl_1_bss_7D2, 0x120, 0x40);
lbl_1_bss_7D4 = MGSeqTimerCreateXY(lbl_1_bss_7D2, 288, 64);
}
BoardModelMotionSpeedSet(lbl_1_bss_6C4[17], lbl_1_bss_7EC);
BoardModelMotionSpeedSet(lbl_1_bss_6C4[18], lbl_1_bss_7E8);

View file

@ -209,7 +209,7 @@ void fn_1_8140(s32 arg0) {
fn_1_81E0(arg0);
BoardMusStart(1, 0x16, 0x7F, 0);
temp_r31 = MGSeqCreate(3, 0);
temp_r31 = MGSeqStartCreate();
while (MGSeqStatGet(temp_r31)) {
HuPrcVSleep();
@ -305,7 +305,7 @@ void fn_1_84A8(s32 arg0) {
temp_r31 = OM_GET_WORK_PTR(lbl_1_bss_144, someBits3);
temp_r31->unk00_bit1 = arg0;
if (arg0 == 0) {
temp_r31->unk_04 = MGSeqCreate(1, temp_r31->unk2, 0x120, 0x40);
temp_r31->unk_04 = MGSeqTimerCreateXY(temp_r31->unk2, 288, 64);
}
}
}

View file

@ -345,7 +345,7 @@ void fn_1_A44C(s32 arg0) {
s32 temp_r28;
BoardMusStart(1, 0x17, 0x7F, 0);
temp_r30 = MGSeqCreate(3, 0);
temp_r30 = MGSeqStartCreate();
while (MGSeqStatGet(temp_r30) != 0) {
HuPrcVSleep();
@ -434,7 +434,7 @@ void fn_1_A7A0(s32 arg0) {
temp_r31->unk00_bit1 = 0;
temp_r31->unk1 = 5U;
temp_r31->unk2 = 0x3C;
temp_r31->unk4 = MGSeqCreate(1, temp_r31->unk1, 0x120, 0x40);
temp_r31->unk4 = MGSeqTimerCreateXY(temp_r31->unk1, 288, 64);
fn_1_BB74(lbl_1_bss_194);
lbl_1_bss_18C = fn_1_AE4C(arg0, lbl_1_bss_194);
}

View file

@ -295,7 +295,7 @@ static void fn_1_15CC(s32 arg0) {
s32 var_r31;
BoardMusStart(1, 0x26, 0x7F, 0);
temp_r26 = MGSeqCreate(3, 0);
temp_r26 = MGSeqStartCreate();
while (MGSeqStatGet(temp_r26) != 0) {
HuPrcVSleep();
}
@ -1072,7 +1072,7 @@ static void fn_1_4070(void) {
temp_r31->unk00_field0 = 0;
temp_r31->unk01 = 5;
temp_r31->unk02 = 60;
temp_r31->unk04 = MGSeqCreate(1, temp_r31->unk01, 0x120, 0x40);
temp_r31->unk04 = MGSeqTimerCreateXY(temp_r31->unk01, 288, 64);
}
static void fn_1_4124(void) {

View file

@ -83,15 +83,15 @@ static s32 seqType2SprTbl[6] = {
};
static s16 mgSeqTypeTbl[9] = {
8,
4,
9,
11,
6,
10,
7,
11,
7
MG_SEQ_TYPE_4P,
MG_SEQ_TYPE_1VS3,
MG_SEQ_TYPE_2VS2,
MG_SEQ_TYPE_BOWSER,
MG_SEQ_TYPE_BATTLE,
MG_SEQ_TYPE_PINBALL,
MG_SEQ_TYPE_STORY,
MG_SEQ_TYPE_BOWSER,
MG_SEQ_TYPE_STORY
};
static char lbl_8012F336[] = {
@ -252,9 +252,9 @@ s16 MGSeqCreate(s16 type, ...)
s16 ret;
va_list params;
va_start(params, type);
if(type == 3) {
if(type == MG_SEQ_TYPE_AUTO) {
if(GWSystem.mg_next == 0xFFFF) {
type = 8;
type = MG_SEQ_TYPE_4P;
} else {
type = mgSeqTypeTbl[mgInfoTbl[GWSystem.mg_next].type];
}