From 0687fd8abbe2d0fe007161ce606ffdf5b02dce9b Mon Sep 17 00:00:00 2001 From: gamemasterplc Date: Tue, 18 Jun 2024 08:11:20 -0500 Subject: [PATCH] Finish naming option REL --- config/GMPE01_00/rels/option/symbols.txt | 266 ++--- include/REL/option.h | 116 +-- src/REL/option/camera.c | 217 ++-- src/REL/option/guide.c | 191 ++-- src/REL/option/record.c | 415 ++++---- src/REL/option/room.c | 230 +++-- src/REL/option/rumble.c | 138 +-- src/REL/option/scene.c | 146 ++- src/REL/option/sound.c | 1155 +++++++++++----------- src/REL/option/state.c | 38 +- src/REL/option/window.c | 43 +- 11 files changed, 1493 insertions(+), 1462 deletions(-) diff --git a/config/GMPE01_00/rels/option/symbols.txt b/config/GMPE01_00/rels/option/symbols.txt index 01a62c17..eba33444 100644 --- a/config/GMPE01_00/rels/option/symbols.txt +++ b/config/GMPE01_00/rels/option/symbols.txt @@ -1,55 +1,55 @@ _prolog = .text:0x00000000; // type:function size:0x54 scope:global _epilog = .text:0x00000054; // type:function size:0x4C scope:global ModuleProlog = .text:0x000000A0; // type:function size:0xC0 -fn_1_160 = .text:0x00000160; // type:function size:0x110 -HandleLRBtn = .text:0x00000270; // type:function size:0xE4 scope:local -fn_1_354 = .text:0x00000354; // type:function size:0x114 scope:local -fn_1_468 = .text:0x00000468; // type:function size:0xE8 scope:local -fn_1_550 = .text:0x00000550; // type:function size:0x34 -fn_1_584 = .text:0x00000584; // type:function size:0x34 -fn_1_5B8 = .text:0x000005B8; // type:function size:0x34 -HandleScene = .text:0x000005EC; // type:function size:0xFC scope:local +OptionFadeSprite = .text:0x00000160; // type:function size:0x110 +FadeSprite = .text:0x00000270; // type:function size:0xE4 scope:local +OptionFadeModel = .text:0x00000354; // type:function size:0x114 scope:local +FadeModel = .text:0x00000468; // type:function size:0xE8 scope:local +OptionPadCheck = .text:0x00000550; // type:function size:0x34 +OptionPadDStkRepCheck = .text:0x00000584; // type:function size:0x34 +OptionPadDStkCheck = .text:0x000005B8; // type:function size:0x34 +SceneMain = .text:0x000005EC; // type:function size:0xFC scope:local KillScene = .text:0x000006E8; // type:function size:0x110 scope:local -fn_1_7F8 = .text:0x000007F8; // type:function size:0x244 -fn_1_A3C = .text:0x00000A3C; // type:function size:0x30 -fn_1_A6C = .text:0x00000A6C; // type:function size:0x84 -fn_1_AF0 = .text:0x00000AF0; // type:function size:0x84 -fn_1_B74 = .text:0x00000B74; // type:function size:0x84 -fn_1_BF8 = .text:0x00000BF8; // type:function size:0x30 -fn_1_C28 = .text:0x00000C28; // type:function size:0x30 -fn_1_C58 = .text:0x00000C58; // type:function size:0x30 scope:local -fn_1_C88 = .text:0x00000C88; // type:function size:0x30 -fn_1_CB8 = .text:0x00000CB8; // type:function size:0x8C -HandlerWrapper = .text:0x00000D44; // type:function size:0x28 scope:local -HandleCamera = .text:0x00000D6C; // type:function size:0x578 scope:local -fn_1_12E4 = .text:0x000012E4; // type:function size:0x200 scope:local -PrintDebugInfo = .text:0x000014E4; // type:function size:0xC0 scope:local -fn_1_15A4 = .text:0x000015A4; // type:function size:0x1F4 -fn_1_1798 = .text:0x00001798; // type:function size:0xAC -ChangeSelection = .text:0x00001844; // type:function size:0x1E8 scope:local -fn_1_1A2C = .text:0x00001A2C; // type:function size:0x44 -fn_1_1A70 = .text:0x00001A70; // type:function size:0x1C -HandleRoom = .text:0x00001A8C; // type:function size:0x5FC scope:local -CreateBackground = .text:0x00002088; // type:function size:0x88 scope:local -KillBackground = .text:0x00002110; // type:function size:0x34 scope:local -CreateArrowPair = .text:0x00002144; // type:function size:0x80 scope:local -KillArrowPair = .text:0x000021C4; // type:function size:0x34 scope:local -fn_1_21F8 = .text:0x000021F8; // type:function size:0x224 -fn_1_241C = .text:0x0000241C; // type:function size:0x8C -ChangeMode = .text:0x000024A8; // type:function size:0x44 scope:local -GetMode = .text:0x000024EC; // type:function size:0x1C scope:local -fn_1_2508 = .text:0x00002508; // type:function size:0xA4 -HandleGuide = .text:0x000025AC; // type:function size:0x46C scope:local +OptionCameraCreate = .text:0x000007F8; // type:function size:0x244 +OptionCameraKill = .text:0x00000A3C; // type:function size:0x30 +OptionCameraTargetSet = .text:0x00000A6C; // type:function size:0x84 +OptionCameraFocusSet = .text:0x00000AF0; // type:function size:0x84 +OptionCameraViewSet = .text:0x00000B74; // type:function size:0x84 +OptionCameraZoomGet = .text:0x00000BF8; // type:function size:0x30 +OptionCameraRotGet = .text:0x00000C28; // type:function size:0x30 +OptionCameraPosGet = .text:0x00000C58; // type:function size:0x30 +OptionCameraTargetGet = .text:0x00000C88; // type:function size:0x30 +OptionCameraDoneCheck = .text:0x00000CB8; // type:function size:0x8C +ExecCameraObj = .text:0x00000D44; // type:function size:0x28 scope:local +ExecCamera = .text:0x00000D6C; // type:function size:0x578 scope:local +CameraExecDebug = .text:0x000012E4; // type:function size:0x200 scope:local +CameraPrintDebug = .text:0x000014E4; // type:function size:0xC0 scope:local +OptionRoomCreate = .text:0x000015A4; // type:function size:0x1F4 +OptionRoomKill = .text:0x00001798; // type:function size:0xAC +MoveOption = .text:0x00001844; // type:function size:0x1E8 scope:local +OptionRoomExecModeSet = .text:0x00001A2C; // type:function size:0x44 +OptionRoomExecModeGet = .text:0x00001A70; // type:function size:0x1C +ExecRoom = .text:0x00001A8C; // type:function size:0x5FC scope:local +CreateRoomBG = .text:0x00002088; // type:function size:0x88 scope:local +KillRoomBG = .text:0x00002110; // type:function size:0x34 scope:local +CreateArrow = .text:0x00002144; // type:function size:0x80 scope:local +KillArrow = .text:0x000021C4; // type:function size:0x34 scope:local +OptionGuideCreate = .text:0x000021F8; // type:function size:0x224 +OptionGuideKill = .text:0x0000241C; // type:function size:0x8C +SetExecMode = .text:0x000024A8; // type:function size:0x44 scope:local +GetExecMode = .text:0x000024EC; // type:function size:0x1C scope:local +OptionGuideWalkExec = .text:0x00002508; // type:function size:0xA4 +ExecGuide = .text:0x000025AC; // type:function size:0x46C scope:local UpdateGuide = .text:0x00002A18; // type:function size:0x2E8 scope:local -fn_1_2D00 = .text:0x00002D00; // type:function size:0x104 scope:local -fn_1_2E04 = .text:0x00002E04; // type:function size:0x148 -fn_1_2F4C = .text:0x00002F4C; // type:function size:0x64 -HandleState = .text:0x00002FB0; // type:function size:0x1A8 scope:local -fn_1_3158 = .text:0x00003158; // type:function size:0xD4 -fn_1_322C = .text:0x0000322C; // type:function size:0x64 -fn_1_3290 = .text:0x00003290; // type:function size:0x44 -fn_1_39D4 = .text:0x000032D4; // type:function size:0x1C -HandleRumble = .text:0x000032F0; // type:function size:0x4BC scope:local +LerpAngle = .text:0x00002D00; // type:function size:0x104 scope:local +OptionStateCreate = .text:0x00002E04; // type:function size:0x148 +OptionStateKill = .text:0x00002F4C; // type:function size:0x64 +ExecState = .text:0x00002FB0; // type:function size:0x1A8 scope:local +OptionRumbleCreate = .text:0x00003158; // type:function size:0xD4 +OptionRumbleKill = .text:0x0000322C; // type:function size:0x64 +OptionRumbleExecModeSet = .text:0x00003290; // type:function size:0x44 +OptionRumbleExecModeGet = .text:0x000032D4; // type:function size:0x1C +ExecRumble = .text:0x000032F0; // type:function size:0x4BC scope:local CreateHand = .text:0x000037AC; // type:function size:0xBC scope:local KillHand = .text:0x00003868; // type:function size:0x54 scope:local CreateSystem = .text:0x000038BC; // type:function size:0xD0 scope:local @@ -60,56 +60,56 @@ KillPad = .text:0x00003B8C; // type:function size:0x54 scope:local ShakePad = .text:0x00003BE0; // type:function size:0x8C scope:local CreatePadFilter = .text:0x00003C6C; // type:function size:0x94 scope:local KillPadFilter = .text:0x00003D00; // type:function size:0x54 scope:local -fn_1_3D54 = .text:0x00003D54; // type:function size:0xC8 -fn_1_3E1C = .text:0x00003E1C; // type:function size:0xB4 -fn_1_3ED0 = .text:0x00003ED0; // type:function size:0x58 -CreateHighlightOn = .text:0x00003F28; // type:function size:0xAC scope:local -KillHighlightOn = .text:0x00003FD4; // type:function size:0x54 scope:local -fn_1_4028 = .text:0x00004028; // type:function size:0x2B4 -fn_1_42DC = .text:0x000042DC; // type:function size:0xAC -fn_1_4388 = .text:0x00004388; // type:function size:0x44 -fn_1_43CC = .text:0x000043CC; // type:function size:0x1C -HandleInitialScreen = .text:0x000043E8; // type:function size:0x270 scope:local -HandleOptionSel = .text:0x00004658; // type:function size:0x424 scope:local -HandleSoundSettings = .text:0x00004A7C; // type:function size:0x3D4 scope:local -HandleMusic = .text:0x00004E50; // type:function size:0x93C scope:local -HandleVoice = .text:0x0000578C; // type:function size:0x8B8 scope:local -TurnOnIndicator = .text:0x00006044; // type:function size:0xF8 scope:local -TurnOffIndicators = .text:0x0000613C; // type:function size:0x64 scope:local -CreateOptionHand = .text:0x000061A0; // type:function size:0xFC scope:local -KillOptionHand = .text:0x0000629C; // type:function size:0x54 scope:local -CreateSoundSettingsHand = .text:0x000062F0; // type:function size:0xFC scope:local -KillSoundSettingsHand = .text:0x000063EC; // type:function size:0x54 scope:local +OptionRumbleMotionShowStart = .text:0x00003D54; // type:function size:0xC8 +OptionRumbleMotionHideStart = .text:0x00003E1C; // type:function size:0xB4 +OptionRumbleMotionCheck = .text:0x00003ED0; // type:function size:0x58 +CreateHiliteOn = .text:0x00003F28; // type:function size:0xAC scope:local +KillHiliteOn = .text:0x00003FD4; // type:function size:0x54 scope:local +OptionSoundCreate = .text:0x00004028; // type:function size:0x2B4 +OptionSoundKill = .text:0x000042DC; // type:function size:0xAC +OptionSoundExecModeSet = .text:0x00004388; // type:function size:0x44 +OptionSoundExecModeGet = .text:0x000043CC; // type:function size:0x1C +ExecZoom = .text:0x000043E8; // type:function size:0x270 scope:local +ExecOptionSel = .text:0x00004658; // type:function size:0x424 scope:local +ExecOutputMode = .text:0x00004A7C; // type:function size:0x3D4 scope:local +ExecMusic = .text:0x00004E50; // type:function size:0x93C scope:local +ExecVoice = .text:0x0000578C; // type:function size:0x8B8 scope:local +LightSetCurr = .text:0x00006044; // type:function size:0xF8 scope:local +LightSetNone = .text:0x0000613C; // type:function size:0x64 scope:local +CreateHand = .text:0x000061A0; // type:function size:0xFC scope:local +KillHand = .text:0x0000629C; // type:function size:0x54 scope:local +CreateOutputModeHand = .text:0x000062F0; // type:function size:0xFC scope:local +KillOutputModeHand = .text:0x000063EC; // type:function size:0x54 scope:local CreateSystem = .text:0x00006440; // type:function size:0x94 scope:local KillSystem = .text:0x000064D4; // type:function size:0x54 scope:local -CreateIndicator = .text:0x00006528; // type:function size:0x118 scope:local -KillIndicator = .text:0x00006640; // type:function size:0x54 scope:local -HideIndicator = .text:0x00006694; // type:function size:0x38 scope:local -ShowIndicator = .text:0x000066CC; // type:function size:0x38 scope:local +CreateLightObj = .text:0x00006528; // type:function size:0x118 scope:local +KillLightObj = .text:0x00006640; // type:function size:0x54 scope:local +LightDispOff = .text:0x00006694; // type:function size:0x38 scope:local +LightDispOn = .text:0x000066CC; // type:function size:0x38 scope:local CreateSpr = .text:0x00006704; // type:function size:0xC4 scope:local KillSpr = .text:0x000067C8; // type:function size:0x60 scope:local -DisplayOptionSel = .text:0x00006828; // type:function size:0x1E4 scope:local -HideOptionSel = .text:0x00006A0C; // type:function size:0x74 scope:local -DisplaySoundSettings = .text:0x00006A80; // type:function size:0x1DC scope:local -HideSoundSettings = .text:0x00006C5C; // type:function size:0x74 scope:local -DisplayMusicTitle = .text:0x00006CD0; // type:function size:0x1D4 scope:local -HideMusicTitle = .text:0x00006EA4; // type:function size:0xA4 scope:local -DisplayVoice = .text:0x00006F48; // type:function size:0x1D4 scope:local -HideVoiceTitle = .text:0x0000711C; // type:function size:0xA4 scope:local -CreateNote = .text:0x000071C0; // type:function size:0xE8 scope:local +OptionSelDisp = .text:0x00006828; // type:function size:0x1E4 scope:local +OptionSelHide = .text:0x00006A0C; // type:function size:0x74 scope:local +OutputModeDisp = .text:0x00006A80; // type:function size:0x1DC scope:local +OutputModeHide = .text:0x00006C5C; // type:function size:0x74 scope:local +MusicPageDisp = .text:0x00006CD0; // type:function size:0x1D4 scope:local +MusicPageHide = .text:0x00006EA4; // type:function size:0xA4 scope:local +VoicePageDisp = .text:0x00006F48; // type:function size:0x1D4 scope:local +VoicePageHide = .text:0x0000711C; // type:function size:0xA4 scope:local +CreateNoteObj = .text:0x000071C0; // type:function size:0xE8 scope:local KillNote = .text:0x000072A8; // type:function size:0x68 scope:local HandleNote = .text:0x00007310; // type:function size:0x400 scope:local -SpawnNote = .text:0x00007710; // type:function size:0x190 scope:local -CreateNoteProcess = .text:0x000078A0; // type:function size:0x60 scope:local -KillNoteProcess = .text:0x00007900; // type:function size:0x3C scope:local -HandleNoteProcess = .text:0x0000793C; // type:function size:0x5C4 scope:local +CreateNote = .text:0x00007710; // type:function size:0x190 scope:local +CreateNoteSpawner = .text:0x000078A0; // type:function size:0x60 scope:local +KillNoteSpawner = .text:0x00007900; // type:function size:0x3C scope:local +ExecNoteSpawner = .text:0x0000793C; // type:function size:0x5C4 scope:local PlaySound = .text:0x00007F00; // type:function size:0x148 scope:local -FadeOutCurrSound = .text:0x00008048; // type:function size:0x9C scope:local -fn_1_80E4 = .text:0x000080E4; // type:function size:0x178 -fn_1_825C = .text:0x0000825C; // type:function size:0x54 -fn_1_82B0 = .text:0x000082B0; // type:function size:0x44 -fn_1_82F4 = .text:0x000082F4; // type:function size:0x1C -HandleRecord = .text:0x00008310; // type:function size:0x778 scope:local +FadeSound = .text:0x00008048; // type:function size:0x9C scope:local +OptionRecordCreate = .text:0x000080E4; // type:function size:0x178 +OptionRecordKill = .text:0x0000825C; // type:function size:0x54 +OptionRecordExecModeSet = .text:0x000082B0; // type:function size:0x44 +OptionRecordExecModeGet = .text:0x000082F4; // type:function size:0x1C +ExecRecord = .text:0x00008310; // type:function size:0x778 scope:local CreateSystem = .text:0x00008A88; // type:function size:0xD0 scope:local KillSystem = .text:0x00008B58; // type:function size:0x54 scope:local StartSystemMotion = .text:0x00008BAC; // type:function size:0xD8 scope:local @@ -117,25 +117,25 @@ CreateHand = .text:0x00008C84; // type:function size:0xFC scope:local KillHand = .text:0x00008D80; // type:function size:0x54 scope:local CreateSpr = .text:0x00008DD4; // type:function size:0xC4 scope:local KillSpr = .text:0x00008E98; // type:function size:0x60 scope:local -GetDigitSprAt = .text:0x00008EF8; // type:function size:0x40 scope:local -DisplayBoardRecord = .text:0x00008F38; // type:function size:0x77C scope:local -HideBoardRecordSpr = .text:0x000096B4; // type:function size:0x9C scope:local -DisplayTotalResults = .text:0x00009750; // type:function size:0x344 scope:local -HideTotalResultsSpr = .text:0x00009A94; // type:function size:0x7C scope:local -ShowMGRecord = .text:0x00009B10; // type:function size:0x8A0 scope:local -HideMGRecordSpr = .text:0x0000A3B0; // type:function size:0x9C scope:local -fn_1_A44C = .text:0x0000A44C; // type:function size:0x260 -fn_1_A6AC = .text:0x0000A6AC; // type:function size:0x40 -fn_1_A6EC = .text:0x0000A6EC; // type:function size:0x18 -fn_1_A704 = .text:0x0000A704; // type:function size:0x18 -fn_1_A71C = .text:0x0000A71C; // type:function size:0x54 -fn_1_A770 = .text:0x0000A770; // type:function size:0x40 scope:local -fn_1_A7B0 = .text:0x0000A7B0; // type:function size:0x40 -fn_1_A7F0 = .text:0x0000A7F0; // type:function size:0x38 -fn_1_A828 = .text:0x0000A828; // type:function size:0x38 -fn_1_A860 = .text:0x0000A860; // type:function size:0x20 scope:local -fn_1_A880 = .text:0x0000A880; // type:function size:0x24 -HandleWindow = .text:0x0000A8A4; // type:function size:0x108 scope:local +GetDigit = .text:0x00008EF8; // type:function size:0x40 scope:local +ShowBoard = .text:0x00008F38; // type:function size:0x77C scope:local +HideBoard = .text:0x000096B4; // type:function size:0x9C scope:local +ShowTotal = .text:0x00009750; // type:function size:0x344 scope:local +HideTotal = .text:0x00009A94; // type:function size:0x7C scope:local +ShowMG = .text:0x00009B10; // type:function size:0x8A0 scope:local +HideMG = .text:0x0000A3B0; // type:function size:0x9C scope:local +OptionWinCreate = .text:0x0000A44C; // type:function size:0x260 +OptionWinKill = .text:0x0000A6AC; // type:function size:0x40 +OptionWinAnimIn = .text:0x0000A6EC; // type:function size:0x18 +OptionWinAnimOut = .text:0x0000A704; // type:function size:0x18 +OptionWinMesSet = .text:0x0000A71C; // type:function size:0x54 +OptionWinInsertMesSet = .text:0x0000A770; // type:function size:0x40 +OptionWinPosSet = .text:0x0000A7B0; // type:function size:0x40 +OptionWinDispOn = .text:0x0000A7F0; // type:function size:0x38 +OptionWinDispOff = .text:0x0000A828; // type:function size:0x38 +OptionWinMesWait = .text:0x0000A860; // type:function size:0x20 +OptionWinChoiceSet = .text:0x0000A880; // type:function size:0x24 +ExecWindow = .text:0x0000A8A4; // type:function size:0x108 scope:local _ctors = .ctors:0x00000000; // type:label scope:global data:4byte _dtors = .dtors:0x00000000; // type:label scope:global data:4byte __fakeHalf = .rodata:0x00000000; // type:object size:0x8 data:double @@ -173,12 +173,12 @@ lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 scope:local data:f lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 scope:local data:float lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 scope:local data:float lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 scope:local data:float -guidePosTbl = .rodata:0x000000BC; // type:object size:0xC scope:local data:float +guideAngleTbl = .rodata:0x000000BC; // type:object size:0xC scope:local data:float lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 scope:local data:float lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 scope:local data:float lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 scope:local data:float optionDescTbl = .rodata:0x000000D4; // type:object size:0xC scope:local -lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0xC scope:local +guideMotTbl = .rodata:0x000000E0; // type:object size:0xC scope:local lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 scope:local data:float lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 scope:local data:float lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 scope:local data:float @@ -248,21 +248,21 @@ lbl_1_rodata_12C0 = .rodata:0x000012C0; // type:object size:0x4 scope:local data lbl_1_rodata_12C4 = .rodata:0x000012C4; // type:object size:0x4 scope:local data:float lbl_1_rodata_12C8 = .rodata:0x000012C8; // type:object size:0x4 scope:local data:float lbl_1_rodata_12CC = .rodata:0x000012CC; // type:object size:0x4 scope:local data:float -indicatorPosTbl = .rodata:0x000012D0; // type:object size:0x24 scope:local +lightPosTbl = .rodata:0x000012D0; // type:object size:0x24 scope:local lbl_1_rodata_12F4 = .rodata:0x000012F4; // type:object size:0x4 scope:local data:float lbl_1_rodata_12F8 = .rodata:0x000012F8; // type:object size:0x4 scope:local data:float lbl_1_rodata_12FC = .rodata:0x000012FC; // type:object size:0x4 scope:local data:float lbl_1_rodata_1300 = .rodata:0x00001300; // type:object size:0x4 scope:local data:float lbl_1_rodata_1304 = .rodata:0x00001304; // type:object size:0x4 scope:local data:float -optionSelSprIdxTbl = .rodata:0x00001308; // type:object size:0x1C scope:local +sprHideTbl$767 = .rodata:0x00001308; // type:object size:0x1C scope:local lbl_1_rodata_1324 = .rodata:0x00001324; // type:object size:0x4 scope:local data:float lbl_1_rodata_1328 = .rodata:0x00001328; // type:object size:0x4 scope:local data:float lbl_1_rodata_132C = .rodata:0x0000132C; // type:object size:0x4 scope:local data:float -soundSettingsSprTbl = .rodata:0x00001330; // type:object size:0x14 scope:local +sprHideTbl$793 = .rodata:0x00001330; // type:object size:0x14 scope:local lbl_1_rodata_1344 = .rodata:0x00001344; // type:object size:0x4 scope:local data:float lbl_1_rodata_1348 = .rodata:0x00001348; // type:object size:0x4 scope:local data:float -musicTitleSprIdxTbl = .rodata:0x0000134C; // type:object size:0x4 scope:local -voiceTitleSprIdxTbl = .rodata:0x00001350; // type:object size:0x8 scope:local +sprHideTbl$821 = .rodata:0x0000134C; // type:object size:0x4 scope:local +sprHideTbl$852 = .rodata:0x00001350; // type:object size:0x8 scope:local lbl_1_rodata_1358 = .rodata:0x00001358; // type:object size:0x8 scope:local data:double lbl_1_rodata_1360 = .rodata:0x00001360; // type:object size:0x8 scope:local data:double lbl_1_rodata_1368 = .rodata:0x00001368; // type:object size:0x4 scope:local data:float @@ -353,31 +353,31 @@ lbl_1_rodata_19EC = .rodata:0x000019EC; // type:object size:0x4 scope:local data lbl_1_data_1C = .data:0x0000001C; // type:object size:0x1B scope:local data:string lbl_1_data_37 = .data:0x00000037; // type:object size:0x1B scope:local data:string lbl_1_data_52 = .data:0x00000052; // type:object size:0x16 scope:local data:string -modes = .data:0x00000068; // type:object size:0x8 scope:local data:4byte +execModeTbl = .data:0x00000068; // type:object size:0x8 scope:local data:4byte jumptable_1_data_70 = .data:0x00000070; // type:object size:0x24 scope:local -modes = .data:0x00000098; // type:object size:0x8 scope:local data:4byte +execModeTbl = .data:0x00000098; // type:object size:0x8 scope:local data:4byte lightTbl = .data:0x000000A0; // type:object size:0x1C scope:local shadowPosTbl = .data:0x000000BC; // type:object size:0x24 scope:local jumptable_1_data_E0 = .data:0x000000E0; // type:object size:0x24 scope:local -modes = .data:0x00000108; // type:object size:0x8 scope:local data:4byte +execModeTbl = .data:0x00000108; // type:object size:0x8 scope:local data:4byte lbl_1_data_110 = .data:0x00000110; // type:object size:0x8 scope:local -musicPageEnabledTbl = .data:0x00000118; // type:object size:0x38 scope:local data:4byte -modes = .data:0x00000150; // type:object size:0x18 scope:local data:4byte -optionTextTbl = .data:0x00000168; // type:object size:0xC scope:local +musicPageOn = .data:0x00000118; // type:object size:0x38 scope:local data:4byte +execModeTbl = .data:0x00000150; // type:object size:0x18 scope:local data:4byte +choiceMess = .data:0x00000168; // type:object size:0xC scope:local jumptable_1_data_174 = .data:0x00000174; // type:object size:0x24 scope:local jumptable_1_data_198 = .data:0x00000198; // type:object size:0x24 scope:local -sprTbl = .data:0x000001BC; // type:object size:0x4C scope:local -noteSprTbl = .data:0x00000208; // type:object size:0x8 scope:local -modes = .data:0x00000210; // type:object size:0x8 scope:local data:4byte +spriteDataTbl = .data:0x000001BC; // type:object size:0x4C scope:local +noteMdlTbl = .data:0x00000208; // type:object size:0x8 scope:local +execModeTbl = .data:0x00000210; // type:object size:0x8 scope:local data:4byte jumptable_1_data_218 = .data:0x00000218; // type:object size:0x1C scope:local jumptable_1_data_234 = .data:0x00000234; // type:object size:0x20 scope:local rumbleF = .bss:0x00000000; // type:object size:0x4 scope:local data:4byte scene = .bss:0x00000004; // type:object size:0x4 scope:local data:4byte -lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x8 data:4byte -lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x8 data:4byte -lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x8 data:4byte -lbl_1_bss_20 = .bss:0x00000020; // type:object size:0x8 data:4byte -lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x8 data:4byte -lbl_1_bss_30 = .bss:0x00000030; // type:object size:0x8 data:4byte -lbl_1_bss_38 = .bss:0x00000038; // type:object size:0x8 data:4byte -lbl_1_bss_40 = .bss:0x00000040; // type:object size:0x4 data:4byte +optionObjMan = .bss:0x00000008; // type:object size:0x8 data:4byte +optionCamera = .bss:0x00000010; // type:object size:0x8 data:4byte +optionRoom = .bss:0x00000018; // type:object size:0x8 data:4byte +optionGuide = .bss:0x00000020; // type:object size:0x8 data:4byte +optionState = .bss:0x00000028; // type:object size:0x8 data:4byte +optionRumble = .bss:0x00000030; // type:object size:0x8 data:4byte +optionSound = .bss:0x00000038; // type:object size:0x8 data:4byte +optionRecord = .bss:0x00000040; // type:object size:0x4 data:4byte diff --git a/include/REL/option.h b/include/REL/option.h index 245afabe..3052b323 100755 --- a/include/REL/option.h +++ b/include/REL/option.h @@ -15,70 +15,76 @@ typedef struct { /* 0x18 */ u32 messToBeSet; /* 0x1C */ s32 choice; /* 0x20 */ s32 state; // TODO add defines -} WindowWork; // Size 0x24 +} OptionWindow; // Size 0x24 -void fn_1_160(s16 sprite, BOOL hiddenF, s32 fadeInTime); -BOOL fn_1_550(u16 btn); -BOOL fn_1_584(u16 arg0); -BOOL fn_1_5B8(u16 arg0); +void OptionFadeSprite(s16 sprite, BOOL inF, s32 duration); +void OptionFadeModel(s16 model, BOOL inF, s32 duration); -omObjData *fn_1_7F8(void); -void fn_1_A3C(omObjData *object); -void fn_1_A6C(omObjData *object, float x, float y, float z, s32 duration); -void fn_1_AF0(omObjData *object, float x, float y, float z, s32 duration); -void fn_1_B74(omObjData *object, float zoom, float rot, float y, s32 duration); -float fn_1_BF8(omObjData *object); -float fn_1_C28(omObjData *object); -void fn_1_C88(omObjData *object, float *lookingAtX, float *lookingAtY, float *lookingAtZ); -s32 fn_1_CB8(omObjData *object); +BOOL OptionPadCheck(u16 btn); +BOOL OptionPadDStkRepCheck(u16 arg0); +BOOL OptionPadDStkCheck(u16 arg0); -omObjData *fn_1_15A4(void); -void fn_1_1798(omObjData *object); -void fn_1_1A2C(omObjData *object, s32 mode); -s32 fn_1_1A70(omObjData *object); +omObjData *OptionCameraCreate(void); +void OptionCameraKill(omObjData *object); +void OptionCameraTargetSet(omObjData *object, float x, float y, float z, s32 duration); +void OptionCameraFocusSet(omObjData *object, float x, float y, float z, s32 duration); +void OptionCameraViewSet(omObjData *object, float zoom, float rot, float y, s32 duration); +float OptionCameraZoomGet(omObjData *object); +float OptionCameraRotGet(omObjData *object); +void OptionCameraPosGet(omObjData *object, float *x, float *y, float *z); -omObjData *fn_1_21F8(void); -void fn_1_241C(omObjData *object); -void fn_1_2508(omObjData *object, float destPos, float distFromCam, s32 walkDuration); +void OptionCameraTargetGet(omObjData *object, float *x, float *y, float *z); +s32 OptionCameraDoneCheck(omObjData *object); -omObjData *fn_1_2E04(void); -void fn_1_2F4C(omObjData *object); +omObjData *OptionRoomCreate(void); +void OptionRoomKill(omObjData *object); +void OptionRoomExecModeSet(omObjData *object, s32 execMode); +s32 OptionRoomExecModeGet(omObjData *object); -omObjData *fn_1_3158(void); -void fn_1_322C(omObjData *object); -void fn_1_3290(omObjData *object, s32 mode); -s32 fn_1_39D4(omObjData *object); -void fn_1_3D54(omObjData *object); -void fn_1_3E1C(omObjData *object); -BOOL fn_1_3ED0(omObjData *object); +omObjData *OptionGuideCreate(void); +void OptionGuideKill(omObjData *object); +void OptionGuideWalkExec(omObjData *object, float angleEnd, float camDist, s32 duration); -omObjData *fn_1_4028(void); -void fn_1_42DC(omObjData *object); -void fn_1_4388(omObjData *object, s32 arg1); -s32 fn_1_43CC(omObjData *object); +omObjData *OptionStateCreate(void); +void OptionStateKill(omObjData *object); -omObjData *fn_1_80E4(void); -void fn_1_825C(omObjData *object); -void fn_1_82B0(omObjData *object, s32 arg1); -s32 fn_1_82F4(omObjData *object); +omObjData *OptionRumbleCreate(void); +void OptionRumbleKill(omObjData *object); +void OptionRumbleExecModeSet(omObjData *object, s32 execMode); +s32 OptionRumbleExecModeGet(omObjData *object); +void OptionRumbleMotionShowStart(omObjData *object); +void OptionRumbleMotionHideStart(omObjData *object); +BOOL OptionRumbleMotionCheck(omObjData *object); -WindowWork *fn_1_A44C(s32 id); -void fn_1_A6AC(WindowWork *work); -void fn_1_A6EC(WindowWork *work); -void fn_1_A704(WindowWork *work); -void fn_1_A71C(WindowWork *work, s32 mess); -void fn_1_A7B0(WindowWork *work, float x, float y); -void fn_1_A7F0(WindowWork *work); -void fn_1_A828(WindowWork *work); -void fn_1_A880(WindowWork *work, s32 choice); +omObjData *OptionSoundCreate(void); +void OptionSoundKill(omObjData *object); +void OptionSoundExecModeSet(omObjData *object, s32 execMode); +s32 OptionSoundExecModeGet(omObjData *object); -extern Process *lbl_1_bss_8; -extern omObjData *lbl_1_bss_10; -extern omObjData *lbl_1_bss_18; -extern omObjData *lbl_1_bss_20; -extern omObjData *lbl_1_bss_28; -extern omObjData *lbl_1_bss_30; -extern omObjData *lbl_1_bss_38; -extern omObjData *lbl_1_bss_40; +omObjData *OptionRecordCreate(void); +void OptionRecordKill(omObjData *object); +void OptionRecordExecModeSet(omObjData *object, s32 execMode); +s32 OptionRecordExecModeGet(omObjData *object); + +OptionWindow *OptionWinCreate(s32 id); +void OptionWinKill(OptionWindow *work); +void OptionWinAnimIn(OptionWindow *work); +void OptionWinAnimOut(OptionWindow *work); +void OptionWinMesSet(OptionWindow *work, s32 mess); +void OptionWinInsertMesSet(OptionWindow *work, s32 mess, s16 index); +void OptionWinPosSet(OptionWindow *work, float x, float y); +void OptionWinDispOn(OptionWindow *work); +void OptionWinDispOff(OptionWindow *work); +void fn_1_A860(OptionWindow *work); +void fn_1_A880(OptionWindow *work, s32 choice); + +extern Process *optionObjMan; +extern omObjData *optionCamera; +extern omObjData *optionRoom; +extern omObjData *optionGuide; +extern omObjData *optionState; +extern omObjData *optionRumble; +extern omObjData *optionSound; +extern omObjData *optionRecord; #endif diff --git a/src/REL/option/camera.c b/src/REL/option/camera.c index 3af79c9b..99e2aa68 100755 --- a/src/REL/option/camera.c +++ b/src/REL/option/camera.c @@ -9,116 +9,115 @@ #include "ext_math.h" typedef struct { - /* 0x00 */ Vec eyePos; - /* 0x0C */ Vec lookingAt; - /* 0x18 */ Vec tilt; + /* 0x00 */ Vec pos; + /* 0x0C */ Vec target; + /* 0x18 */ Vec up; /* 0x24 */ float zoom; /* 0x28 */ float rot; - /* 0x2C */ Vec prevEyePos; - /* 0x38 */ Vec prevLookingAt; + /* 0x2C */ Vec posPrev; + /* 0x38 */ Vec targetPrev; /* 0x44 */ char unk44[0xC]; /* 0x50 */ float prevZoom; /* 0x54 */ float prevRot; - /* 0x58 */ Vec eyePosTarget; - /* 0x64 */ Vec lookingAtTarget; + /* 0x58 */ Vec posTarget; + /* 0x64 */ Vec posFocus; /* 0x70 */ char unk70[0xC]; /* 0x7C */ float zoomTarget; /* 0x80 */ float rotTarget; - /* 0x84 */ float eyeVelocity; + /* 0x84 */ float timeEye; /* 0x88 */ float eyeSpeed; - /* 0x8C */ float lookingAtVelocity; - /* 0x90 */ float lookingAtSpeed; - /* 0x94 */ float rotVelocity; + /* 0x8C */ float timeTarget; + /* 0x90 */ float targetSpeed; + /* 0x94 */ float timeRot; /* 0x98 */ float rotSpeed; } CameraWork; // Size 0x9C -static void fn_1_C58(omObjData *object, float *arg1, float *arg2, float *arg3); -static void HandlerWrapper(omObjData *object); -static void HandleCamera(omObjData *object); +static void ExecCameraObj(omObjData *object); +static void ExecCamera(omObjData *object); static void fn_1_12E4(omObjData *object); static void PrintDebugInfo(omObjData *object); -omObjData *lbl_1_bss_10; +omObjData *optionCamera; static float pad_04_00000000_data[] = { 0.0f, 500.0f, 0.0f, 0.0f, -1.0f, 0.0f }; static s32 pad_04_00000018_data = -1; -omObjData *fn_1_7F8(void) +omObjData *OptionCameraCreate(void) { omObjData *object; CameraWork *work; - object = omAddObjEx(lbl_1_bss_8, 1001, 0, 0, 3, HandlerWrapper); + object = omAddObjEx(optionObjMan, 1001, 0, 0, 3, ExecCameraObj); work = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(CameraWork), MEMORY_DEFAULT_NUM); object->data = work; - work->eyePos.x = 0.0f; - work->eyePos.y = 0.0f; - work->eyePos.z = 0.0f; - work->lookingAt.x = 0.0f; - work->lookingAt.y = 0.0f; - work->lookingAt.z = 0.0f; - work->tilt.x = 0.0f; - work->tilt.y = 1.0f; - work->tilt.z = 0.0f; + work->pos.x = 0.0f; + work->pos.y = 0.0f; + work->pos.z = 0.0f; + work->target.x = 0.0f; + work->target.y = 0.0f; + work->target.z = 0.0f; + work->up.x = 0.0f; + work->up.y = 1.0f; + work->up.z = 0.0f; work->zoom = 0.0f; work->rot = 0.0f; - work->lookingAtVelocity = 1.0f; - work->eyeVelocity = 1.0f; - work->rotVelocity = 1.0f; + work->timeTarget = 1.0f; + work->timeEye = 1.0f; + work->timeRot = 1.0f; Hu3DCameraCreate(1); Hu3DCameraViewportSet(1, 0.0f, 0.0f, 640.0f, 480.0f, 0.0f, 1.0f); Hu3DCameraPerspectiveSet(1, 42.0f, 10.0f, 8000.0f, 1.2f); - fn_1_B74(object, 600.0f, 60.0f, 120.0f, 1); - fn_1_A6C(object, 180.0f, 120.0f, 0.0f, 1); + OptionCameraViewSet(object, 600.0f, 60.0f, 120.0f, 1); + OptionCameraTargetSet(object, 180.0f, 120.0f, 0.0f, 1); return object; } -void fn_1_A3C(omObjData *object) +void OptionCameraKill(omObjData *object) { HuMemDirectFree(object->data); } -void fn_1_A6C(omObjData *object, float x, float y, float z, s32 duration) +void OptionCameraTargetSet(omObjData *object, float x, float y, float z, s32 duration) { CameraWork *work = object->data; - work->eyePosTarget.x = x; - work->eyePosTarget.y = y; - work->eyePosTarget.z = z; - work->prevEyePos = work->eyePos; - work->eyeVelocity = 0.0f; + work->posTarget.x = x; + work->posTarget.y = y; + work->posTarget.z = z; + work->posPrev = work->pos; + work->timeEye = 0.0f; work->eyeSpeed = 1.0f / duration; } -void fn_1_AF0(omObjData *object, float x, float y, float z, s32 duration) +void OptionCameraFocusSet(omObjData *object, float x, float y, float z, s32 duration) { CameraWork *work = object->data; - work->lookingAtTarget.x = x; - work->lookingAtTarget.y = y; - work->lookingAtTarget.z = z; - work->prevLookingAt = work->lookingAt; - work->lookingAtVelocity = 0.0f; - work->lookingAtSpeed = 1.0f / duration; + work->posFocus.x = x; + work->posFocus.y = y; + work->posFocus.z = z; + work->targetPrev = work->target; + work->timeTarget = 0.0f; + work->targetSpeed = 1.0f / duration; } -void fn_1_B74(omObjData *object, float zoom, float rot, float y, s32 duration) +void OptionCameraViewSet(omObjData *object, float zoom, float rot, float y, s32 duration) { CameraWork *work = object->data; - work->lookingAtTarget.y = y; + work->posFocus.y = y; work->zoomTarget = zoom; work->rotTarget = rot; - work->prevLookingAt.y = work->lookingAt.y; + work->targetPrev.y = work->target.y; work->prevZoom = work->zoom; work->prevRot = work->rot; - work->rotVelocity = 0.0f; + work->timeRot = 0.0f; work->rotSpeed = 1.0f / duration; } // GetZoom -float fn_1_BF8(omObjData *object) +float OptionCameraZoomGet(omObjData *object) { CameraWork *work = object->data; float zoom; @@ -128,7 +127,7 @@ float fn_1_BF8(omObjData *object) } // GetRot -float fn_1_C28(omObjData *object) +float OptionCameraRotGet(omObjData *object) { CameraWork *work = object->data; float rot; @@ -137,117 +136,117 @@ float fn_1_C28(omObjData *object) return rot; } -// GetEyePos -static void fn_1_C58(omObjData *object, float *eyePosX, float *eyePosY, float *eyePosZ) +// Getpos +void OptionCameraPosGet(omObjData *object, float *x, float *y, float *z) { CameraWork *temp_r31 = object->data; - *eyePosX = temp_r31->eyePos.x; - *eyePosY = temp_r31->eyePos.y; - *eyePosZ = temp_r31->eyePos.z; + *x = temp_r31->pos.x; + *y = temp_r31->pos.y; + *z = temp_r31->pos.z; } -// GetLookingAt -void fn_1_C88(omObjData *object, float *lookingAtX, float *lookingAtY, float *lookingAtZ) +// Gettarget +void OptionCameraTargetGet(omObjData *object, float *x, float *y, float *z) { CameraWork *work = object->data; - *lookingAtX = work->lookingAt.x; - *lookingAtY = work->lookingAt.y; - *lookingAtZ = work->lookingAt.z; + *x = work->target.x; + *y = work->target.y; + *z = work->target.z; } // CameraDone -s32 fn_1_CB8(omObjData *object) +s32 OptionCameraDoneCheck(omObjData *object) { CameraWork *work = object->data; s32 var_r30 = 1; s32 var_r29 = 1; - if (!(work->lookingAtVelocity < 1.0f) && !(work->rotVelocity < 1.0f)) { + if (!(work->timeTarget < 1.0f) && !(work->timeRot < 1.0f)) { var_r29 = 0; } - if (var_r29 == 0 && !(work->eyeVelocity < 1.0f)) { + if (var_r29 == 0 && !(work->timeEye < 1.0f)) { var_r30 = 0; } return var_r30; } -static void HandlerWrapper(omObjData *object) +static void ExecCameraObj(omObjData *object) { - HandleCamera(object); + ExecCamera(object); } -static void HandleCamera(omObjData *object) +static void ExecCamera(omObjData *object) { CameraWork *work = object->data; - float temp_f28; - float xDiff; - float zDiff; + float weight; + float dx; + float dz; - if (work->eyeVelocity < 1.0f) { - temp_f28 = sind(90.0f * work->eyeVelocity); - work->eyePos.x = work->prevEyePos.x + temp_f28 * (work->eyePosTarget.x - work->prevEyePos.x); - work->eyePos.y = work->prevEyePos.y + temp_f28 * (work->eyePosTarget.y - work->prevEyePos.y); - work->eyePos.z = work->prevEyePos.z + temp_f28 * (work->eyePosTarget.z - work->prevEyePos.z); - if ((work->eyeVelocity += work->eyeSpeed) >= 1.0f) { - work->eyePos = work->eyePosTarget; + if (work->timeEye < 1.0f) { + weight = sind(90.0f * work->timeEye); + work->pos.x = work->posPrev.x + weight * (work->posTarget.x - work->posPrev.x); + work->pos.y = work->posPrev.y + weight * (work->posTarget.y - work->posPrev.y); + work->pos.z = work->posPrev.z + weight * (work->posTarget.z - work->posPrev.z); + if ((work->timeEye += work->eyeSpeed) >= 1.0f) { + work->pos = work->posTarget; } } - if (work->lookingAtVelocity < 1.0f) { - temp_f28 = sind(90.0f * work->lookingAtVelocity); - work->lookingAt.x = work->prevLookingAt.x + temp_f28 * (work->lookingAtTarget.x - work->prevLookingAt.x); - work->lookingAt.y = work->prevLookingAt.y + temp_f28 * (work->lookingAtTarget.y - work->prevLookingAt.y); - work->lookingAt.z = work->prevLookingAt.z + temp_f28 * (work->lookingAtTarget.z - work->prevLookingAt.z); - if ((work->lookingAtVelocity += work->lookingAtSpeed) >= 1.0f) { - work->lookingAt = work->lookingAtTarget; + if (work->timeTarget < 1.0f) { + weight = sind(90.0f * work->timeTarget); + work->target.x = work->targetPrev.x + weight * (work->posFocus.x - work->targetPrev.x); + work->target.y = work->targetPrev.y + weight * (work->posFocus.y - work->targetPrev.y); + work->target.z = work->targetPrev.z + weight * (work->posFocus.z - work->targetPrev.z); + if ((work->timeTarget += work->targetSpeed) >= 1.0f) { + work->target = work->posFocus; } } - if (work->rotVelocity < 1.0f) { - temp_f28 = sind(90.0f * work->rotVelocity); - work->lookingAt.y = work->prevLookingAt.y + temp_f28 * (work->lookingAtTarget.y - work->prevLookingAt.y); - work->zoom = work->prevZoom + temp_f28 * (work->zoomTarget - work->prevZoom); - work->rot = work->prevRot + temp_f28 * (work->rotTarget - work->prevRot); - if ((work->rotVelocity += work->rotSpeed) >= 1.0f) { - work->lookingAt.y = work->lookingAtTarget.y; + if (work->timeRot < 1.0f) { + weight = sind(90.0f * work->timeRot); + work->target.y = work->targetPrev.y + weight * (work->posFocus.y - work->targetPrev.y); + work->zoom = work->prevZoom + weight * (work->zoomTarget - work->prevZoom); + work->rot = work->prevRot + weight * (work->rotTarget - work->prevRot); + if ((work->timeRot += work->rotSpeed) >= 1.0f) { + work->target.y = work->posFocus.y; work->zoom = work->zoomTarget; work->rot = work->rotTarget; } - work->lookingAt.x = work->zoom * -sind(work->rot); - work->lookingAt.z = work->zoom * cosd(work->rot); + work->target.x = work->zoom * -sind(work->rot); + work->target.z = work->zoom * cosd(work->rot); } - xDiff = work->lookingAt.x - work->eyePos.x; - zDiff = work->lookingAt.z - work->eyePos.z; - work->zoom = sqrtf(xDiff * xDiff + zDiff * zDiff); - work->rot = fmod(-atan2d(xDiff, zDiff), 360.0); + dx = work->target.x - work->pos.x; + dz = work->target.z - work->pos.z; + work->zoom = sqrtf(dx * dx + dz * dz); + work->rot = fmod(-atan2d(dx, dz), 360.0); if (work->rot < 0.0f) { work->rot += 360.0f; } - Hu3DCameraPosSet(1, work->eyePos.x, work->eyePos.y, work->eyePos.z, work->tilt.x, work->tilt.y, work->tilt.z, work->lookingAt.x, - work->lookingAt.y, work->lookingAt.z); + Hu3DCameraPosSet(1, work->pos.x, work->pos.y, work->pos.z, work->up.x, work->up.y, work->up.z, work->target.x, + work->target.y, work->target.z); } -static void fn_1_12E4(omObjData *object) +static void CameraExecDebug(omObjData *object) { CameraWork *work; if (HuPadBtn[0] & 0xF) { work = object->data; - work->lookingAt.x += 0.5f * HuPadStkX[0]; - work->lookingAt.y += 0.5f * HuPadStkY[0]; - work->eyePos.z += 0.5f * HuPadTrigL[0]; - work->eyePos.z -= 0.5f * HuPadTrigR[0]; - work->eyePos.x += 0.5f * HuPadSubStkY[0]; - work->eyePos.y += 0.5f * HuPadSubStkX[0]; + work->target.x += 0.5f * HuPadStkX[0]; + work->target.y += 0.5f * HuPadStkY[0]; + work->pos.z += 0.5f * HuPadTrigL[0]; + work->pos.z -= 0.5f * HuPadTrigR[0]; + work->pos.x += 0.5f * HuPadSubStkY[0]; + work->pos.y += 0.5f * HuPadSubStkX[0]; } } -static void PrintDebugInfo(omObjData *object) +static void CameraPrintDebug(omObjData *object) { CameraWork *work = object->data; - print8(32, 64, 1.5f, "AT : x=%.2f y=%.2f z=%.2f", work->lookingAt.x, work->lookingAt.y, work->lookingAt.z); - print8(32, 80, 1.5f, "EYE : x=%.2f y=%.2f z=%.2f", work->eyePos.x, work->eyePos.y, work->eyePos.z); + print8(32, 64, 1.5f, "AT : x=%.2f y=%.2f z=%.2f", work->target.x, work->target.y, work->target.z); + print8(32, 80, 1.5f, "EYE : x=%.2f y=%.2f z=%.2f", work->pos.x, work->pos.y, work->pos.z); print8(32, 96, 1.5f, "R : %.2f DEG: %.2f", work->zoom, work->rot); } diff --git a/src/REL/option/guide.c b/src/REL/option/guide.c index df72838a..2487f72c 100755 --- a/src/REL/option/guide.c +++ b/src/REL/option/guide.c @@ -9,19 +9,18 @@ #include "ext_math.h" typedef struct { - /* 0x00 */ s32 mode; - /* 0x04 */ s16 motionIdx; - /* 0x06 */ char unk06[2]; + /* 0x00 */ s32 execMode; + /* 0x04 */ s16 motion; /* 0x08 */ Vec pos; /* 0x14 */ Vec newPos; /* 0x20 */ Vec rot; - /* 0x2C */ Vec posChange; - /* 0x38 */ float distanceToMove; - /* 0x3C */ float unkAngle; - /* 0x40 */ float posToMoveTo; - /* 0x44 */ float distFromCam; + /* 0x2C */ Vec posDelta; + /* 0x38 */ float distRemain; + /* 0x3C */ float angle; + /* 0x40 */ float angleEnd; + /* 0x44 */ float camDist; /* 0x48 */ char unk48[0xC]; - /* 0x54 */ float velocity; + /* 0x54 */ float time; /* 0x58 */ float speed; /* 0x5C */ s32 unk5C; /* 0x60 */ s32 unk60; @@ -30,29 +29,29 @@ typedef struct { #define MODE_DISABLED 0 #define MODE_HANDLE_GUIDE 1 -static void ChangeMode(omObjData *object, s32 mode); -static s32 GetMode(omObjData *object); -static void HandleGuide(omObjData *object); +static void SetExecMode(omObjData *object, s32 mode); +static s32 GetExecMode(omObjData *object); +static void ExecGuide(omObjData *object); static void UpdateGuide(omObjData *object); -static float fn_1_2D00(float arg0, float arg1, float arg2); +static float LerpAngle(float arg0, float arg1, float arg2); -omObjData *lbl_1_bss_20; +omObjData *optionGuide; -static const s32 lbl_1_rodata_E0[] = { +static const s32 guideMotTbl[] = { DATA_MAKE_NUM(DATADIR_OPTION, 16), DATA_MAKE_NUM(DATADIR_OPTION, 17), DATA_MAKE_NUM(DATADIR_OPTION, 18), }; -static omObjFunc modes[] = { NULL, HandleGuide }; +static omObjFunc execModeTbl[] = { NULL, ExecGuide }; -omObjData *fn_1_21F8(void) +omObjData *OptionGuideCreate(void) { omObjData *object; GuideWork *work; s32 i; - object = omAddObjEx(lbl_1_bss_8, 1002, 1, 3, 2, NULL); + object = omAddObjEx(optionObjMan, 1002, 1, 3, 2, NULL); work = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(GuideWork), MEMORY_DEFAULT_NUM); object->data = work; work->pos.x = -298.59f; @@ -63,25 +62,25 @@ omObjData *fn_1_21F8(void) work->rot.y = 134.42f; work->rot.z = 0.0f; - work->posChange.x = 0.0f; - work->posChange.z = 0.0f; - work->posChange.y = 0.0f; + work->posDelta.x = 0.0f; + work->posDelta.z = 0.0f; + work->posDelta.y = 0.0f; object->model[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_OPTION, 12)); Hu3DModelLayerSet(object->model[0], 1); for (i = 0; i < 3; i++) { - object->motion[i] = Hu3DJointMotion(object->model[0], HuDataSelHeapReadNum(lbl_1_rodata_E0[i], MEMORY_DEFAULT_NUM, HEAP_DATA)); + object->motion[i] = Hu3DJointMotion(object->model[0], HuDataSelHeapReadNum(guideMotTbl[i], MEMORY_DEFAULT_NUM, HEAP_DATA)); } work->unk5C = CharModelEffectNpcInit(object->model[0], object->motion[2], 1, 0xC); work->unk60 = CharModelEffectNpcInit(object->model[0], object->motion[1], 0, 0xC); CharModelLayerSetAll(1); Hu3DModelShadowSet(object->model[0]); Hu3DMotionShiftSet(object->model[0], object->motion[0], 0.0f, 8.0f, 0x40000001); - ChangeMode(object, MODE_DISABLED); + SetExecMode(object, MODE_DISABLED); UpdateGuide(object); return object; } -void fn_1_241C(omObjData *object) +void OptionGuideKill(omObjData *object) { GuideWork *work = object->data; s32 i; @@ -95,90 +94,90 @@ void fn_1_241C(omObjData *object) HuMemDirectFree(work); } -static void ChangeMode(omObjData *object, s32 mode) +static void SetExecMode(omObjData *object, s32 execMode) { GuideWork *work = object->data; - work->mode = mode; - object->func = modes[mode]; + work->execMode = execMode; + object->func = execModeTbl[execMode]; object->unk10 = 0; object->unk10 = 0; } -static s32 GetMode(omObjData *object) +static s32 GetExecMode(omObjData *object) { GuideWork *work = object->data; - return work->mode; + return work->execMode; } -void fn_1_2508(omObjData *object, float destPos, float distFromCam, s32 walkDuration) +void OptionGuideWalkExec(omObjData *object, float angleEnd, float camDist, s32 duration) { GuideWork *work = object->data; - work->posToMoveTo = destPos; - work->distFromCam = distFromCam; - work->velocity = 0.0f; - work->speed = 1.0f / walkDuration; - work->motionIdx = 0; - ChangeMode(object, MODE_HANDLE_GUIDE); + work->angleEnd = angleEnd; + work->camDist = camDist; + work->time = 0.0f; + work->speed = 1.0f / duration; + work->motion = 0; + SetExecMode(object, MODE_HANDLE_GUIDE); } -static void HandleGuide(omObjData *object) +static void ExecGuide(omObjData *object) { GuideWork *work = object->data; - float var_f31; - float var_f30; + float angle; + float weight; switch (object->unk10) { case 0: - work->unkAngle = fmod(-atan2d(work->pos.x, work->pos.z), 360.0); - if (work->unkAngle < 0.0f) { - work->unkAngle += 360.0f; + work->angle = fmod(-atan2d(work->pos.x, work->pos.z), 360.0); + if (work->angle < 0.0f) { + work->angle += 360.0f; } object->unk10 = 1; /* fallthrough */ case 1: - var_f30 = sind(90.0f * work->velocity); - var_f31 = work->unkAngle + var_f30 * (work->posToMoveTo - work->unkAngle); - work->newPos.x = work->distFromCam * -sind(var_f31); - work->newPos.z = work->distFromCam * cosd(var_f31); + weight = sind(90.0f * work->time); + angle = work->angle + weight * (work->angleEnd - work->angle); + work->newPos.x = work->camDist * -sind(angle); + work->newPos.z = work->camDist * cosd(angle); work->newPos.y = 0.0f; - work->posChange.x = work->newPos.x - work->pos.x; - work->posChange.z = work->newPos.z - work->pos.z; - if (work->velocity <= 0.0f) { - work->posChange.x = 0.0f; - work->posChange.z = 0.0f; + work->posDelta.x = work->newPos.x - work->pos.x; + work->posDelta.z = work->newPos.z - work->pos.z; + if (work->time <= 0.0f) { + work->posDelta.x = 0.0f; + work->posDelta.z = 0.0f; work->pos = work->newPos; } - if ((work->velocity += work->speed) < 1.0f) { + if ((work->time += work->speed) < 1.0f) { break; } - var_f31 = fmod(-atan2d(work->pos.x, work->pos.z), 360.0); - if (var_f31 < 0.0f) { - var_f31 += 360.0f; + angle = fmod(-atan2d(work->pos.x, work->pos.z), 360.0); + if (angle < 0.0f) { + angle += 360.0f; } - work->newPos.x = 422.0 * -sind(var_f31); - work->newPos.z = 422.0 * cosd(var_f31); - work->posChange.x = (work->newPos.x - work->pos.x) / 10.0f; - work->posChange.z = (work->newPos.z - work->pos.z) / 10.0f; + work->newPos.x = 422.0 * -sind(angle); + work->newPos.z = 422.0 * cosd(angle); + work->posDelta.x = (work->newPos.x - work->pos.x) / 10.0f; + work->posDelta.z = (work->newPos.z - work->pos.z) / 10.0f; work->speed = 0.1f; - work->velocity = 0.0f; + work->time = 0.0f; object->unk10 = 2; /* fallthrough */ case 2: - if ((work->velocity += work->speed) < 1.0f) { + if ((work->time += work->speed) < 1.0f) { break; } object->unk10 = 3; /* fallthrough */ case 3: work->pos = work->newPos; - work->posChange.x = 0.0f; - work->posChange.y = 0.0f; - work->posChange.z = 0.0f; + work->posDelta.x = 0.0f; + work->posDelta.y = 0.0f; + work->posDelta.z = 0.0f; UpdateGuide(object); - ChangeMode(object, MODE_DISABLED); + SetExecMode(object, MODE_DISABLED); break; } UpdateGuide(object); @@ -187,51 +186,51 @@ static void HandleGuide(omObjData *object) static void UpdateGuide(omObjData *object) { GuideWork *work = object->data; - s16 var_r29; + s16 motion; - var_r29 = 0; - work->distanceToMove = sqrtf(work->posChange.x * work->posChange.x + work->posChange.z * work->posChange.z); - if (0.001f <= work->distanceToMove) { - if (14.0f <= work->distanceToMove) { - work->posChange.x /= work->distanceToMove; - work->posChange.z /= work->distanceToMove; - work->distanceToMove = 14.0f; - work->posChange.x = 14.0f * work->posChange.x; - work->posChange.z = 14.0f * work->posChange.z; + motion = 0; + work->distRemain = sqrtf(work->posDelta.x * work->posDelta.x + work->posDelta.z * work->posDelta.z); + if (0.001f <= work->distRemain) { + if (14.0f <= work->distRemain) { + work->posDelta.x /= work->distRemain; + work->posDelta.z /= work->distRemain; + work->distRemain = 14.0f; + work->posDelta.x = 14.0f * work->posDelta.x; + work->posDelta.z = 14.0f * work->posDelta.z; } - work->rot.y = fn_1_2D00(work->rot.y, atan2d(work->posChange.x, work->posChange.z), 0.4f); - if (8.0f <= work->distanceToMove) { - var_r29 = 2; + work->rot.y = LerpAngle(work->rot.y, atan2d(work->posDelta.x, work->posDelta.z), 0.4f); + if (8.0f <= work->distRemain) { + motion = 2; } else { - var_r29 = 1; + motion = 1; } } - work->pos.x += work->posChange.x; - work->pos.z += work->posChange.z; - if (work->motionIdx != var_r29) { - Hu3DMotionShiftSet(*object->model, object->motion[var_r29], 0.0f, 8.0f, 0x40000001); - work->motionIdx = var_r29; + work->pos.x += work->posDelta.x; + work->pos.z += work->posDelta.z; + if (work->motion != motion) { + Hu3DMotionShiftSet(*object->model, object->motion[motion], 0.0f, 8.0f, 0x40000001); + work->motion = motion; } omSetTra(object, work->pos.x, work->pos.y, work->pos.z); omSetRot(object, work->rot.x, work->rot.y, work->rot.z); } -static float fn_1_2D00(float arg0, float arg1, float arg2) +static float LerpAngle(float start, float end, float time) { - float var_f30; - float var_f31; + float angle; + float delta; - var_f31 = fmod(arg1 - arg0, 360.0); - if (0.0f > var_f31) { - var_f31 += 360.0f; + delta = fmod(end - start, 360.0); + if (0.0f > delta) { + delta += 360.0f; } - if (180.0f < var_f31) { - var_f31 -= 360.0f; + if (180.0f < delta) { + delta -= 360.0f; } - var_f30 = fmod(arg0 + var_f31 * arg2, 360.0); - if (0.0f > var_f30) { - var_f30 += 360.0f; + angle = fmod(start + delta * time, 360.0); + if (0.0f > angle) { + angle += 360.0f; } - return var_f30; + return angle; } diff --git a/src/REL/option/record.c b/src/REL/option/record.c index 1d435390..d625d764 100755 --- a/src/REL/option/record.c +++ b/src/REL/option/record.c @@ -21,15 +21,15 @@ #define WIN_COUNT_NUM_DIGITS 3 #define MAX_COINS_NUM_DIGITS 4 #define MAX_STARS_NUM_DIGITS 4 -#define MG_DECIMAL_NUM_DIGITS 8 +#define MG_SCORE_NUM_DIGITS 8 #define MG_TIME_NUM_DIGITS 8 #define DISPLAY_TYPE_TIME 0 -#define DISPLAY_TYPE_DECIMAL 1 +#define DISPLAY_TYPE_SCORE 1 typedef struct { /* 0x00 */ s32 playCount; - /* 0x04 */ s32 winCounts[8]; + /* 0x04 */ s32 winCount[8]; /* 0x24 */ s32 maxCoins; /* 0x28 */ s32 maxStars; } BoardRecordData; // Size 0x2C @@ -37,15 +37,15 @@ typedef struct { typedef struct { /* 0x000 */ omObjData *system; /* 0x004 */ omObjData *hand; - /* 0x008 */ WindowWork *window[10]; - /* 0x030 */ s32 mode; + /* 0x008 */ OptionWindow *window[10]; + /* 0x030 */ s32 execMode; /* 0x034 */ s16 sprList[153]; - /* 0x166 */ char unk166[6]; + /* 0x166 */ s16 unk166[3]; /* 0x16C */ s32 recordType; /* 0x170 */ s32 board; /* 0x174 */ s32 mgPage; - /* 0x178 */ BoardRecordData boardRecords[6]; - /* 0x280 */ s32 mgRecords[6]; + /* 0x178 */ BoardRecordData boardRecord[6]; + /* 0x280 */ s32 mgRecord[6]; /* 0x298 */ s32 cameraDoneF; /* 0x29C */ s32 changeTimer; } RecordWork; // Size 0x2A0 @@ -59,48 +59,48 @@ typedef struct { #define MODE_DISABLED 0 #define MODE_HANDLE_RECORD 1 -static void HandleRecord(omObjData *object); +static void ExecRecord(omObjData *object); static omObjData *CreateSystem(void); -static void KillSystem(omObjData *system); -static void StartSystemMotion(omObjData *system, s32 type); +static void KillSystem(omObjData *object); +static void StartSystemMotion(omObjData *object, s32 type); static omObjData *CreateHand(void); -static void KillHand(omObjData *hand); +static void KillHand(omObjData *object); static void CreateSpr(omObjData *object); static void KillSpr(omObjData *object); -static s32 GetDigitSprAt(s32 n, s32 offsetFromRight); -static void DisplayBoardRecord(omObjData *object, s32 board); -static void HideBoardRecordSpr(omObjData *object); -static void DisplayTotalResults(omObjData *object); -static void HideTotalResultsSpr(omObjData *object); -static void ShowMGRecord(omObjData *object, s32 page); -static void HideMGRecordSpr(omObjData *object); +static s32 GetDigit(s32 value, s32 place); +static void ShowBoard(omObjData *object, s32 board); +static void HideBoard(omObjData *object); +static void ShowTotal(omObjData *object); +static void HideTotal(omObjData *object); +static void ShowMG(omObjData *object, s32 page); +static void HideMG(omObjData *object); -omObjData *lbl_1_bss_40; +omObjData *optionRecord; static const s32 mgRecordIdxTbl[] = { 0, 1, 2, 3, 5, 10 }; -static omObjFunc modes[] = { NULL, HandleRecord }; +static omObjFunc execModeTbl[] = { NULL, ExecRecord }; -omObjData *fn_1_80E4(void) +omObjData *OptionRecordCreate(void) { omObjData *object; RecordWork *work; s32 i; s32 character; - object = omAddObjEx(lbl_1_bss_8, 1003, 0, 0, 1, NULL); + object = omAddObjEx(optionObjMan, 1003, 0, 0, 1, NULL); work = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(RecordWork), MEMORY_DEFAULT_NUM); object->data = work; for (i = 0; i < NUM_BOARDS; i++) { - work->boardRecords[i].playCount = GWBoardPlayCountGet(i); - work->boardRecords[i].maxStars = GWBoardMaxStarsGet(i); - work->boardRecords[i].maxCoins = GWBoardMaxCoinsGet(i); + work->boardRecord[i].playCount = GWBoardPlayCountGet(i); + work->boardRecord[i].maxStars = GWBoardMaxStarsGet(i); + work->boardRecord[i].maxCoins = GWBoardMaxCoinsGet(i); for (character = 0; character < NUM_CHARACTERS; character++) { - work->boardRecords[i].winCounts[character] = GWBoardWinCountGet(character, i); + work->boardRecord[i].winCount[character] = GWBoardWinCountGet(character, i); } } for (i = 0; i < 6; i++) { - work->mgRecords[i] = GWMGRecordGet(mgRecordIdxTbl[i]); + work->mgRecord[i] = GWMGRecordGet(mgRecordIdxTbl[i]); } work->board = 0; work->mgPage = 0; @@ -108,11 +108,11 @@ omObjData *fn_1_80E4(void) work->system = CreateSystem(); work->hand = CreateHand(); CreateSpr(object); - fn_1_82B0(object, MODE_DISABLED); + OptionRecordExecModeSet(object, MODE_DISABLED); return object; } -void fn_1_825C(omObjData *object) +void OptionRecordKill(omObjData *object) { RecordWork *work = object->data; @@ -122,90 +122,90 @@ void fn_1_825C(omObjData *object) HuMemDirectFree(work); } -void fn_1_82B0(omObjData *object, s32 mode) +void OptionRecordExecModeSet(omObjData *object, s32 execMode) { RecordWork *work = object->data; - work->mode = mode; - object->func = modes[mode]; + work->execMode = execMode; + object->func = execModeTbl[execMode]; object->unk10 = 0; object->unk10 = 0; } -s32 fn_1_82F4(omObjData *object) +s32 OptionRecordExecModeGet(omObjData *object) { RecordWork *work = object->data; - return work->mode; + return work->execMode; } -static void HandleRecord(omObjData *object) +static void ExecRecord(omObjData *object) { RecordWork *work = object->data; - Vec sp8; + Vec pos; s32 i; switch (object->unk10) { case 0: - work->window[0] = fn_1_A44C(0); - work->window[1] = fn_1_A44C(1); + work->window[0] = OptionWinCreate(0); + work->window[1] = OptionWinCreate(1); for (i = 0; i < 8; i++) { - work->window[i + 2] = fn_1_A44C(3); + work->window[i + 2] = OptionWinCreate(3); } - fn_1_AF0(lbl_1_bss_10, 519.0f, 125.0f, 300.0f, 0x28); - fn_1_A6C(lbl_1_bss_10, 308.98f, 125.0f, 178.74f, 0x28); + OptionCameraFocusSet(optionCamera, 519.0f, 125.0f, 300.0f, 0x28); + OptionCameraTargetSet(optionCamera, 308.98f, 125.0f, 178.74f, 0x28); work->board = 0; work->mgPage = 0; work->cameraDoneF = 0; object->unk10 = 1; /* fallthrough */ case 1: - if (fn_1_CB8(lbl_1_bss_10) != 0) { + if (OptionCameraDoneCheck(optionCamera) != 0) { break; } - fn_1_3D54(lbl_1_bss_30); + OptionRumbleMotionShowStart(optionRumble); espBankSet(work->sprList[47], 0); espBankSet(work->sprList[48], 2); espPosSet(work->sprList[47], 46.0f, 240.0f); espPosSet(work->sprList[48], 494.0f, 240.0f); if (work->recordType == RECORD_TYPE_BOARD) { - fn_1_160(work->sprList[47], 1, 10); - fn_1_160(work->sprList[48], 1, 10); + OptionFadeSprite(work->sprList[47], 1, 10); + OptionFadeSprite(work->sprList[48], 1, 10); work->changeTimer = 0; } object->unk10 = 2; /* fallthrough */ case 2: - HideBoardRecordSpr(object); - HideMGRecordSpr(object); - HideTotalResultsSpr(object); + HideBoard(object); + HideMG(object); + HideTotal(object); switch (work->recordType) { case RECORD_TYPE_BOARD: if (work->board < 6) { - DisplayBoardRecord(object, work->board); + ShowBoard(object, work->board); } else { - DisplayTotalResults(object); + ShowTotal(object); } - fn_1_A6EC(work->window[0]); - fn_1_A71C(work->window[0], MAKE_MESSID(47, 5)); + OptionWinAnimIn(work->window[0]); + OptionWinMesSet(work->window[0], MAKE_MESSID(47, 5)); break; case RECORD_TYPE_MG: - ShowMGRecord(object, work->mgPage); - fn_1_A6EC(work->window[0]); - fn_1_A71C(work->window[0], MAKE_MESSID(47, 6)); + ShowMG(object, work->mgPage); + OptionWinAnimIn(work->window[0]); + OptionWinMesSet(work->window[0], MAKE_MESSID(47, 6)); break; } - fn_1_A6EC(work->window[1]); - fn_1_A71C(work->window[1], MAKE_MESSID(47, 169)); + OptionWinAnimIn(work->window[1]); + OptionWinMesSet(work->window[1], MAKE_MESSID(47, 169)); if (!work->cameraDoneF) { Hu3DModelAttrReset(work->hand->model[0], 1); work->cameraDoneF = TRUE; } - sp8.x = 505.0 * -sin(305 * M_PI / 180.0); - sp8.z = 505.0 * cos(305 * M_PI / 180.0); - sp8.y = 144.0f - 14.0f * work->recordType; - omSetTra(work->hand, sp8.x, sp8.y, sp8.z); + pos.x = 505.0 * -sin(305 * M_PI / 180.0); + pos.z = 505.0 * cos(305 * M_PI / 180.0); + pos.y = 144.0f - 14.0f * work->recordType; + omSetTra(work->hand, pos.x, pos.y, pos.z); object->unk10 = 3; /* fallthrough */ case 3: @@ -221,26 +221,26 @@ static void HandleRecord(omObjData *object) if (work->window[1]->state != 0) { break; } - if (fn_1_550(PAD_BUTTON_B)) { + if (OptionPadCheck(PAD_BUTTON_B)) { HuAudFXPlay(3); object->unk10 = 5; } - else if (fn_1_584(8) != 0 && work->recordType == RECORD_TYPE_MG) { + else if (OptionPadDStkRepCheck(8) != 0 && work->recordType == RECORD_TYPE_MG) { work->recordType = RECORD_TYPE_BOARD; work->board = 0; StartSystemMotion(work->system, work->recordType); - fn_1_160(work->sprList[47], 1, 5); - fn_1_160(work->sprList[48], 1, 5); + OptionFadeSprite(work->sprList[47], 1, 5); + OptionFadeSprite(work->sprList[48], 1, 5); work->changeTimer = 5; HuAudFXPlay(0x83F); object->unk10 = 2; } - else if (fn_1_584(4) != 0 && work->recordType == RECORD_TYPE_BOARD) { + else if (OptionPadDStkRepCheck(4) != 0 && work->recordType == RECORD_TYPE_BOARD) { work->recordType = RECORD_TYPE_MG; work->mgPage = 0; StartSystemMotion(work->system, work->recordType); - fn_1_160(work->sprList[47], 0, 5); - fn_1_160(work->sprList[48], 0, 5); + OptionFadeSprite(work->sprList[47], 0, 5); + OptionFadeSprite(work->sprList[48], 0, 5); work->changeTimer = 5; HuAudFXPlay(0x83F); object->unk10 = 2; @@ -248,7 +248,7 @@ static void HandleRecord(omObjData *object) else { switch (work->recordType) { case RECORD_TYPE_BOARD: - if (fn_1_550(PAD_TRIGGER_L)) { + if (OptionPadCheck(PAD_TRIGGER_L)) { if (--work->board < 0) { work->board = 6; } @@ -261,7 +261,7 @@ static void HandleRecord(omObjData *object) object->unk10 = 2; return; } - if (fn_1_550(PAD_TRIGGER_R)) { + if (OptionPadCheck(PAD_TRIGGER_R)) { if (++work->board >= 7) { work->board = 0; } @@ -280,27 +280,27 @@ static void HandleRecord(omObjData *object) } break; case 5: - fn_1_3E1C(lbl_1_bss_30); + OptionRumbleMotionHideStart(optionRumble); if (work->recordType == RECORD_TYPE_BOARD) { - fn_1_160(work->sprList[47], 0, 10); - fn_1_160(work->sprList[48], 0, 10); + OptionFadeSprite(work->sprList[47], 0, 10); + OptionFadeSprite(work->sprList[48], 0, 10); } - fn_1_A704(work->window[0]); - fn_1_A704(work->window[1]); + OptionWinAnimOut(work->window[0]); + OptionWinAnimOut(work->window[1]); Hu3DModelAttrSet(work->hand->model[0], 1); object->unk10 = 6; /* fallthrough */ case 6: - if (work->window[1]->state == 0 && fn_1_3ED0(lbl_1_bss_30) == 0) { + if (work->window[1]->state == 0 && OptionRumbleMotionCheck(optionRumble) == 0) { for (i = 0; i < 10; i++) { - fn_1_A6AC(work->window[i]); + OptionWinKill(work->window[i]); } - HideBoardRecordSpr(object); - HideMGRecordSpr(object); - HideTotalResultsSpr(object); - fn_1_AF0(lbl_1_bss_10, 519.62f, 120.0f, 300.0f, 40); - fn_1_A6C(lbl_1_bss_10, 0.0f, 120.0f, 0.0f, 0x28); - fn_1_82B0(object, MODE_DISABLED); + HideBoard(object); + HideMG(object); + HideTotal(object); + OptionCameraFocusSet(optionCamera, 519.62f, 120.0f, 300.0f, 40); + OptionCameraTargetSet(optionCamera, 0.0f, 120.0f, 0.0f, 0x28); + OptionRecordExecModeSet(object, MODE_DISABLED); } break; } @@ -308,29 +308,29 @@ static void HandleRecord(omObjData *object) static omObjData *CreateSystem(void) { - omObjData *system; + omObjData *object; - system = omAddObjEx(lbl_1_bss_8, 1003, 1, 0, 1, NULL); - system->model[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_OPTION, 1)); - Hu3DModelAttrSet(system->model[0], 0x40000002); - Hu3DModelLayerSet(system->model[0], 0); - Hu3DMotionStartEndSet(system->model[0], 0.0f, 6.0f); - Hu3DMotionTimeSet(system->model[0], 6.0f); - return system; + object = omAddObjEx(optionObjMan, 1003, 1, 0, 1, NULL); + object->model[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_OPTION, 1)); + Hu3DModelAttrSet(object->model[0], 0x40000002); + Hu3DModelLayerSet(object->model[0], 0); + Hu3DMotionStartEndSet(object->model[0], 0.0f, 6.0f); + Hu3DMotionTimeSet(object->model[0], 6.0f); + return object; } -static void KillSystem(omObjData *system) +static void KillSystem(omObjData *object) { s32 i; for (i = 0; i < 1; i++) { - Hu3DModelKill(system->model[i]); + Hu3DModelKill(object->model[i]); } } -static void StartSystemMotion(omObjData *system, s32 type) +static void StartSystemMotion(omObjData *object, s32 type) { - s16 model = system->model[0]; + s16 model = object->model[0]; switch (type) { case RECORD_TYPE_BOARD: @@ -342,29 +342,29 @@ static void StartSystemMotion(omObjData *system, s32 type) Hu3DMotionTimeSet(model, 6.0f); break; } - Hu3DModelAttrReset(system->model[0], 0x40000002); + Hu3DModelAttrReset(object->model[0], 0x40000002); } static omObjData *CreateHand(void) { - omObjData *hand; + omObjData *object; - hand = omAddObjEx(lbl_1_bss_8, 1003, 1, 0, 1, NULL); - hand->model[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_OPTION, 14)); - Hu3DModelLayerSet(hand->model[0], 2); - Hu3DModelAttrSet(hand->model[0], 0x40000001); - omSetRot(hand, 30.0f, 190.0f, 0.0f); - omSetSca(hand, 0.6f, 0.6f, 0.6f); - Hu3DModelAttrSet(hand->model[0], 1); - return hand; + object = omAddObjEx(optionObjMan, 1003, 1, 0, 1, NULL); + object->model[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_OPTION, 14)); + Hu3DModelLayerSet(object->model[0], 2); + Hu3DModelAttrSet(object->model[0], 0x40000001); + omSetRot(object, 30.0f, 190.0f, 0.0f); + omSetSca(object, 0.6f, 0.6f, 0.6f); + Hu3DModelAttrSet(object->model[0], 1); + return object; } -static void KillHand(omObjData *hand) +static void KillHand(omObjData *object) { s32 i; for (i = 0; i < 1; i++) { - Hu3DModelKill(hand->model[i]); + Hu3DModelKill(object->model[i]); } } @@ -551,18 +551,18 @@ static void KillSpr(omObjData *object) } } -static s32 GetDigitSprAt(s32 n, s32 offsetFromRight) +static s32 GetDigit(s32 value, s32 place) { s32 i; i = 1; - while (offsetFromRight-- != 0) { + while (place-- != 0) { i *= 10; } - return (n % (i * 10)) / i; + return (value % (i * 10)) / i; } -static void DisplayBoardRecord(omObjData *object, s32 board) +static void ShowBoard(omObjData *object, s32 board) { RecordWork *work = object->data; s32 value; @@ -570,36 +570,36 @@ static void DisplayBoardRecord(omObjData *object, s32 board) s32 j; espPosSet(work->sprList[board], 275.0f, 72.0f); - value = work->boardRecords[work->board].playCount; + value = work->boardRecord[work->board].playCount; for (i = 0; i < PLAY_COUNT_NUM_DIGITS; i++) { espPosSet(work->sprList[i + 11], 323.0f + 20.0f * i, 116.0f); if (value > 999) { espBankSet(work->sprList[i + 11], i + 10); } else { - espBankSet(work->sprList[i + 11], GetDigitSprAt(value, 3 - i)); + espBankSet(work->sprList[i + 11], GetDigit(value, 3 - i)); } } espPosSet(work->sprList[8], 416.0f, 120.0f); - value = work->boardRecords[work->board].maxCoins; + value = work->boardRecord[work->board].maxCoins; for (i = 0; i < MAX_COINS_NUM_DIGITS; i++) { espPosSet(work->sprList[i + 15], 364.0f + 20.0f * i, 268.0f); if (value > 999) { espBankSet(work->sprList[i + 15], i + 10); } else { - espBankSet(work->sprList[i + 15], GetDigitSprAt(value, 3 - i)); + espBankSet(work->sprList[i + 15], GetDigit(value, 3 - i)); } } espPosSet(work->sprList[9], 456.0f, 268.0f); - value = work->boardRecords[work->board].maxStars; + value = work->boardRecord[work->board].maxStars; for (i = 0; i < MAX_STARS_NUM_DIGITS; i++) { espPosSet(work->sprList[i + 19], 364.0f + 20.0f * i, 312.0f); if (value > 999) { espBankSet(work->sprList[i + 19], i + 10); } else { - espBankSet(work->sprList[i + 19], GetDigitSprAt(value, 3 - i)); + espBankSet(work->sprList[i + 19], GetDigit(value, 3 - i)); } } espPosSet(work->sprList[10], 456.0f, 312.0f); @@ -607,7 +607,7 @@ static void DisplayBoardRecord(omObjData *object, s32 board) espPosSet(work->sprList[i + 49], 92.0f + 50.0f * i, 200.0f); for (j = 0; j < WIN_COUNT_NUM_DIGITS; j++) { espPosSet(work->sprList[i * 3 + 23 + j], 80.0f + 50.0f * i + 12.0f * j, 230.0f); - espBankSet(work->sprList[i * 3 + 23 + j], GetDigitSprAt(work->boardRecords[work->board].winCounts[i], 2 - j)); + espBankSet(work->sprList[i * 3 + 23 + j], GetDigit(work->boardRecord[work->board].winCount[i], 2 - j)); } } espPosSet(work->sprList[47], 48.0f, 240.0f); @@ -632,37 +632,52 @@ static void DisplayBoardRecord(omObjData *object, s32 board) } } for (i = 0; i < 4; i++) { - fn_1_A7F0(work->window[i + 2]); + OptionWinDispOn(work->window[i + 2]); } - fn_1_A7B0(work->window[2], 64.0f, 96.0f); - fn_1_A71C(work->window[2], MAKE_MESSID(47, 19)); - fn_1_A7B0(work->window[3], 64.0f, 140.0f); - fn_1_A71C(work->window[3], MAKE_MESSID(47, 20)); - fn_1_A7B0(work->window[4], 64.0f, 248.0f); - fn_1_A71C(work->window[4], MAKE_MESSID(47, 21)); - fn_1_A7B0(work->window[5], 64.0f, 292.0f); - fn_1_A71C(work->window[5], MAKE_MESSID(47, 22)); + OptionWinPosSet(work->window[2], 64.0f, 96.0f); + OptionWinMesSet(work->window[2], MAKE_MESSID(47, 19)); + OptionWinPosSet(work->window[3], 64.0f, 140.0f); + OptionWinMesSet(work->window[3], MAKE_MESSID(47, 20)); + OptionWinPosSet(work->window[4], 64.0f, 248.0f); + OptionWinMesSet(work->window[4], MAKE_MESSID(47, 21)); + OptionWinPosSet(work->window[5], 64.0f, 292.0f); + OptionWinMesSet(work->window[5], MAKE_MESSID(47, 22)); } -#define BOARD_RECORD_SPR_IDX_TBL_SIZE 53 +#define BOARD_SPR_HIDE_COUNT 53 -static const s32 boardRecordSprIdxTbl[BOARD_RECORD_SPR_IDX_TBL_SIZE] = { 0, 1, 2, 3, 4, 5, 49, 50, 51, 52, 53, 54, 55, 56, 8, 9, 10, 11, 12, 13, 14, - 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 38, 39, 40, 35, 36, 37, 41, 42, 43, 44, 45, 46, 15, 16, 17, 18, 19, 20, 21, 22 }; +static const s32 boardSprHideTbl[BOARD_SPR_HIDE_COUNT] = +{ + 0, 1, 2, 3, 4, 5, + 49, 50, 51, 52, 53, 54, 55, 56, + 8, 9, 10, + 11, 12, 13, 14, + 23, 24, 25, + 26, 27, 28, + 29, 30, 31, + 32, 33, 34, + 38, 39, 40, + 35, 36, 37, + 41, 42, 43, + 44, 45, 46, + 15, 16, 17, 18, + 19, 20, 21, 22 +}; -static void HideBoardRecordSpr(omObjData *object) +static void HideBoard(omObjData *object) { RecordWork *work = object->data; s32 i; - for (i = 0; i < BOARD_RECORD_SPR_IDX_TBL_SIZE; i++) { - espDispOff(work->sprList[boardRecordSprIdxTbl[i]]); + for (i = 0; i < BOARD_SPR_HIDE_COUNT; i++) { + espDispOff(work->sprList[boardSprHideTbl[i]]); } for (i = 0; i < 4; i++) { - fn_1_A828(work->window[i + 2]); + OptionWinDispOff(work->window[i + 2]); } } -static void DisplayTotalResults(omObjData *object) +static void ShowTotal(omObjData *object) { RecordWork *work = object->data; s32 winCount; @@ -673,11 +688,11 @@ static void DisplayTotalResults(omObjData *object) for (i = 0; i < NUM_CHARACTERS; i++) { espPosSet(work->sprList[i + 57], 148.0f + 80.0f * (i % 4), 172.0f + 104.0f * (i / 4)); for (j = 0, winCount = 0; j < NUM_BOARDS; j++) { - winCount += work->boardRecords[j].winCounts[i]; + winCount += work->boardRecord[j].winCount[i]; } for (j = 0; j < WIN_COUNT_NUM_DIGITS; j++) { espPosSet(work->sprList[i * 3 + 65 + j], 132.0f + 80.0f * (i % 4) + 16.0f * j, 218.0f + 104.0f * (i / 4)); - espBankSet(work->sprList[i * 3 + 65 + j], GetDigitSprAt(winCount, 2 - j)); + espBankSet(work->sprList[i * 3 + 65 + j], GetDigit(winCount, 2 - j)); } } espDispOn(work->sprList[6]); @@ -687,48 +702,59 @@ static void DisplayTotalResults(omObjData *object) espDispOn(work->sprList[i * 3 + 65 + j]); } } - fn_1_A7B0(work->window[2], 136.0f, 96.0f); - fn_1_A71C(work->window[2], MAKE_MESSID(47, 23)); - fn_1_A7F0(work->window[2]); + OptionWinPosSet(work->window[2], 136.0f, 96.0f); + OptionWinMesSet(work->window[2], MAKE_MESSID(47, 23)); + OptionWinDispOn(work->window[2]); } -#define TOTAL_RESULTS_SPR_IDX_TBL_SIZE 33 +#define TOTAL_SPR_HIDE_COUNT 33 -static const s32 totalResultsSprIdxTbl[TOTAL_RESULTS_SPR_IDX_TBL_SIZE] - = { 6, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88 }; +static const s32 totalSprHideTbl[TOTAL_SPR_HIDE_COUNT] = +{ + 6, + 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 67, + 68, 69, 70, + 71, 72, 73, + 74, 75, 76, + 77, 78, 79, + 80, 81, 82, + 83, 84, 85, + 86, 87, 88 +}; -static void HideTotalResultsSpr(omObjData *object) +static void HideTotal(omObjData *object) { RecordWork *work = object->data; s32 i; - for (i = 0; i < TOTAL_RESULTS_SPR_IDX_TBL_SIZE; i++) { - espDispOff(work->sprList[totalResultsSprIdxTbl[i]]); + for (i = 0; i < TOTAL_SPR_HIDE_COUNT; i++) { + espDispOff(work->sprList[totalSprHideTbl[i]]); } - fn_1_A828(work->window[2]); + OptionWinDispOff(work->window[2]); } static const MGTable mgTbl[6] = { { 405, MAKE_MESSID(23, 5), DISPLAY_TYPE_TIME }, - { 407, MAKE_MESSID(23, 7), DISPLAY_TYPE_DECIMAL }, + { 407, MAKE_MESSID(23, 7), DISPLAY_TYPE_SCORE }, { 427, MAKE_MESSID(23, 27), DISPLAY_TYPE_TIME }, { 432, MAKE_MESSID(23, 32), DISPLAY_TYPE_TIME }, { 443, MAKE_MESSID(23, 43), DISPLAY_TYPE_TIME }, { 456, MAKE_MESSID(23, 54), DISPLAY_TYPE_TIME }, }; -static void ShowMGRecord(omObjData *object, s32 page) +static void ShowMG(omObjData *object, s32 page) { RecordWork *work = object->data; s32 value; s32 mg; - s32 digit; - s32 var_r26; - s32 var_r17; - s32 sp5C; - s32 sp58; + s32 timeDigit; + s32 timeCenti; + s32 scoreDigit; + s32 timeMin; + s32 timeSec; s32 mgAvail; - BOOL digitDrawnF; + BOOL dispZeroF; s32 nameMess; s32 i; s32 j; @@ -738,99 +764,108 @@ static void ShowMGRecord(omObjData *object, s32 page) espPosSet(work->sprList[48], 492.0f, 240.0f); espDispOn(work->sprList[7]); for (i = 0; i < 8; i++) { - digitDrawnF = FALSE; + dispZeroF = FALSE; mg = i + page * 8; if (mg >= 6) { break; } mgAvail = GWMGAvailGet(mgTbl[mg].id); - value = work->mgRecords[mg]; + value = work->mgRecord[mg]; if (mgAvail) { switch (mgTbl[mg].displayType) { - case DISPLAY_TYPE_DECIMAL: - for (j = 0; j < MG_DECIMAL_NUM_DIGITS; j++) { - var_r17 = GetDigitSprAt(value, 7 - j); - if (var_r17 != 0 || digitDrawnF || j >= 7) { + case DISPLAY_TYPE_SCORE: + for (j = 0; j < MG_SCORE_NUM_DIGITS; j++) { + scoreDigit = GetDigit(value, 7 - j); + if (scoreDigit != 0 || dispZeroF || j >= 7) { espPosSet(work->sprList[i * 8 + 89 + j], 336.0f + 16.0f * j, 116.0f + 40.0f * i); - espBankSet(work->sprList[i * 8 + 89 + j], var_r17); + espBankSet(work->sprList[i * 8 + 89 + j], scoreDigit); espDispOn(work->sprList[i * 8 + 89 + j]); - digitDrawnF = TRUE; + dispZeroF = TRUE; } } break; case DISPLAY_TYPE_TIME: - sp5C = value / 3600; - sp58 = (value % 3600) / 60; - var_r26 = (value % 3600) % 60; + timeMin = value / 3600; + timeSec = (value % 3600) / 60; + timeCenti = (value % 3600) % 60; if (mgTbl[mg].id == 405 || mgTbl[mg].id == 432) { - var_r26 *= 1.6916667f; + timeCenti *= 1.6916667f; } else { - var_r26 *= 1.6666666f; + timeCenti *= 1.6666666f; } for (j = 1; j < MG_TIME_NUM_DIGITS; j++) { espPosSet(work->sprList[i * 8 + 89 + j], 336.0f + 16.0f * j, 116.0f + 40.0f * i); switch (j) { case 0: - digit = GetDigitSprAt(sp5C, 1); + timeDigit = GetDigit(timeMin, 1); break; case 1: - digit = GetDigitSprAt(sp5C, 0); + timeDigit = GetDigit(timeMin, 0); break; case 3: - digit = GetDigitSprAt(sp58, 1); + timeDigit = GetDigit(timeSec, 1); break; case 4: - digit = GetDigitSprAt(sp58, 0); + timeDigit = GetDigit(timeSec, 0); break; case 6: - digit = GetDigitSprAt(var_r26, 1); + timeDigit = GetDigit(timeCenti, 1); break; case 7: - digit = GetDigitSprAt(var_r26, 0); + timeDigit = GetDigit(timeCenti, 0); break; case 2: - digit = 11; + timeDigit = 11; break; case 5: - digit = 12; + timeDigit = 12; break; } - espBankSet(work->sprList[i * 8 + 89 + j], digit); + espBankSet(work->sprList[i * 8 + 89 + j], timeDigit); espDispOn(work->sprList[i * 8 + 89 + j]); } break; } } else { - for (j = 0; j < MG_DECIMAL_NUM_DIGITS; j++) { + for (j = 0; j < MG_SCORE_NUM_DIGITS; j++) { espPosSet(work->sprList[i * 8 + 89 + j], 336.0f + 16.0f * j, 116.0f + 40.0f * i); espBankSet(work->sprList[i * 8 + 89 + j], 0); espDispOn(work->sprList[i * 8 + 89 + j]); } } - fn_1_A7B0(work->window[i + 2], 60.0f, 96.0f + 40.0f * i); + OptionWinPosSet(work->window[i + 2], 60.0f, 96.0f + 40.0f * i); nameMess = mgAvail ? mgTbl[mg].mess : MAKE_MESSID(35, 0); - fn_1_A71C(work->window[i + 2], nameMess); - fn_1_A7F0(work->window[i + 2]); + OptionWinMesSet(work->window[i + 2], nameMess); + OptionWinDispOn(work->window[i + 2]); } } -#define MG_RECORD_SPR_IDX_TBL_SIZE 65 +#define MG_SPR_HIDE_COUNT 65 -static const s32 mgRecordSprIdxTbl[65] = { 7, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, - 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, - 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152 }; +static const s32 mgSprHideTbl[65] = +{ + 7, + 89, 90, 91, 92, 93, 94, 95, 96, + 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, + 121, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 142, 143, 144, + 145, 146, 147, 148, 149, 150, 151, 152 +}; -static void HideMGRecordSpr(omObjData *object) +static void HideMG(omObjData *object) { RecordWork *temp_r30 = object->data; s32 i; - for (i = 0; i < MG_RECORD_SPR_IDX_TBL_SIZE; i++) { - espDispOff(temp_r30->sprList[mgRecordSprIdxTbl[i]]); + for (i = 0; i < MG_SPR_HIDE_COUNT; i++) { + espDispOff(temp_r30->sprList[mgSprHideTbl[i]]); } for (i = 0; i < 8; i++) { - fn_1_A828(temp_r30->window[i + 2]); + OptionWinDispOff(temp_r30->window[i + 2]); } } diff --git a/src/REL/option/room.c b/src/REL/option/room.c index 65a6fa9c..8a9e5d15 100755 --- a/src/REL/option/room.c +++ b/src/REL/option/room.c @@ -7,13 +7,13 @@ typedef struct { /* 0x00 */ omObjData *background; - /* 0x04 */ omObjData *rumbleArrowPair; - /* 0x08 */ omObjData *soundArrowPair; - /* 0x0C */ omObjData *recordArrowPair; - /* 0x10 */ WindowWork *optionDescWindow; - /* 0x14 */ WindowWork *btnLegendWindow; - /* 0x18 */ s32 selectedOption; - /* 0x1C */ s32 mode; + /* 0x04 */ omObjData *rumbleArrow; + /* 0x08 */ omObjData *soundArrow; + /* 0x0C */ omObjData *recordArrow; + /* 0x10 */ OptionWindow *optionDescWindow; + /* 0x14 */ OptionWindow *btnLegendWindow; + /* 0x18 */ s32 optionIdx; + /* 0x1C */ s32 execMode; /* 0x20 */ s16 unk20; /* 0x22 */ char unk22[6]; /* 0x28 */ BOOL cameraDoneF; @@ -22,162 +22,160 @@ typedef struct { #define MODE_DISABLED 0 #define MODE_HANDLE_ROOM 1 -#define SEL_CHANGE_LEFT 0 -#define SEL_CHANGE_RIGHT 1 -static void ChangeSelection(omObjData *object, s32 selChange); -static void HandleRoom(omObjData *object); -static omObjData *CreateBackground(void); -static void KillBackground(omObjData *background); -static omObjData *CreateArrowPair(void); -static void KillArrowPair(omObjData *arrowPair); +static void MoveOption(omObjData *object, BOOL rightF); +static void ExecRoom(omObjData *object); +static omObjData *CreateRoomBG(void); +static void KillRoomBG(omObjData *background); +static omObjData *CreateArrow(void); +static void KillArrow(omObjData *arrow); -omObjData *lbl_1_bss_18; +omObjData *optionRoom; -static omObjFunc modes[] = { NULL, HandleRoom }; +static omObjFunc execModeTbl[] = { NULL, ExecRoom }; -omObjData *fn_1_15A4(void) +omObjData *OptionRoomCreate(void) { omObjData *object; RoomWork *work; - object = omAddObjEx(lbl_1_bss_8, 1003, 0, 0, 1, NULL); + object = omAddObjEx(optionObjMan, 1003, 0, 0, 1, NULL); work = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(RoomWork), MEMORY_DEFAULT_NUM); object->data = work; - work->selectedOption = 0; + work->optionIdx = 0; work->unk20 = -1; work->cameraDoneF = 0; - fn_1_B74(lbl_1_bss_10, 600.0f, 60.0f, 120.0f, 1); - fn_1_A6C(lbl_1_bss_10, 0.0f, 120.0f, 0.0f, 1); - work->background = CreateBackground(); - lbl_1_bss_38 = fn_1_4028(); - lbl_1_bss_40 = fn_1_80E4(); - lbl_1_bss_30 = fn_1_3158(); - lbl_1_bss_20 = fn_1_21F8(); - work->rumbleArrowPair = CreateArrowPair(); - work->soundArrowPair = CreateArrowPair(); - work->recordArrowPair = CreateArrowPair(); - omSetRot(work->rumbleArrowPair, 0.0f, 0.0f, 0.0f); - omSetRot(work->soundArrowPair, 0.0f, 120.0f, 0.0f); - omSetRot(work->recordArrowPair, 0.0f, 240.0f, 0.0f); - work->optionDescWindow = fn_1_A44C(0); - work->btnLegendWindow = fn_1_A44C(1); + OptionCameraViewSet(optionCamera, 600.0f, 60.0f, 120.0f, 1); + OptionCameraTargetSet(optionCamera, 0.0f, 120.0f, 0.0f, 1); + work->background = CreateRoomBG(); + optionSound = OptionSoundCreate(); + optionRecord = OptionRecordCreate(); + optionRumble = OptionRumbleCreate(); + optionGuide = OptionGuideCreate(); + work->rumbleArrow = CreateArrow(); + work->soundArrow = CreateArrow(); + work->recordArrow = CreateArrow(); + omSetRot(work->rumbleArrow, 0.0f, 0.0f, 0.0f); + omSetRot(work->soundArrow, 0.0f, 120.0f, 0.0f); + omSetRot(work->recordArrow, 0.0f, 240.0f, 0.0f); + work->optionDescWindow = OptionWinCreate(0); + work->btnLegendWindow = OptionWinCreate(1); return object; } -void fn_1_1798(omObjData *object) +void OptionRoomKill(omObjData *object) { RoomWork *work = object->data; - KillBackground(work->background); - fn_1_42DC(lbl_1_bss_38); - fn_1_322C(lbl_1_bss_30); - fn_1_825C(lbl_1_bss_40); - fn_1_241C(lbl_1_bss_20); - KillArrowPair(work->rumbleArrowPair); - KillArrowPair(work->soundArrowPair); - KillArrowPair(work->recordArrowPair); - fn_1_A6AC(work->optionDescWindow); - fn_1_A6AC(work->btnLegendWindow); + KillRoomBG(work->background); + OptionSoundKill(optionSound); + OptionRumbleKill(optionRumble); + OptionRecordKill(optionRecord); + OptionGuideKill(optionGuide); + KillArrow(work->rumbleArrow); + KillArrow(work->soundArrow); + KillArrow(work->recordArrow); + OptionWinKill(work->optionDescWindow); + OptionWinKill(work->btnLegendWindow); HuMemDirectFree(work); } -static const float guidePosTbl[3] = { 45.0f, 165.0f, 285.0f }; +static const float guideAngleTbl[3] = { 45.0f, 165.0f, 285.0f }; -static void ChangeSelection(omObjData *object, s32 selChange) +static void MoveOption(omObjData *object, BOOL rightF) { RoomWork *work = object->data; - float sp10; - float spC; - float sp8; - float guideDestPos; + float x; + float y; + float z; + float guideAngle; - work->selectedOption += (selChange == SEL_CHANGE_LEFT) ? -1 : 1; - if (work->selectedOption < 0) { - work->selectedOption = 2; + work->optionIdx += (rightF == FALSE) ? -1 : 1; + if (work->optionIdx < 0) { + work->optionIdx = 2; } - else if (work->selectedOption >= 3) { - work->selectedOption = 0; + else if (work->optionIdx >= 3) { + work->optionIdx = 0; } - fn_1_C88(lbl_1_bss_10, &sp10, &spC, &sp8); - fn_1_B74(lbl_1_bss_10, fn_1_BF8(lbl_1_bss_10), fn_1_C28(lbl_1_bss_10) + (selChange == SEL_CHANGE_LEFT ? -120.0f : 120.0f), spC, 96); - if (work->selectedOption == 2 && selChange == SEL_CHANGE_LEFT) { - guideDestPos = guidePosTbl[2] - 360.0f; + OptionCameraTargetGet(optionCamera, &x, &y, &z); + OptionCameraViewSet(optionCamera, OptionCameraZoomGet(optionCamera), OptionCameraRotGet(optionCamera) + (rightF == FALSE ? -120.0f : 120.0f), y, 96); + if (work->optionIdx == 2 && rightF == FALSE) { + guideAngle = guideAngleTbl[2] - 360.0f; } - else if (work->selectedOption == 0 && selChange == SEL_CHANGE_RIGHT) { - guideDestPos = 360.0f + guidePosTbl[0]; + else if (work->optionIdx == 0 && rightF == TRUE) { + guideAngle = 360.0f + guideAngleTbl[0]; } else { - guideDestPos = guidePosTbl[work->selectedOption]; + guideAngle = guideAngleTbl[work->optionIdx]; } - fn_1_2508(lbl_1_bss_20, guideDestPos, 430.0f, 96); + OptionGuideWalkExec(optionGuide, guideAngle, 430.0f, 96); } -void fn_1_1A2C(omObjData *object, s32 mode) +void OptionRoomExecModeSet(omObjData *object, s32 execMode) { RoomWork *work = object->data; - work->mode = mode; - object->func = modes[mode]; + work->execMode = execMode; + object->func = execModeTbl[execMode]; object->unk10 = 0; object->unk10 = 0; } -s32 fn_1_1A70(omObjData *object) +s32 OptionRoomExecModeGet(omObjData *object) { RoomWork *work = object->data; - return work->mode; + return work->execMode; } static const s32 optionDescTbl[] = { MAKE_MESSID(47, 1), MAKE_MESSID(47, 7), MAKE_MESSID(47, 4) }; -static void HandleRoom(omObjData *object) +static void ExecRoom(omObjData *object) { RoomWork *work = object->data; switch (object->unk10) { case 0: if (!work->cameraDoneF) { - fn_1_B74(lbl_1_bss_10, 600.0f, 60.0f, 120.0f, 1); - fn_1_A6C(lbl_1_bss_10, 0.0f, 120.0f, 0.0f, 1); + OptionCameraViewSet(optionCamera, 600.0f, 60.0f, 120.0f, 1); + OptionCameraTargetSet(optionCamera, 0.0f, 120.0f, 0.0f, 1); work->cameraDoneF = TRUE; } object->unk10 = 1; /* fallthrough */ case 1: - if (fn_1_CB8(lbl_1_bss_10) != 0) { + if (OptionCameraDoneCheck(optionCamera) != 0) { break; } - fn_1_A6EC(work->optionDescWindow); - fn_1_A71C(work->optionDescWindow, optionDescTbl[work->selectedOption]); - fn_1_A6EC(work->btnLegendWindow); - fn_1_A71C(work->btnLegendWindow, MAKE_MESSID(47, 14)); + OptionWinAnimIn(work->optionDescWindow); + OptionWinMesSet(work->optionDescWindow, optionDescTbl[work->optionIdx]); + OptionWinAnimIn(work->btnLegendWindow); + OptionWinMesSet(work->btnLegendWindow, MAKE_MESSID(47, 14)); object->unk10 = 2; /* fallthrough */ case 2: if (work->optionDescWindow->state == 0 && work->btnLegendWindow->state == 0) { - if (fn_1_550(PAD_BUTTON_B)) { + if (OptionPadCheck(PAD_BUTTON_B)) { HuAudFXPlay(3); object->unk10 = 7; } - else if (fn_1_584(1)) { - ChangeSelection(object, SEL_CHANGE_LEFT); - fn_1_A704(work->optionDescWindow); - fn_1_A704(work->btnLegendWindow); + else if (OptionPadDStkRepCheck(1)) { + MoveOption(object, FALSE); + OptionWinAnimOut(work->optionDescWindow); + OptionWinAnimOut(work->btnLegendWindow); HuAudFXPlay(0); object->unk10 = 1; } - else if (fn_1_584(2)) { - ChangeSelection(object, SEL_CHANGE_RIGHT); - fn_1_A704(work->optionDescWindow); - fn_1_A704(work->btnLegendWindow); + else if (OptionPadDStkRepCheck(2)) { + MoveOption(object, TRUE); + OptionWinAnimOut(work->optionDescWindow); + OptionWinAnimOut(work->btnLegendWindow); HuAudFXPlay(0); object->unk10 = 1; } - else if (fn_1_550(PAD_BUTTON_A)) { - fn_1_A704(work->optionDescWindow); - fn_1_A704(work->btnLegendWindow); + else if (OptionPadCheck(PAD_BUTTON_A)) { + OptionWinAnimOut(work->optionDescWindow); + OptionWinAnimOut(work->btnLegendWindow); HuAudFXPlay(2); object->unk10 = 3; } @@ -185,77 +183,77 @@ static void HandleRoom(omObjData *object) break; case 3: if (work->optionDescWindow->state == 0 && work->btnLegendWindow->state == 0) { - switch (work->selectedOption) { + switch (work->optionIdx) { case 0: - fn_1_3290(lbl_1_bss_30, 1); + OptionRumbleExecModeSet(optionRumble, 1); object->unk10 = 4; break; case 1: - fn_1_4388(lbl_1_bss_38, 1); + OptionSoundExecModeSet(optionSound, 1); object->unk10 = 5; break; case 2: - fn_1_82B0(lbl_1_bss_40, 1); + OptionRecordExecModeSet(optionRecord, 1); object->unk10 = 6; break; } } break; case 4: - if (fn_1_39D4(lbl_1_bss_30) == 0) { + if (OptionRumbleExecModeGet(optionRumble) == 0) { object->unk10 = 1; } break; case 5: - if (fn_1_43CC(lbl_1_bss_38) == 0) { + if (OptionSoundExecModeGet(optionSound) == 0) { object->unk10 = 1; } break; case 6: - if (fn_1_82F4(lbl_1_bss_40) == 0) { + if (OptionRecordExecModeGet(optionRecord) == 0) { object->unk10 = 1; } break; case 7: - fn_1_A704(work->optionDescWindow); - fn_1_A704(work->btnLegendWindow); + OptionWinAnimOut(work->optionDescWindow); + OptionWinAnimOut(work->btnLegendWindow); object->unk10 = 8; /* fallthrough */ case 8: if (work->optionDescWindow->state == 0 && work->btnLegendWindow->state == 0) { - fn_1_1A2C(object, MODE_DISABLED); + OptionRoomExecModeSet(object, MODE_DISABLED); } break; } } -static omObjData *CreateBackground(void) +static omObjData *CreateRoomBG(void) { - omObjData *background; + omObjData *object; - background = omAddObjEx(lbl_1_bss_8, 1003, 1, 0, 1, NULL); - background->model[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_OPTION, 0)); - Hu3DModelLayerSet(background->model[0], 0); - Hu3DModelShadowMapSet(background->model[0]); - return background; + object = omAddObjEx(optionObjMan, 1003, 1, 0, 1, NULL); + object->model[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_OPTION, 0)); + Hu3DModelLayerSet(object->model[0], 0); + Hu3DModelShadowMapSet(object->model[0]); + return object; } -static void KillBackground(omObjData *background) +static void KillRoomBG(omObjData *object) { - Hu3DModelKill(background->model[0]); + Hu3DModelKill(object->model[0]); } -static omObjData *CreateArrowPair(void) +static omObjData *CreateArrow(void) { - omObjData *arrowPair; + omObjData *arrow; - arrowPair = omAddObjEx(lbl_1_bss_8, 1003, 1, 0, 1, NULL); - Hu3DModelLayerSet(arrowPair->model[0], 0); - arrowPair->model[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_OPTION, 6)); - return arrowPair; + arrow = omAddObjEx(optionObjMan, 1003, 1, 0, 1, NULL); + Hu3DModelLayerSet(arrow->model[0], 0); + arrow->model[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_OPTION, 6)); + return arrow; } -static void KillArrowPair(omObjData *arrow) +static void KillArrow(omObjData *arrow) { Hu3DModelKill(arrow->model[0]); } diff --git a/src/REL/option/rumble.c b/src/REL/option/rumble.c index 813497f3..af0397ff 100755 --- a/src/REL/option/rumble.c +++ b/src/REL/option/rumble.c @@ -12,9 +12,9 @@ typedef struct { /* 0x04 */ omObjData *pad; /* 0x08 */ omObjData *padFilter; /* 0x0C */ omObjData *hand; - /* 0x10 */ omObjData *highlightOn; - /* 0x14 */ WindowWork *window[2]; - /* 0x20 */ s32 mode; + /* 0x10 */ omObjData *hiliteOn; + /* 0x14 */ OptionWindow *window[2]; + /* 0x20 */ s32 execMode; /* 0x20 */ BOOL rumbleF; /* 0x24 */ BOOL cameraDoneF; /* 0x28 */ s32 changeTimer; @@ -23,7 +23,7 @@ typedef struct { #define MODE_DISABLED 0 #define MODE_HANDLE_RUMBLE 1 // TODO room.c should have access to this -static void HandleRumble(omObjData *object); +static void ExecRumble(omObjData *object); static omObjData *CreateHand(void); static void KillHand(omObjData *hand); static omObjData *CreateSystem(void); @@ -33,20 +33,20 @@ static omObjData *CreatePad(void); static void KillPad(omObjData *pad); static void ShakePad(omObjData *pad, BOOL on); static omObjData *CreatePadFilter(void); -static void KillPadFilter(omObjData *padFilter); -static omObjData *CreateHighlightOn(void); -static void KillHighlightOn(omObjData *highlightOn); +static void KillPadFilter(omObjData *object); +static omObjData *CreateHiliteOn(void); +static void KillHiliteOn(omObjData *object); -omObjData *lbl_1_bss_30; +omObjData *optionRumble; -static omObjFunc modes[] = { NULL, HandleRumble }; +static omObjFunc execModeTbl[] = { NULL, ExecRumble }; -omObjData *fn_1_3158(void) +omObjData *OptionRumbleCreate(void) { omObjData *object; RumbleWork *work; - object = omAddObjEx(lbl_1_bss_8, 1003, 0, 0, 1, NULL); + object = omAddObjEx(optionObjMan, 1003, 0, 0, 1, NULL); work = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(RumbleWork), MEMORY_DEFAULT_NUM); object->data = work; work->rumbleF = GWGameStat.rumble; @@ -55,60 +55,60 @@ omObjData *fn_1_3158(void) work->pad = CreatePad(); ShakePad(work->pad, work->rumbleF); work->padFilter = CreatePadFilter(); - work->highlightOn = CreateHighlightOn(); + work->hiliteOn = CreateHiliteOn(); work->hand = CreateHand(); - fn_1_3290(object, MODE_DISABLED); + OptionRumbleExecModeSet(object, MODE_DISABLED); return object; } -void fn_1_322C(omObjData *object) +void OptionRumbleKill(omObjData *object) { RumbleWork *work = object->data; KillHand(work->hand); KillSystem(work->system); KillPad(work->pad); - KillHighlightOn(work->highlightOn); + KillHiliteOn(work->hiliteOn); KillPadFilter(work->padFilter); HuMemDirectFree(work); } -// SetMode -void fn_1_3290(omObjData *object, s32 mode) + +void OptionRumbleExecModeSet(omObjData *object, s32 execMode) { RumbleWork *work = object->data; - work->mode = mode; - object->func = modes[mode]; + work->execMode = execMode; + object->func = execModeTbl[execMode]; object->unk10 = 0; object->unk10 = 0; } -// GetMode -s32 fn_1_39D4(omObjData *object) + +s32 OptionRumbleExecModeGet(omObjData *object) { RumbleWork *work = object->data; - return work->mode; + return work->execMode; } -static void HandleRumble(omObjData *object) +static void ExecRumble(omObjData *object) { RumbleWork *work = object->data; s32 i; switch (object->unk10) { case 0: - work->window[0] = fn_1_A44C(0); - work->window[1] = fn_1_A44C(1); - fn_1_AF0(lbl_1_bss_10, -519.62f, 135.0f, 300.0f, 0x28); - fn_1_A6C(lbl_1_bss_10, -315.64f, 135.0f, 182.25f, 0x28); - fn_1_3D54(object); + work->window[0] = OptionWinCreate(0); + work->window[1] = OptionWinCreate(1); + OptionCameraFocusSet(optionCamera, -519.62f, 135.0f, 300.0f, 0x28); + OptionCameraTargetSet(optionCamera, -315.64f, 135.0f, 182.25f, 0x28); + OptionRumbleMotionShowStart(object); Hu3DModelLayerSet(work->padFilter->model[0], 1); work->cameraDoneF = FALSE; object->unk10 = 1; /* fallthrough */ case 1: - if (fn_1_CB8(lbl_1_bss_10) != 0) { + if (OptionCameraDoneCheck(optionCamera) != 0) { break; } if (!work->cameraDoneF) { @@ -116,31 +116,31 @@ static void HandleRumble(omObjData *object) work->cameraDoneF = TRUE; Hu3DModelHookSet(work->system->model[0], "target", work->hand->model[0]); } - fn_1_A6EC(work->window[1]); - fn_1_A71C(work->window[1], MAKE_MESSID(47, 15)); - fn_1_A6EC(work->window[0]); + OptionWinAnimIn(work->window[1]); + OptionWinMesSet(work->window[1], MAKE_MESSID(47, 15)); + OptionWinAnimIn(work->window[0]); if (work->rumbleF) { - fn_1_A71C(work->window[0], MAKE_MESSID(47, 2)); + OptionWinMesSet(work->window[0], MAKE_MESSID(47, 2)); } else { - fn_1_A71C(work->window[0], MAKE_MESSID(47, 3)); + OptionWinMesSet(work->window[0], MAKE_MESSID(47, 3)); } object->unk10 = 2; /* fallthrough */ case 2: if (work->window[0]->state == 0 && work->window[1]->state == 0) { - if (fn_1_550(PAD_BUTTON_B)) { + if (OptionPadCheck(PAD_BUTTON_B)) { HuAudFXPlay(3); object->unk10 = 4; } - else if (fn_1_584(8) && !work->rumbleF) { + else if (OptionPadDStkRepCheck(8) && !work->rumbleF) { StartSystemMotion(work->system, 1, TRUE); work->rumbleF = TRUE; work->changeTimer = 0; GWRumbleSet(1); object->unk10 = 3; } - else if (fn_1_584(4) && work->rumbleF) { + else if (OptionPadDStkRepCheck(4) && work->rumbleF) { StartSystemMotion(work->system, 0, TRUE); work->rumbleF = FALSE; work->changeTimer = 0; @@ -155,31 +155,31 @@ static void HandleRumble(omObjData *object) ShakePad(work->pad, work->rumbleF); if (work->rumbleF) { HuPadRumbleSet(0, 60, 10, 5); - Hu3DMotionTimeSet(work->highlightOn->model[0], 0.0f); - Hu3DModelAttrReset(work->highlightOn->model[0], 1); + Hu3DMotionTimeSet(work->hiliteOn->model[0], 0.0f); + Hu3DModelAttrReset(work->hiliteOn->model[0], 1); } else { - Hu3DModelAttrSet(work->highlightOn->model[0], 1); + Hu3DModelAttrSet(work->hiliteOn->model[0], 1); } object->unk10 = 1; } break; case 4: - fn_1_A704(work->window[1]); - fn_1_A704(work->window[0]); + OptionWinAnimOut(work->window[1]); + OptionWinAnimOut(work->window[0]); Hu3DModelAttrSet(work->hand->model[0], 1); - fn_1_3E1C(object); + OptionRumbleMotionHideStart(object); object->unk10 = 5; /* fallthrough */ case 5: - if (work->window[1]->state == 0 && work->window[0]->state == 0 && !fn_1_3ED0(lbl_1_bss_30)) { + if (work->window[1]->state == 0 && work->window[0]->state == 0 && !OptionRumbleMotionCheck(optionRumble)) { for (i = 0; i < 2; i++) { - fn_1_A6AC(work->window[i]); + OptionWinKill(work->window[i]); } Hu3DModelHookReset(work->system->model[0]); - fn_1_AF0(lbl_1_bss_10, -519.62f, 120.0f, 300.0f, 0x28); - fn_1_A6C(lbl_1_bss_10, 0.0f, 120.0f, 0.0f, 0x28); - fn_1_3290(object, MODE_DISABLED); + OptionCameraFocusSet(optionCamera, -519.62f, 120.0f, 300.0f, 0x28); + OptionCameraTargetSet(optionCamera, 0.0f, 120.0f, 0.0f, 0x28); + OptionRumbleExecModeSet(object, MODE_DISABLED); } break; } @@ -189,7 +189,7 @@ static omObjData *CreateHand(void) { omObjData *hand; - hand = omAddObjEx(lbl_1_bss_8, 1003, 1, 0, 1, NULL); + hand = omAddObjEx(optionObjMan, 1003, 1, 0, 1, NULL); hand->model[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_OPTION, 15)); Hu3DModelLayerSet(hand->model[0], 3); omSetRot(hand, 0.0f, 180.0f, 0.0f); @@ -210,7 +210,7 @@ static omObjData *CreateSystem(void) { omObjData *system; - system = omAddObjEx(lbl_1_bss_8, 1003, 1, 0, 1, NULL); + system = omAddObjEx(optionObjMan, 1003, 1, 0, 1, NULL); system->model[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_OPTION, 2)); Hu3DModelAttrSet(system->model[0], 0x40000002); if (GWRumbleGet()) { @@ -261,7 +261,7 @@ static omObjData *CreatePad(void) { omObjData *pad; - pad = omAddObjEx(lbl_1_bss_8, 1003, 1, 0, 1, NULL); + pad = omAddObjEx(optionObjMan, 1003, 1, 0, 1, NULL); pad->model[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_OPTION, 9)); Hu3DModelAttrSet(pad->model[0], 0x40000001); return pad; @@ -292,7 +292,7 @@ static omObjData *CreatePadFilter(void) { omObjData *object; - object = omAddObjEx(lbl_1_bss_8, 1003, 1, 0, 1, NULL); + object = omAddObjEx(optionObjMan, 1003, 1, 0, 1, NULL); object->model[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_OPTION, 10)); Hu3DModelAttrSet(object->model[0], 0x40000002); Hu3DModelLayerSet(object->model[0], 2); @@ -300,16 +300,16 @@ static omObjData *CreatePadFilter(void) return object; } -static void KillPadFilter(omObjData *padFilter) +static void KillPadFilter(omObjData *object) { s32 i; for (i = 0; i < 1; i++) { - Hu3DModelKill(padFilter->model[i]); + Hu3DModelKill(object->model[i]); } } -// ZoomIn -void fn_1_3D54(omObjData *object) + +void OptionRumbleMotionShowStart(omObjData *object) { RumbleWork *work = object->data; s16 model = work->padFilter->model[0]; @@ -321,8 +321,8 @@ void fn_1_3D54(omObjData *object) Hu3DModelLayerSet(work->padFilter->model[0], 2); HuAudFXPlay(0x83D); } -// ZoomOut -void fn_1_3E1C(omObjData *object) + +void OptionRumbleMotionHideStart(omObjData *object) { RumbleWork *work = object->data; s16 model = work->padFilter->model[0]; @@ -333,8 +333,8 @@ void fn_1_3E1C(omObjData *object) Hu3DModelAttrReset(work->padFilter->model[0], 0x40000001); HuAudFXPlay(0x83E); } -// GetPadFilterMotionDone -BOOL fn_1_3ED0(omObjData *object) + +BOOL OptionRumbleMotionCheck(omObjData *object) { RumbleWork *work = object->data; s16 padFilterModel = work->padFilter->model[0]; @@ -342,26 +342,26 @@ BOOL fn_1_3ED0(omObjData *object) return !Hu3DMotionEndCheck(padFilterModel); } -static omObjData *CreateHighlightOn(void) +static omObjData *CreateHiliteOn(void) { - omObjData *highlightOn; + omObjData *object; - highlightOn = omAddObjEx(lbl_1_bss_8, 1003, 1, 0, 1, NULL); - highlightOn->model[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_OPTION, 11)); + object = omAddObjEx(optionObjMan, 1003, 1, 0, 1, NULL); + object->model[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_OPTION, 11)); if (GWRumbleGet()) { - Hu3DModelAttrReset(highlightOn->model[0], 1); + Hu3DModelAttrReset(object->model[0], 1); } else { - Hu3DModelAttrSet(highlightOn->model[0], 1); + Hu3DModelAttrSet(object->model[0], 1); } - return highlightOn; + return object; } -static void KillHighlightOn(omObjData *highlightOn) +static void KillHiliteOn(omObjData *object) { s32 i; for (i = 0; i < 1; i++) { - Hu3DModelKill(highlightOn->model[i]); + Hu3DModelKill(object->model[i]); } } diff --git a/src/REL/option/scene.c b/src/REL/option/scene.c index b99bd621..733c324f 100755 --- a/src/REL/option/scene.c +++ b/src/REL/option/scene.c @@ -15,149 +15,147 @@ #include "rel_sqrt_consts.h" typedef struct { - /* 0x00 */ s16 spr; - /* 0x02 */ char unk02[2]; - /* 0x04 */ float opacity; - /* 0x08 */ float opacityChange; -} LRButtonWork; // Size 0xC + /* 0x00 */ s16 id; + /* 0x04 */ float tplvl; + /* 0x08 */ float speed; +} FaderWork; // Size 0xC -static void HandleLRBtn(void); +static void FadeSprite(void); static void fn_1_354(s16 arg0, s32 arg1, s32 arg2); -static void fn_1_468(void); -static void HandleScene(omObjData *arg0); +static void FadeModel(void); +static void SceneMain(omObjData *arg0); static void KillScene(void); -Process *lbl_1_bss_8; +Process *optionObjMan; static omObjData *scene; static s32 rumbleF; void ModuleProlog(void) { - lbl_1_bss_8 = omInitObjMan(0x40, 0x2000); - omGameSysInit(lbl_1_bss_8); + optionObjMan = omInitObjMan(0x40, 0x2000); + omGameSysInit(optionObjMan); HuWinInit(1); rumbleF = GWGameStat.rumble; - scene = omAddObjEx(lbl_1_bss_8, 1000, 0, 0, 0, HandleScene); + scene = omAddObjEx(optionObjMan, 1000, 0, 0, 0, SceneMain); scene->unk10 = 0; - lbl_1_bss_28 = fn_1_2E04(); + optionState = OptionStateCreate(); } -void fn_1_160(s16 sprite, BOOL hiddenF, s32 fadeInTime) +void OptionFadeSprite(s16 sprite, BOOL inF, s32 duration) { - LRButtonWork *work; + FaderWork *work; Process *process; - work = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(LRButtonWork), MEMORY_DEFAULT_NUM); - work->spr = sprite; - work->opacityChange = 1.0f / fadeInTime; - if (hiddenF) { - work->opacityChange = work->opacityChange; - work->opacity = 0.0f; + work = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(FaderWork), MEMORY_DEFAULT_NUM); + work->id = sprite; + work->speed = 1.0f / duration; + if (inF) { + work->speed = work->speed; + work->tplvl = 0.0f; + } else { + work->speed = -work->speed; + work->tplvl = 1.0f; } - else { - work->opacityChange = -work->opacityChange; - work->opacity = 1.0f; - } - espDispOn(work->spr); - espTPLvlSet(work->spr, work->opacity); - process = HuPrcChildCreate(HandleLRBtn, 0x3000, 0x1500, 0, HuPrcCurrentGet()); + espDispOn(work->id); + espTPLvlSet(work->id, work->tplvl); + process = HuPrcChildCreate(FadeSprite, 0x3000, 0x1500, 0, HuPrcCurrentGet()); process->user_data = work; } -static void HandleLRBtn(void) +static void FadeSprite(void) { - LRButtonWork *work = HuPrcCurrentGet()->user_data; + FaderWork *work = HuPrcCurrentGet()->user_data; while (TRUE) { - work->opacity += work->opacityChange; - if (work->opacity > 1.0f) { - work->opacity = 1.0f; + work->tplvl += work->speed; + if (work->tplvl > 1.0f) { + work->tplvl = 1.0f; break; } - if (work->opacity < 0.0f) { - work->opacity = 0.0f; + if (work->tplvl < 0.0f) { + work->tplvl = 0.0f; break; } - espTPLvlSet(work->spr, work->opacity); + espTPLvlSet(work->id, work->tplvl); HuPrcVSleep(); } - espTPLvlSet(work->spr, work->opacity); - if (work->opacity <= 0.0f) { - espDispOff(work->spr); + espTPLvlSet(work->id, work->tplvl); + if (work->tplvl <= 0.0f) { + espDispOff(work->id); } HuMemDirectFree(work); HuPrcEnd(); } -static void fn_1_354(s16 sprite, s32 arg1, s32 arg2) +void OptionFadeModel(s16 model, BOOL inF, s32 duration) { - LRButtonWork *work; + FaderWork *work; Process *process; - work = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(LRButtonWork), MEMORY_DEFAULT_NUM); - work->spr = sprite; - work->opacityChange = 1.0f / arg2; - if (arg1 != 0) { - work->opacityChange = work->opacityChange; - work->opacity = 0.0f; + work = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(FaderWork), MEMORY_DEFAULT_NUM); + work->id = model; + work->speed = 1.0f / duration; + if (inF) { + work->speed = work->speed; + work->tplvl = 0.0f; } else { - work->opacityChange = -work->opacityChange; - work->opacity = 1.0f; + work->speed = -work->speed; + work->tplvl = 1.0f; } - Hu3DModelAttrReset(work->spr, 1); - Hu3DModelTPLvlSet(work->spr, work->opacity); - process = HuPrcChildCreate(fn_1_468, 0x3000, 0x1500, 0, HuPrcCurrentGet()); + Hu3DModelAttrReset(work->id, 1); + Hu3DModelTPLvlSet(work->id, work->tplvl); + process = HuPrcChildCreate(FadeModel, 0x3000, 0x1500, 0, HuPrcCurrentGet()); process->user_data = work; } -static void fn_1_468(void) +static void FadeModel(void) { - LRButtonWork *work = HuPrcCurrentGet()->user_data; + FaderWork *work = HuPrcCurrentGet()->user_data; while (TRUE) { - work->opacity += work->opacityChange; - if (work->opacity > 1.0f) { - work->opacity = 1.0f; + work->tplvl += work->speed; + if (work->tplvl > 1.0f) { + work->tplvl = 1.0f; break; } - if (work->opacity < 0.0f) { - work->opacity = 0.0f; + if (work->tplvl < 0.0f) { + work->tplvl = 0.0f; break; } - Hu3DModelTPLvlSet(work->spr, work->opacity); + Hu3DModelTPLvlSet(work->id, work->tplvl); HuPrcVSleep(); } - Hu3DModelTPLvlSet(work->spr, work->opacity); - if (work->opacity <= 0.0f) { - Hu3DModelAttrSet(work->spr, 1); + Hu3DModelTPLvlSet(work->id, work->tplvl); + if (work->tplvl <= 0.0f) { + Hu3DModelAttrSet(work->id, 1); } HuMemDirectFree(work); HuPrcEnd(); } -BOOL fn_1_550(u16 btn) +BOOL OptionPadCheck(u16 btn) { u32 temp_r31 = HuPadBtnDown[0] & btn; return (temp_r31 != 0); } -BOOL fn_1_584(u16 arg0) +BOOL OptionPadDStkRepCheck(u16 dir) { - u32 temp_r31 = HuPadDStkRep[0] & arg0; + u32 temp_r31 = HuPadDStkRep[0] & dir; return (temp_r31 != 0); } -BOOL fn_1_5B8(u16 arg0) +BOOL OptionPadDStkCheck(u16 dir) { - u32 temp_r31 = HuPadDStk[0] & arg0; + u32 temp_r31 = HuPadDStk[0] & dir; return (temp_r31 != 0); } -static void HandleScene(omObjData *object) +static void SceneMain(omObjData *object) { switch (object->unk10) { case 0: @@ -176,7 +174,7 @@ static void HandleScene(omObjData *object) /* fallthrough */ case 3: if (WipeStatGet() == 0) { - fn_1_2F4C(lbl_1_bss_28); + OptionStateKill(optionState); if (rumbleF != GWGameStat.rumble) { omSysExitReq = 0; KillScene(); @@ -189,7 +187,7 @@ static void HandleScene(omObjData *object) static void KillScene(void) { - s16 temp_r31; + s16 sprite; if (SLSaveFlagGet() == 0) { return; @@ -199,9 +197,9 @@ static void KillScene(void) HuSprInit(); espInit(); HuPrcVSleep(); - temp_r31 = espEntry(0x860020, 0x1388, 0); - espPosSet(temp_r31, 288.0f, 240.0f); - espAttrReset(temp_r31, 4); + sprite = espEntry(0x860020, 0x1388, 0); + espPosSet(sprite, 288.0f, 240.0f); + espAttrReset(sprite, 4); Hu3DBGColorSet(0, 0, 0); WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 10); while (WipeStatGet() != 0) { diff --git a/src/REL/option/sound.c b/src/REL/option/sound.c index 9f0e4090..64d2e379 100755 --- a/src/REL/option/sound.c +++ b/src/REL/option/sound.c @@ -14,38 +14,36 @@ #include "math.h" typedef struct { - /* 0x000 */ omObjData *objects[26]; - /* 0x068 */ WindowWork *window[13]; - /* 0x09C */ s32 mode; - /* 0x0A0 */ s16 sprList[19]; - /* 0x0C6 */ char unkC6[2]; + /* 0x000 */ omObjData *object[26]; + /* 0x068 */ OptionWindow *window[13]; + /* 0x09C */ s32 execMode; + /* 0x0A0 */ s16 sprite[19]; /* 0x0C8 */ s32 changeTimer; /* 0x0CC */ s32 selectedOption; /* 0x0D0 */ s32 soundMode; /* 0x0D4 */ s32 page; - /* 0x0D8 */ s32 lSelection; // list selection - /* 0x0DC */ s32 prevLSelection; + /* 0x0D8 */ s32 cursorPos; + /* 0x0DC */ s32 prevCursorPos; /* 0x0E0 */ s16 sndGrpSet; - /* 0x0E2 */ char unkE2[2]; /* 0x0E4 */ BOOL optionSelected; - /* 0x0E8 */ BOOL unkE8; + /* 0x0E8 */ BOOL doneF; /* 0x0EC */ BOOL cameraDoneF; /* 0x0F0 */ s16 bgMusicStat; - /* 0x0F2 */ s16 audSeqStat; - /* 0x0F4 */ s16 audSStreamStat; - /* 0x0F6 */ s16 audFxStat; - /* 0x0F8 */ s32 selectionChangeTimer; - /* 0x0FC */ s32 pageChange; - /* 0x100 */ s32 lSelectionChange; - /* 0x104 */ float lSelectionPos; - /* 0x108 */ float lSelectionChangeSpeed; - /* 0x10C */ Process *speakerNoteProcess; + /* 0x0F2 */ s16 seqStat; + /* 0x0F4 */ s16 streamStat; + /* 0x0F6 */ s16 fxStat; + /* 0x0F8 */ s32 cursorDelay; + /* 0x0FC */ s32 pageDelta; + /* 0x100 */ s32 cursorDelta; + /* 0x104 */ float cursorTime; + /* 0x108 */ float cursorSpeed; + /* 0x10C */ Process *noteSpawner; } SoundWork; // Size 0x110 typedef struct { /* 0x00 */ BOOL enabled; - /* 0x04 */ s32 noteType; - /* 0x08 */ s32 speakerId; + /* 0x04 */ s32 type; + /* 0x08 */ s32 side; /* 0x0C */ float pos; /* 0x10 */ float speed; } NoteWork; // Size 0x14 @@ -53,9 +51,9 @@ typedef struct { typedef struct { /* 0x00 */ BOOL enabled; /* 0x04 */ s32 nameMess; - /* 0x08 */ s16 audType; + /* 0x08 */ s16 type; /* 0x0A */ s16 sndGrpSet; - /* 0x0C */ s32 fxId; + /* 0x0C */ s32 id; } SndSelData; // Size 0x10 #define NUM_NOTES 16 @@ -75,47 +73,47 @@ typedef struct { #define NOTE_TYPE_QUAVER 0 #define NOTE_TYPE_QUARTER 1 -#define SPEAKER_LEFT 0 -#define SPEAKER_RIGHT 1 +#define NOTE_SIDE_LEFT 0 +#define NOTE_SIDE_RIGHT 1 -static void HandleInitialScreen(omObjData *object); -static void HandleOptionSel(omObjData *object); -static void HandleSoundSettings(omObjData *object); -static void HandleMusic(omObjData *object); -static void HandleVoice(omObjData *object); -static void TurnOnIndicator(omObjData *object, s32 id); -static void TurnOffIndicators(omObjData *object); -static omObjData *CreateOptionHand(void); -static void KillOptionHand(omObjData *optionHand); -static omObjData *CreateSoundSettingsHand(void); -static void KillSoundSettingsHand(omObjData *soundSettingsHand); +static void ExecZoom(omObjData *object); +static void ExecOptionSel(omObjData *object); +static void ExecOutputMode(omObjData *object); +static void ExecMusic(omObjData *object); +static void ExecVoice(omObjData *object); +static void LightSetCurr(omObjData *object, s32 id); +static void LightSetNone(omObjData *object); +static omObjData *CreateHand(void); +static void KillHand(omObjData *object); +static omObjData *CreateOutputModeHand(void); +static void KillOutputModeHand(omObjData *object); static omObjData *CreateSystem(void); static void KillSystem(omObjData *system); -static omObjData *CreateIndicator(s32 id, BOOL off); -static void KillIndicator(omObjData *indicator); -static void HideIndicator(omObjData *object); -static void ShowIndicator(omObjData *object); +static omObjData *CreateLightObj(s32 id, BOOL off); +static void KillLightObj(omObjData *indicator); +static void LightDispOff(omObjData *object); +static void LightDispOn(omObjData *object); static void CreateSpr(omObjData *object); static void KillSpr(omObjData *object); -static void DisplayOptionSel(omObjData *object); -static void HideOptionSel(omObjData *object); -static void DisplaySoundSettings(omObjData *object); -static void HideSoundSettings(omObjData *object); -static void DisplayMusicTitle(omObjData *object, s32 page); -static void HideMusicTitle(omObjData *object); -static void DisplayVoice(omObjData *object, s32 character); -static void HideVoiceTitle(omObjData *object); -static omObjData *CreateNote(s32 noteType); +static void OptionSelDisp(omObjData *object); +static void OptionSelHide(omObjData *object); +static void OutputModeDisp(omObjData *object); +static void OutputModeHide(omObjData *object); +static void MusicPageDisp(omObjData *object, s32 page); +static void MusicPageHide(omObjData *object); +static void VoicePageDisp(omObjData *object, s32 character); +static void VoicePageHide(omObjData *object); +static omObjData *CreateNoteObj(s32 type); static void KillNote(omObjData *note); static void HandleNote(omObjData *note); -static void SpawnNote(omObjData *object, s32 noteType, s32 speakerId, s32 color); -static void CreateNoteProcess(omObjData *object); -static void KillNoteProcess(omObjData *object); -static void HandleNoteProcess(void); +static void CreateNote(omObjData *object, s32 type, s32 side, s32 color); +static void CreateNoteSpawner(omObjData *object); +static void KillNoteSpawner(omObjData *object); +static void ExecNoteSpawner(void); static void PlaySound(omObjData *object); -static void FadeOutCurrSound(omObjData *object); +static void FadeSound(omObjData *object); -omObjData *lbl_1_bss_38; +omObjData *optionSound; static const s32 musicPageNameTbl[] = { MAKE_MESSID(47, 70), @@ -467,29 +465,29 @@ static const SndSelData voiceTbl[12][10] = { }, }; -static BOOL musicPageEnabledTbl[14] = { TRUE, TRUE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, TRUE, TRUE, FALSE, FALSE, FALSE }; +static BOOL musicPageOn[14] = { TRUE, TRUE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, TRUE, TRUE, FALSE, FALSE, FALSE }; -static omObjFunc modes[] = { NULL, HandleInitialScreen, HandleOptionSel, HandleSoundSettings, HandleMusic, HandleVoice }; +static omObjFunc execModeTbl[] = { NULL, ExecZoom, ExecOptionSel, ExecOutputMode, ExecMusic, ExecVoice }; -static s32 optionTextTbl[] = { MAKE_MESSID(47, 8), MAKE_MESSID(47, 10), MAKE_MESSID(47, 9) }; +static s32 choiceMess[] = { MAKE_MESSID(47, 8), MAKE_MESSID(47, 10), MAKE_MESSID(47, 9) }; -omObjData *fn_1_4028(void) +omObjData *OptionSoundCreate(void) { omObjData *object; SoundWork *work; s32 i; - object = omAddObjEx(lbl_1_bss_8, 1003, 0, 0, 1, NULL); + object = omAddObjEx(optionObjMan, 1003, 0, 0, 1, NULL); work = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(SoundWork), MEMORY_DEFAULT_NUM); object->data = work; work->selectedOption = 0; - work->unkE8 = FALSE; + work->doneF = FALSE; work->optionSelected = FALSE; work->bgMusicStat = -2; - work->audSeqStat = -1; - work->audSStreamStat = -1; - work->audFxStat = -1; - work->speakerNoteProcess = NULL; + work->seqStat = -1; + work->streamStat = -1; + work->fxStat = -1; + work->noteSpawner = NULL; switch (GWGameStat.sound_mode) { case 0: work->soundMode = SOUND_MODE_MONO; @@ -500,79 +498,79 @@ omObjData *fn_1_4028(void) break; } - work->objects[0] = CreateSystem(); + work->object[0] = CreateSystem(); for (i = 0; i < 6; i++) { - work->objects[i + 1] = CreateIndicator(i % 3, (i / 3) > 0); + work->object[i + 1] = CreateLightObj(i % 3, (i / 3) > 0); } - TurnOffIndicators(object); - work->objects[7] = CreateOptionHand(); - work->objects[8] = CreateSoundSettingsHand(); + LightSetNone(object); + work->object[7] = CreateHand(); + work->object[8] = CreateOutputModeHand(); for (i = 0; i < NUM_NOTES; i++) { - work->objects[i + 10] = CreateNote((i / 8) == 0 ? NOTE_TYPE_QUAVER : NOTE_TYPE_QUARTER); + work->object[i + 10] = CreateNoteObj((i / 8) == 0 ? NOTE_TYPE_QUAVER : NOTE_TYPE_QUARTER); } CreateSpr(object); - fn_1_4388(object, MODE_DISABLED); + OptionSoundExecModeSet(object, MODE_DISABLED); for (i = 0; i < NUM_BOARDS; i++) { - musicPageEnabledTbl[i + 3] = (GWGameStat.board_play_count[i] != 0) ? TRUE : FALSE; + musicPageOn[i + 3] = (GWGameStat.board_play_count[i] != 0) ? TRUE : FALSE; } - musicPageEnabledTbl[11] = (GWGameStat.field10E_bit6 != 0) ? TRUE : FALSE; - musicPageEnabledTbl[12] = (GWGameStat.field10E_bit6 != 0) ? TRUE : FALSE; - musicPageEnabledTbl[13] = (GWGameStat.field10E_bit6 != 0) ? TRUE : FALSE; + musicPageOn[11] = (GWGameStat.field10E_bit6 != 0) ? TRUE : FALSE; + musicPageOn[12] = (GWGameStat.field10E_bit6 != 0) ? TRUE : FALSE; + musicPageOn[13] = (GWGameStat.field10E_bit6 != 0) ? TRUE : FALSE; return object; } -void fn_1_42DC(omObjData *object) +void OptionSoundKill(omObjData *object) { SoundWork *work = object->data; s32 i; - KillOptionHand(work->objects[7]); - KillSoundSettingsHand(work->objects[8]); - KillSystem(work->objects[0]); + KillHand(work->object[7]); + KillOutputModeHand(work->object[8]); + KillSystem(work->object[0]); for (i = 0; i < 6; i++) { - KillIndicator(work->objects[i + 1]); + KillLightObj(work->object[i + 1]); } for (i = 0; i < 16; i++) { - KillNote(work->objects[i + 10]); + KillNote(work->object[i + 10]); } KillSpr(object); HuMemDirectFree(work); } -void fn_1_4388(omObjData *object, s32 mode) +void OptionSoundExecModeSet(omObjData *object, s32 execMode) { SoundWork *work = object->data; - work->mode = mode; - object->func = modes[mode]; + work->execMode = execMode; + object->func = execModeTbl[execMode]; object->unk10 = 0; object->unk10 = 0; } -s32 fn_1_43CC(omObjData *object) +s32 OptionSoundExecModeGet(omObjData *object) { SoundWork *work = object->data; - return work->mode; + return work->execMode; } -static void HandleInitialScreen(omObjData *object) +static void ExecZoom(omObjData *object) { SoundWork *work = object->data; s32 i; switch (object->unk10) { case 0: - if (!work->unkE8) { - work->window[0] = fn_1_A44C(0); - work->window[1] = fn_1_A44C(1); - work->window[2] = fn_1_A44C(2); + if (!work->doneF) { + work->window[0] = OptionWinCreate(0); + work->window[1] = OptionWinCreate(1); + work->window[2] = OptionWinCreate(2); for (i = 0; i < 10; i++) { - work->window[i + 3] = fn_1_A44C(3); + work->window[i + 3] = OptionWinCreate(3); } - fn_1_AF0(lbl_1_bss_10, 0.0f, 120.0f, -600.0f, 0x28); - fn_1_A6C(lbl_1_bss_10, 0.0f, 120.0f, -350.0f, 0x28); - work->unkE8 = TRUE; + OptionCameraFocusSet(optionCamera, 0.0f, 120.0f, -600.0f, 0x28); + OptionCameraTargetSet(optionCamera, 0.0f, 120.0f, -350.0f, 0x28); + work->doneF = TRUE; work->selectedOption = 0; work->optionSelected = FALSE; object->unk10 = 1; @@ -582,108 +580,108 @@ static void HandleInitialScreen(omObjData *object) } break; case 1: - if (fn_1_CB8(lbl_1_bss_10) == 0) { - fn_1_4388(object, MODE_HANDLE_OPTION_SEL); + if (OptionCameraDoneCheck(optionCamera) == 0) { + OptionSoundExecModeSet(object, MODE_HANDLE_OPTION_SEL); } break; case 2: for (i = 0; i < 13; i++) { - fn_1_A6AC(work->window[i]); + OptionWinKill(work->window[i]); } - fn_1_AF0(lbl_1_bss_10, 0.0f, 120.0f, -600.0f, 0x28); - fn_1_A6C(lbl_1_bss_10, 0.0f, 120.0f, 0.0f, 0x28); - work->unkE8 = FALSE; + OptionCameraFocusSet(optionCamera, 0.0f, 120.0f, -600.0f, 0x28); + OptionCameraTargetSet(optionCamera, 0.0f, 120.0f, 0.0f, 0x28); + work->doneF = FALSE; work->optionSelected = FALSE; - fn_1_4388(object, MODE_DISABLED); + OptionSoundExecModeSet(object, MODE_DISABLED); break; } } -static void HandleOptionSel(omObjData *object) +static void ExecOptionSel(omObjData *object) { SoundWork *work = object->data; switch (object->unk10) { case 0: - TurnOffIndicators(object); - work->lSelection = work->selectedOption; + LightSetNone(object); + work->cursorPos = work->selectedOption; if (!work->optionSelected) { - fn_1_3D54(lbl_1_bss_30); + OptionRumbleMotionShowStart(optionRumble); } else { - HideSoundSettings(object); - HideMusicTitle(object); - HideVoiceTitle(object); + OutputModeHide(object); + MusicPageHide(object); + VoicePageHide(object); } work->optionSelected = FALSE; work->cameraDoneF = FALSE; object->unk10 = 1; /* fallthrough */ case 1: - DisplayOptionSel(object); - fn_1_A6EC(work->window[1]); - fn_1_A71C(work->window[1], MAKE_MESSID(47, 168)); - fn_1_A6EC(work->window[0]); - fn_1_A71C(work->window[0], optionTextTbl[work->lSelection]); + OptionSelDisp(object); + OptionWinAnimIn(work->window[1]); + OptionWinMesSet(work->window[1], MAKE_MESSID(47, 168)); + OptionWinAnimIn(work->window[0]); + OptionWinMesSet(work->window[0], choiceMess[work->cursorPos]); if (!work->cameraDoneF) { - Hu3DModelAttrReset(work->objects[7]->model[0], 1); + Hu3DModelAttrReset(work->object[7]->model[0], 1); work->cameraDoneF = TRUE; } - omSetTra(work->objects[7], -34.0f + 40.0f * work->lSelection, 120.0f, -500.0f); + omSetTra(work->object[7], -34.0f + 40.0f * work->cursorPos, 120.0f, -500.0f); object->unk10 = 2; /* fallthrough */ case 2: if (work->window[0]->state == 0 && work->window[1]->state == 0) { - if (fn_1_550(PAD_BUTTON_A)) { - work->selectedOption = work->lSelection; + if (OptionPadCheck(PAD_BUTTON_A)) { + work->selectedOption = work->cursorPos; work->optionSelected = TRUE; - TurnOnIndicator(object, work->selectedOption); + LightSetCurr(object, work->selectedOption); HuAudFXPlay(2); object->unk10 = 3; } - else if (fn_1_550(PAD_BUTTON_B)) { + else if (OptionPadCheck(PAD_BUTTON_B)) { HuAudFXPlay(3); object->unk10 = 3; } - else if (fn_1_584(1) && work->lSelection > 0) { - work->lSelection--; + else if (OptionPadDStkRepCheck(1) && work->cursorPos > 0) { + work->cursorPos--; HuAudFXPlay(0); object->unk10 = 1; } - else if (fn_1_584(2) && work->lSelection < 2) { - work->lSelection++; + else if (OptionPadDStkRepCheck(2) && work->cursorPos < 2) { + work->cursorPos++; HuAudFXPlay(0); object->unk10 = 1; } } break; case 3: - fn_1_A704(work->window[1]); - fn_1_A704(work->window[0]); + OptionWinAnimOut(work->window[1]); + OptionWinAnimOut(work->window[0]); if (!work->optionSelected) { - fn_1_3E1C(lbl_1_bss_30); + OptionRumbleMotionHideStart(optionRumble); } - Hu3DModelAttrSet(work->objects[7]->model[0], 1); + Hu3DModelAttrSet(work->object[7]->model[0], 1); object->unk10 = 4; /* fallthrough */ case 4: - if ((work->optionSelected || !fn_1_3ED0(lbl_1_bss_30)) && work->window[0]->state == 0 && work->window[1]->state == 0) { + if ((work->optionSelected || !OptionRumbleMotionCheck(optionRumble)) && work->window[0]->state == 0 && work->window[1]->state == 0) { if (work->optionSelected) { switch (work->selectedOption) { case 0: - fn_1_4388(object, MODE_HANDLE_SOUND); + OptionSoundExecModeSet(object, MODE_HANDLE_SOUND); break; case 1: - fn_1_4388(object, MODE_HANDLE_MUSIC); + OptionSoundExecModeSet(object, MODE_HANDLE_MUSIC); break; case 2: - fn_1_4388(object, MODE_HANDLE_VOICE); + OptionSoundExecModeSet(object, MODE_HANDLE_VOICE); break; } } else { - HideOptionSel(object); - fn_1_4388(object, MODE_HANDLE_INITIAL_SCREEN); + OptionSelHide(object); + OptionSoundExecModeSet(object, MODE_HANDLE_INITIAL_SCREEN); } } break; @@ -695,66 +693,66 @@ static const s32 soundModeTbl[] = { 1, 0 }; static const s32 soundModeNameTbl[] = { MAKE_MESSID(47, 11), MAKE_MESSID(47, 12) }; -static void HandleSoundSettings(omObjData *object) +static void ExecOutputMode(omObjData *object) { SoundWork *work = object->data; - Vec sp8; + Vec pos; switch (object->unk10) { case 0: - HideOptionSel(object); + OptionSelHide(object); work->optionSelected = FALSE; - work->lSelection = work->soundMode; + work->cursorPos = work->soundMode; work->cameraDoneF = FALSE; work->optionSelected = FALSE; - CreateNoteProcess(object); + CreateNoteSpawner(object); object->unk10 = 1; /* fallthrough */ case 1: - DisplaySoundSettings(object); - fn_1_A6EC(work->window[1]); - fn_1_A71C(work->window[1], MAKE_MESSID(47, 168)); - fn_1_A6EC(work->window[0]); - fn_1_A71C(work->window[0], soundModeNameTbl[work->soundMode]); + OutputModeDisp(object); + OptionWinAnimIn(work->window[1]); + OptionWinMesSet(work->window[1], MAKE_MESSID(47, 168)); + OptionWinAnimIn(work->window[0]); + OptionWinMesSet(work->window[0], soundModeNameTbl[work->soundMode]); if (!work->cameraDoneF) { - Hu3DModelAttrReset(work->objects[8]->model[0], 1); + Hu3DModelAttrReset(work->object[8]->model[0], 1); work->cameraDoneF = TRUE; } - sp8.x = -38.0f; - sp8.y = 140.0f - 15.0f * work->lSelection; - sp8.z = -500.0f; - omSetTra(work->objects[8], sp8.x, sp8.y, sp8.z); + pos.x = -38.0f; + pos.y = 140.0f - 15.0f * work->cursorPos; + pos.z = -500.0f; + omSetTra(work->object[8], pos.x, pos.y, pos.z); object->unk10 = 2; /* fallthrough */ case 2: if (work->window[0]->state == 0 && work->window[1]->state == 0) { - if (fn_1_550(PAD_BUTTON_A)) { - work->soundMode = work->lSelection; + if (OptionPadCheck(PAD_BUTTON_A)) { + work->soundMode = work->cursorPos; if (work->soundMode == SOUND_MODE_STEREO) { HuAudFXPlay(0x841); } else { HuAudFXPlay(0x842); } - GWGameStat.sound_mode = outputModeTbl[work->lSelection]; - msmSysSetOutputMode(outputModeTbl[work->lSelection]); - OSSetSoundMode(soundModeTbl[work->lSelection]); + GWGameStat.sound_mode = outputModeTbl[work->cursorPos]; + msmSysSetOutputMode(outputModeTbl[work->cursorPos]); + OSSetSoundMode(soundModeTbl[work->cursorPos]); work->optionSelected = TRUE; - DisplaySoundSettings(object); + OutputModeDisp(object); work->changeTimer = 0; object->unk10 = 3; } - else if (fn_1_550(PAD_BUTTON_B)) { + else if (OptionPadCheck(PAD_BUTTON_B)) { HuAudFXPlay(3); object->unk10 = 4; } - else if (fn_1_584(8) != 0 && work->lSelection > 0) { - work->lSelection--; + else if (OptionPadDStkRepCheck(8) != 0 && work->cursorPos > 0) { + work->cursorPos--; HuAudFXPlay(0); object->unk10 = 1; } - else if (fn_1_584(4) != 0 && work->lSelection < 1) { - work->lSelection++; + else if (OptionPadDStkRepCheck(4) != 0 && work->cursorPos < 1) { + work->cursorPos++; HuAudFXPlay(0); object->unk10 = 1; } @@ -767,121 +765,121 @@ static void HandleSoundSettings(omObjData *object) } break; case 4: - KillNoteProcess(object); - fn_1_A704(work->window[1]); - fn_1_A704(work->window[0]); - Hu3DModelAttrSet(work->objects[8]->model[0], 1); + KillNoteSpawner(object); + OptionWinAnimOut(work->window[1]); + OptionWinAnimOut(work->window[0]); + Hu3DModelAttrSet(work->object[8]->model[0], 1); object->unk10 = 5; /* fallthrough */ case 5: if (work->window[0]->state == 0 && work->window[1]->state == 0) { work->optionSelected = FALSE; - DisplaySoundSettings(object); + OutputModeDisp(object); work->optionSelected = TRUE; - fn_1_4388(object, MODE_HANDLE_OPTION_SEL); + OptionSoundExecModeSet(object, MODE_HANDLE_OPTION_SEL); } break; } } -static void HandleMusic(omObjData *object) +static void ExecMusic(omObjData *object) { SoundWork *work = object->data; - float temp_f31; - float temp_f30; - float temp_f29; - float temp_f28; - float temp_f27; - float temp_f26; + float oldX; + float oldY; + float x; + float y; + float newX; + float newY; s32 i; - s32 newSelection; - s32 sp8; + s32 cursorPosNew; + s32 cursorPosOld; - sp8 = work->lSelection; + cursorPosOld = work->cursorPos; switch (object->unk10) { case 0: - HideOptionSel(object); + OptionSelHide(object); work->page = 0; - work->lSelectionChange = 0; - work->pageChange = 0; - espBankSet(work->sprList[14], 0); - espBankSet(work->sprList[15], 2); - espPosSet(work->sprList[14], 36.0f, 222.0f); - espPosSet(work->sprList[15], 544.0f, 222.0f); - fn_1_160(work->sprList[14], 1, 5); - fn_1_160(work->sprList[15], 1, 5); - work->selectionChangeTimer = 0; + work->cursorDelta = 0; + work->pageDelta = 0; + espBankSet(work->sprite[14], 0); + espBankSet(work->sprite[15], 2); + espPosSet(work->sprite[14], 36.0f, 222.0f); + espPosSet(work->sprite[15], 544.0f, 222.0f); + OptionFadeSprite(work->sprite[14], 1, 5); + OptionFadeSprite(work->sprite[15], 1, 5); + work->cursorDelay = 0; object->unk10 = 1; /* fallthrough */ case 1: - work->lSelection = 0; - work->prevLSelection = 0; - if (work->pageChange != 0) { + work->cursorPos = 0; + work->prevCursorPos = 0; + if (work->pageDelta != 0) { do { - work->page += work->pageChange; + work->page += work->pageDelta; if (work->page >= 14) { work->page = 0; } else if (work->page < 0) { work->page = 13; } - } while (!musicPageEnabledTbl[work->page]); + } while (!musicPageOn[work->page]); HuAudFXPlay(0x840); - if (work->pageChange > 0) { - espBankSet(work->sprList[15], 3); + if (work->pageDelta > 0) { + espBankSet(work->sprite[15], 3); } else { - espBankSet(work->sprList[14], 1); + espBankSet(work->sprite[14], 1); } - work->selectionChangeTimer = 5; - work->pageChange = 0; + work->cursorDelay = 5; + work->pageDelta = 0; } object->unk10 = 2; /* fallthrough */ case 2: - if (work->lSelectionChange != 0) { - newSelection = work->lSelection + work->lSelectionChange; - if (newSelection > 9) { - newSelection = 9; + if (work->cursorDelta != 0) { + cursorPosNew = work->cursorPos + work->cursorDelta; + if (cursorPosNew > 9) { + cursorPosNew = 9; } - else if (newSelection < 0) { - newSelection = 0; + else if (cursorPosNew < 0) { + cursorPosNew = 0; } - if (!musicTbl[work->page][newSelection].enabled) { - if (work->lSelection < 5) { - for (i = newSelection; i >= 5; i--) { + if (!musicTbl[work->page][cursorPosNew].enabled) { + if (work->cursorPos < 5) { + for (i = cursorPosNew; i >= 5; i--) { if (musicTbl[work->page][i].enabled) { - newSelection = i; + cursorPosNew = i; break; } } if (i < 5) { - newSelection = work->lSelection; + cursorPosNew = work->cursorPos; } } else { - newSelection = work->lSelection; + cursorPosNew = work->cursorPos; } } - work->prevLSelection = work->lSelection; - if (work->lSelection != newSelection) { - work->lSelection = newSelection; + work->prevCursorPos = work->cursorPos; + if (work->cursorPos != cursorPosNew) { + work->cursorPos = cursorPosNew; HuAudFXPlay(0x840); } - work->lSelectionChange = 0; + work->cursorDelta = 0; } object->unk10 = 3; /* fallthrough */ case 3: - DisplayMusicTitle(object, work->page); - fn_1_A6EC(work->window[0]); - fn_1_A71C(work->window[0], MAKE_MESSID(47, 10)); - fn_1_A6EC(work->window[1]); - fn_1_A71C(work->window[1], MAKE_MESSID(47, 18)); - espDispOn(work->sprList[18]); - work->lSelectionPos = 0.0f; - work->lSelectionChangeSpeed = 0.0625f; - if (work->selectionChangeTimer > 0) { + MusicPageDisp(object, work->page); + OptionWinAnimIn(work->window[0]); + OptionWinMesSet(work->window[0], MAKE_MESSID(47, 10)); + OptionWinAnimIn(work->window[1]); + OptionWinMesSet(work->window[1], MAKE_MESSID(47, 18)); + espDispOn(work->sprite[18]); + work->cursorTime = 0.0f; + work->cursorSpeed = 0.0625f; + if (work->cursorDelay > 0) { object->unk10 = 5; } else { @@ -889,31 +887,31 @@ static void HandleMusic(omObjData *object) } /* fallthrough */ case 4: - temp_f31 = 166.0f + 244.0f * (work->prevLSelection / 5); - temp_f30 = 144.0f + 29.0f * (work->prevLSelection % 5); - temp_f27 = 166.0f + 244.0f * (work->lSelection / 5); - temp_f26 = 144.0f + 29.0f * (work->lSelection % 5); - temp_f29 = temp_f31 + work->lSelectionPos * (temp_f27 - temp_f31); - temp_f28 = temp_f30 + work->lSelectionPos * (temp_f26 - temp_f30); - espPosSet(work->sprList[18], temp_f29, temp_f28); - if ((work->lSelectionPos += work->lSelectionChangeSpeed) < 1.0f) { + oldX = 166.0f + 244.0f * (work->prevCursorPos / 5); + oldY = 144.0f + 29.0f * (work->prevCursorPos % 5); + newX = 166.0f + 244.0f * (work->cursorPos / 5); + newY = 144.0f + 29.0f * (work->cursorPos % 5); + x = oldX + work->cursorTime * (newX - oldX); + y = oldY + work->cursorTime * (newY - oldY); + espPosSet(work->sprite[18], x, y); + if ((work->cursorTime += work->cursorSpeed) < 1.0f) { break; } - espPosSet(work->sprList[18], 166.0f + 244.0f * (work->lSelection / 5), 144.0f + 29.0f * (work->lSelection % 5)); + espPosSet(work->sprite[18], 166.0f + 244.0f * (work->cursorPos / 5), 144.0f + 29.0f * (work->cursorPos % 5)); object->unk10 = 6; break; case 5: - if (work->selectionChangeTimer > 0) { - work->selectionChangeTimer--; + if (work->cursorDelay > 0) { + work->cursorDelay--; break; } - espBankSet(work->sprList[14], 0); - espBankSet(work->sprList[15], 2); + espBankSet(work->sprite[14], 0); + espBankSet(work->sprite[15], 2); object->unk10 = 6; /* fallthrough */ case 6: if (work->window[0]->state == 0 && work->window[1]->state == 0) { - if (fn_1_550(PAD_BUTTON_A)) { + if (OptionPadCheck(PAD_BUTTON_A)) { if (work->bgMusicStat == -2) { HuAudFadeOut(0x64); work->bgMusicStat = -1; @@ -924,91 +922,91 @@ static void HandleMusic(omObjData *object) } PlaySound(object); } - else if (fn_1_550(PAD_BUTTON_B)) { + else if (OptionPadCheck(PAD_BUTTON_B)) { HuAudFXPlay(3); work->changeTimer = 0; object->unk10 = 7; } else { - if (fn_1_5B8(1) != 0 && work->lSelection >= 5) { - work->lSelectionChange -= 5; + if (OptionPadDStkCheck(1) != 0 && work->cursorPos >= 5) { + work->cursorDelta -= 5; } - else if (fn_1_5B8(2) != 0 && work->lSelection < 5) { - work->lSelectionChange += 5; + else if (OptionPadDStkCheck(2) != 0 && work->cursorPos < 5) { + work->cursorDelta += 5; } - if (fn_1_5B8(8) != 0 && work->lSelection % 5 > 0) { - work->lSelectionChange--; + if (OptionPadDStkCheck(8) != 0 && work->cursorPos % 5 > 0) { + work->cursorDelta--; } - else if (fn_1_5B8(4) != 0 && work->lSelection % 5 < 4) { - work->lSelectionChange++; + else if (OptionPadDStkCheck(4) != 0 && work->cursorPos % 5 < 4) { + work->cursorDelta++; } - if (work->lSelectionChange != 0) { + if (work->cursorDelta != 0) { object->unk10 = 2; } - else if (fn_1_550(PAD_TRIGGER_L)) { - work->pageChange = -1; + else if (OptionPadCheck(PAD_TRIGGER_L)) { + work->pageDelta = -1; } - else if (fn_1_550(PAD_TRIGGER_R)) { - work->pageChange = 1; + else if (OptionPadCheck(PAD_TRIGGER_R)) { + work->pageDelta = 1; } - if (work->pageChange != 0) { + if (work->pageDelta != 0) { object->unk10 = 1; } } } break; case 7: - fn_1_A704(work->window[1]); - fn_1_A704(work->window[0]); - FadeOutCurrSound(object); - fn_1_160(work->sprList[14], 0, 5); - fn_1_160(work->sprList[15], 0, 5); + OptionWinAnimOut(work->window[1]); + OptionWinAnimOut(work->window[0]); + FadeSound(object); + OptionFadeSprite(work->sprite[14], 0, 5); + OptionFadeSprite(work->sprite[15], 0, 5); object->unk10 = 8; /* fallthrough */ case 8: if (work->window[0]->state == 0 && work->window[1]->state == 0) { - espDispOff(work->sprList[18]); + espDispOff(work->sprite[18]); if (work->bgMusicStat == -1) { work->bgMusicStat = HuAudSeqPlay(0x2D); } - fn_1_4388(object, MODE_HANDLE_OPTION_SEL); + OptionSoundExecModeSet(object, MODE_HANDLE_OPTION_SEL); } break; } } -static void HandleVoice(omObjData *object) +static void ExecVoice(omObjData *object) { SoundWork *work = object->data; - float temp_f31; - float temp_f30; - float temp_f29; - float temp_f28; - float temp_f27; - float temp_f26; - s32 var_r28; - s32 newSelection; + float oldX; + float oldY; + float x; + float y; + float newX; + float newY; + s32 i; + s32 cursorPosNew; switch (object->unk10) { case 0: - HideOptionSel(object); + OptionSelHide(object); work->page = 0; - work->lSelectionChange = 0; - work->pageChange = 0; - espBankSet(work->sprList[14], 0); - espBankSet(work->sprList[15], 2); - espPosSet(work->sprList[14], 36.0f, 222.0f); - espPosSet(work->sprList[15], 544.0f, 222.0f); - fn_1_160(work->sprList[14], 1, 5); - fn_1_160(work->sprList[15], 1, 5); - work->selectionChangeTimer = 0; + work->cursorDelta = 0; + work->pageDelta = 0; + espBankSet(work->sprite[14], 0); + espBankSet(work->sprite[15], 2); + espPosSet(work->sprite[14], 36.0f, 222.0f); + espPosSet(work->sprite[15], 544.0f, 222.0f); + OptionFadeSprite(work->sprite[14], 1, 5); + OptionFadeSprite(work->sprite[15], 1, 5); + work->cursorDelay = 0; object->unk10 = 3; /* fallthrough */ case 1: - work->lSelection = 0; - work->prevLSelection = 0; - if (work->pageChange != 0) { - work->page += work->pageChange; + work->cursorPos = 0; + work->prevCursorPos = 0; + if (work->pageDelta != 0) { + work->page += work->pageDelta; if (work->page > 11) { work->page = 0; } @@ -1016,61 +1014,61 @@ static void HandleVoice(omObjData *object) work->page = 11; } HuAudFXPlay(0x840); - if (work->pageChange > 0) { - espBankSet(work->sprList[15], 3); + if (work->pageDelta > 0) { + espBankSet(work->sprite[15], 3); } else { - espBankSet(work->sprList[14], 1); + espBankSet(work->sprite[14], 1); } - work->selectionChangeTimer = 5; - work->pageChange = 0; + work->cursorDelay = 5; + work->pageDelta = 0; } object->unk10 = 2; /* fallthrough */ case 2: - if (work->lSelectionChange != 0) { - newSelection = work->lSelection + work->lSelectionChange; - if (newSelection > 9) { - newSelection = 9; + if (work->cursorDelta != 0) { + cursorPosNew = work->cursorPos + work->cursorDelta; + if (cursorPosNew > 9) { + cursorPosNew = 9; } - else if (newSelection < 0) { - newSelection = 0; + else if (cursorPosNew < 0) { + cursorPosNew = 0; } - if (!voiceTbl[work->page][newSelection].enabled) { - if (work->lSelection < 5) { - for (var_r28 = newSelection; var_r28 >= 5; var_r28--) { - if (voiceTbl[work->page][var_r28].enabled) { - newSelection = var_r28; + if (!voiceTbl[work->page][cursorPosNew].enabled) { + if (work->cursorPos < 5) { + for (i = cursorPosNew; i >= 5; i--) { + if (voiceTbl[work->page][i].enabled) { + cursorPosNew = i; break; } } - if (var_r28 < 5) { - newSelection = work->lSelection; + if (i < 5) { + cursorPosNew = work->cursorPos; } } else { - newSelection = work->lSelection; + cursorPosNew = work->cursorPos; } } - work->prevLSelection = work->lSelection; - if (work->lSelection != newSelection) { - work->lSelection = newSelection; + work->prevCursorPos = work->cursorPos; + if (work->cursorPos != cursorPosNew) { + work->cursorPos = cursorPosNew; HuAudFXPlay(0x840); } - work->lSelectionChange = 0; + work->cursorDelta = 0; } object->unk10 = 3; /* fallthrough */ case 3: - DisplayVoice(object, work->page); - fn_1_A6EC(work->window[0]); - fn_1_A71C(work->window[0], MAKE_MESSID(47, 9)); - fn_1_A6EC(work->window[1]); - fn_1_A71C(work->window[1], MAKE_MESSID(47, 18)); - espDispOn(work->sprList[18]); - work->lSelectionPos = 0.0f; - work->lSelectionChangeSpeed = 0.0625f; - if (work->selectionChangeTimer > 0) { + VoicePageDisp(object, work->page); + OptionWinAnimIn(work->window[0]); + OptionWinMesSet(work->window[0], MAKE_MESSID(47, 9)); + OptionWinAnimIn(work->window[1]); + OptionWinMesSet(work->window[1], MAKE_MESSID(47, 18)); + espDispOn(work->sprite[18]); + work->cursorTime = 0.0f; + work->cursorSpeed = 0.0625f; + if (work->cursorDelay > 0) { object->unk10 = 5; } else { @@ -1078,170 +1076,170 @@ static void HandleVoice(omObjData *object) } /* fallthrough */ case 4: - temp_f31 = 166.0f + 244.0f * (work->prevLSelection / 5); - temp_f30 = 144.0f + 29.0f * (work->prevLSelection % 5); - temp_f27 = 166.0f + 244.0f * (work->lSelection / 5); - temp_f26 = 144.0f + 29.0f * (work->lSelection % 5); - temp_f29 = temp_f31 + work->lSelectionPos * (temp_f27 - temp_f31); - temp_f28 = temp_f30 + work->lSelectionPos * (temp_f26 - temp_f30); - espPosSet(work->sprList[18], temp_f29, temp_f28); - if ((work->lSelectionPos += work->lSelectionChangeSpeed) < 1.0f) { + oldX = 166.0f + 244.0f * (work->prevCursorPos / 5); + oldY = 144.0f + 29.0f * (work->prevCursorPos % 5); + newX = 166.0f + 244.0f * (work->cursorPos / 5); + newY = 144.0f + 29.0f * (work->cursorPos % 5); + x = oldX + work->cursorTime * (newX - oldX); + y = oldY + work->cursorTime * (newY - oldY); + espPosSet(work->sprite[18], x, y); + if ((work->cursorTime += work->cursorSpeed) < 1.0f) { break; } - espPosSet(work->sprList[18], 166.0f + 244.0f * (work->lSelection / 5), 144.0f + 29.0f * (work->lSelection % 5)); + espPosSet(work->sprite[18], 166.0f + 244.0f * (work->cursorPos / 5), 144.0f + 29.0f * (work->cursorPos % 5)); object->unk10 = 6; break; case 5: - if (work->selectionChangeTimer > 0) { - work->selectionChangeTimer--; + if (work->cursorDelay > 0) { + work->cursorDelay--; break; } - espBankSet(work->sprList[14], 0); - espBankSet(work->sprList[15], 2); + espBankSet(work->sprite[14], 0); + espBankSet(work->sprite[15], 2); object->unk10 = 6; /* fallthrough */ case 6: if (work->window[0]->state == 0 && work->window[1]->state == 0) { - if (fn_1_550(PAD_BUTTON_A)) { + if (OptionPadCheck(PAD_BUTTON_A)) { PlaySound(object); } - else if (fn_1_550(PAD_BUTTON_B)) { + else if (OptionPadCheck(PAD_BUTTON_B)) { HuAudFXPlay(3); work->changeTimer = 0; object->unk10 = 7; } else { - if (fn_1_5B8(1) != 0 && work->lSelection >= 5) { - work->lSelectionChange -= 5; + if (OptionPadDStkCheck(1) != 0 && work->cursorPos >= 5) { + work->cursorDelta -= 5; } - else if (fn_1_5B8(2) != 0 && work->lSelection < 5) { - work->lSelectionChange += 5; + else if (OptionPadDStkCheck(2) != 0 && work->cursorPos < 5) { + work->cursorDelta += 5; } - if (fn_1_5B8(8) != 0 && work->lSelection % 5 > 0) { - work->lSelectionChange--; + if (OptionPadDStkCheck(8) != 0 && work->cursorPos % 5 > 0) { + work->cursorDelta--; } - else if (fn_1_5B8(4) != 0 && work->lSelection % 5 < 4) { - work->lSelectionChange++; + else if (OptionPadDStkCheck(4) != 0 && work->cursorPos % 5 < 4) { + work->cursorDelta++; } - if (work->lSelectionChange != 0) { + if (work->cursorDelta != 0) { object->unk10 = 2; } - else if (fn_1_550(PAD_TRIGGER_L)) { - work->pageChange = -1; + else if (OptionPadCheck(PAD_TRIGGER_L)) { + work->pageDelta = -1; } - else if (fn_1_550(PAD_TRIGGER_R)) { - work->pageChange = 1; + else if (OptionPadCheck(PAD_TRIGGER_R)) { + work->pageDelta = 1; } - if (work->pageChange != 0) { + if (work->pageDelta != 0) { object->unk10 = 1; } } } break; case 7: - fn_1_A704(work->window[1]); - fn_1_A704(work->window[0]); - FadeOutCurrSound(object); - fn_1_160(work->sprList[14], 0, 5); - fn_1_160(work->sprList[15], 0, 5); + OptionWinAnimOut(work->window[1]); + OptionWinAnimOut(work->window[0]); + FadeSound(object); + OptionFadeSprite(work->sprite[14], 0, 5); + OptionFadeSprite(work->sprite[15], 0, 5); object->unk10 = 8; /* fallthrough */ case 8: if (work->window[0]->state == 0 && work->window[1]->state == 0) { - espDispOff(work->sprList[18]); - fn_1_4388(object, MODE_HANDLE_OPTION_SEL); + espDispOff(work->sprite[18]); + OptionSoundExecModeSet(object, MODE_HANDLE_OPTION_SEL); } break; } } -static void TurnOnIndicator(omObjData *object, s32 id) +static void LightSetCurr(omObjData *object, s32 id) { SoundWork *work = object->data; switch (id) { case 0: - HideIndicator(work->objects[1]); - HideIndicator(work->objects[5]); - HideIndicator(work->objects[6]); - ShowIndicator(work->objects[4]); - ShowIndicator(work->objects[2]); - ShowIndicator(work->objects[3]); + LightDispOff(work->object[1]); + LightDispOff(work->object[5]); + LightDispOff(work->object[6]); + LightDispOn(work->object[4]); + LightDispOn(work->object[2]); + LightDispOn(work->object[3]); break; case 1: - HideIndicator(work->objects[4]); - HideIndicator(work->objects[2]); - HideIndicator(work->objects[6]); - ShowIndicator(work->objects[1]); - ShowIndicator(work->objects[5]); - ShowIndicator(work->objects[3]); + LightDispOff(work->object[4]); + LightDispOff(work->object[2]); + LightDispOff(work->object[6]); + LightDispOn(work->object[1]); + LightDispOn(work->object[5]); + LightDispOn(work->object[3]); break; case 2: - HideIndicator(work->objects[4]); - HideIndicator(work->objects[5]); - HideIndicator(work->objects[3]); - ShowIndicator(work->objects[1]); - ShowIndicator(work->objects[2]); - ShowIndicator(work->objects[6]); + LightDispOff(work->object[4]); + LightDispOff(work->object[5]); + LightDispOff(work->object[3]); + LightDispOn(work->object[1]); + LightDispOn(work->object[2]); + LightDispOn(work->object[6]); break; } } -static void TurnOffIndicators(omObjData *object) +static void LightSetNone(omObjData *object) { SoundWork *work = object->data; - HideIndicator(work->objects[4]); - HideIndicator(work->objects[5]); - HideIndicator(work->objects[6]); - ShowIndicator(work->objects[1]); - ShowIndicator(work->objects[2]); - ShowIndicator(work->objects[3]); + LightDispOff(work->object[4]); + LightDispOff(work->object[5]); + LightDispOff(work->object[6]); + LightDispOn(work->object[1]); + LightDispOn(work->object[2]); + LightDispOn(work->object[3]); } -static omObjData *CreateOptionHand(void) +static omObjData *CreateHand(void) { - omObjData *optionHand; + omObjData *object; - optionHand = omAddObjEx(lbl_1_bss_8, 1003, 1, 0, 1, NULL); - optionHand->model[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_OPTION, 13)); - Hu3DModelLayerSet(optionHand->model[0], 2); - Hu3DModelAttrSet(optionHand->model[0], 0x40000001); - omSetRot(optionHand, -80.0f, 45.0f, 0.0f); - omSetSca(optionHand, 0.6f, 0.6f, 0.6f); - Hu3DModelAttrSet(optionHand->model[0], 1); - return optionHand; + object = omAddObjEx(optionObjMan, 1003, 1, 0, 1, NULL); + object->model[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_OPTION, 13)); + Hu3DModelLayerSet(object->model[0], 2); + Hu3DModelAttrSet(object->model[0], 0x40000001); + omSetRot(object, -80.0f, 45.0f, 0.0f); + omSetSca(object, 0.6f, 0.6f, 0.6f); + Hu3DModelAttrSet(object->model[0], 1); + return object; } -static void KillOptionHand(omObjData *optionHand) +static void KillHand(omObjData *object) { s32 i; for (i = 0; i < 1; i++) { - Hu3DModelKill(optionHand->model[i]); + Hu3DModelKill(object->model[i]); } } -static omObjData *CreateSoundSettingsHand(void) +static omObjData *CreateOutputModeHand(void) { - omObjData *soundSettingsHand; + omObjData *object; - soundSettingsHand = omAddObjEx(lbl_1_bss_8, 1003, 1, 0, 1, NULL); - soundSettingsHand->model[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_OPTION, 14)); - Hu3DModelLayerSet(soundSettingsHand->model[0], 2); - Hu3DModelAttrSet(soundSettingsHand->model[0], 0x40000001); - omSetRot(soundSettingsHand, 0.0f, -90.0f, 0.0f); - omSetSca(soundSettingsHand, 0.6f, 0.6f, 0.6f); - Hu3DModelAttrSet(soundSettingsHand->model[0], 1); - return soundSettingsHand; + object = omAddObjEx(optionObjMan, 1003, 1, 0, 1, NULL); + object->model[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_OPTION, 14)); + Hu3DModelLayerSet(object->model[0], 2); + Hu3DModelAttrSet(object->model[0], 0x40000001); + omSetRot(object, 0.0f, -90.0f, 0.0f); + omSetSca(object, 0.6f, 0.6f, 0.6f); + Hu3DModelAttrSet(object->model[0], 1); + return object; } -static void KillSoundSettingsHand(omObjData *settingsHand) +static void KillOutputModeHand(omObjData *object) { s32 i; for (i = 0; i < 1; i++) { - Hu3DModelKill(settingsHand->model[i]); + Hu3DModelKill(object->model[i]); } } @@ -1249,7 +1247,7 @@ static omObjData *CreateSystem(void) { omObjData *system; - system = omAddObjEx(lbl_1_bss_8, 1003, 1, 0, 1, NULL); + system = omAddObjEx(optionObjMan, 1003, 1, 0, 1, NULL); system->model[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_OPTION, 3)); Hu3DModelAttrSet(system->model[0], 0x40000001); Hu3DModelLayerSet(system->model[0], 0); @@ -1265,45 +1263,45 @@ static void KillSystem(omObjData *system) } } -static const Vec indicatorPosTbl[3] = { { -40.0f, 0.0f, 0.0f }, { 0.0f, 0.0f, 0.0f }, { 40.0f, 0.0f, 0.0f } }; +static const Vec lightPosTbl[3] = { { -40.0f, 0.0f, 0.0f }, { 0.0f, 0.0f, 0.0f }, { 40.0f, 0.0f, 0.0f } }; -static omObjData *CreateIndicator(s32 id, BOOL off) +static omObjData *CreateLightObj(s32 id, BOOL off) { - omObjData *indicator; + omObjData *object; - indicator = omAddObjEx(lbl_1_bss_8, 1003, 1, 0, 1, NULL); + object = omAddObjEx(optionObjMan, 1003, 1, 0, 1, NULL); if (off) { - indicator->model[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_OPTION, 5)); + object->model[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_OPTION, 5)); } else { - indicator->model[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_OPTION, 4)); + object->model[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_OPTION, 4)); } - Hu3DModelAttrSet(indicator->model[0], 0x40000001); - Hu3DModelLayerSet(indicator->model[0], 0); - omSetTra(indicator, indicatorPosTbl[id].x, indicatorPosTbl[id].y, indicatorPosTbl[id].z); - return indicator; + Hu3DModelAttrSet(object->model[0], 0x40000001); + Hu3DModelLayerSet(object->model[0], 0); + omSetTra(object, lightPosTbl[id].x, lightPosTbl[id].y, lightPosTbl[id].z); + return object; } -static void KillIndicator(omObjData *indicator) +static void KillLightObj(omObjData *object) { s32 i; for (i = 0; i < 1; i++) { - Hu3DModelKill(indicator->model[i]); + Hu3DModelKill(object->model[i]); } } -static void HideIndicator(omObjData *indicator) +static void LightDispOff(omObjData *indicator) { Hu3DModelAttrReset(indicator->model[0], 1); } -static void ShowIndicator(omObjData *indicator) +static void LightDispOn(omObjData *indicator) { Hu3DModelAttrSet(indicator->model[0], 1); } -static s32 sprTbl[] = { +static s32 spriteDataTbl[] = { DATA_MAKE_NUM(DATADIR_OPTION, 38), DATA_MAKE_NUM(DATADIR_OPTION, 39), DATA_MAKE_NUM(DATADIR_OPTION, 40), @@ -1331,12 +1329,12 @@ static void CreateSpr(omObjData *object) s32 i; for (i = 0; i < 19; i++) { - work->sprList[i] = espEntry(sprTbl[i], 0, 0); - espDrawNoSet(work->sprList[i], 0x40); - espDispOff(work->sprList[i]); + work->sprite[i] = espEntry(spriteDataTbl[i], 0, 0); + espDrawNoSet(work->sprite[i], 0x40); + espDispOff(work->sprite[i]); } - espBankSet(work->sprList[14], 0); - espBankSet(work->sprList[15], 2); + espBankSet(work->sprite[14], 0); + espBankSet(work->sprite[15], 2); HuSprExecLayerSet(0x40, 1); } @@ -1346,199 +1344,200 @@ static void KillSpr(omObjData *object) s32 i; for (i = 0; i < 19; i++) { - espKill(work->sprList[i]); + espKill(work->sprite[i]); } } -static void DisplayOptionSel(omObjData *object) +static void OptionSelDisp(omObjData *object) { SoundWork *work = object->data; - float temp_f31 = 288.0f; - float temp_f30 = 188.0f; + float x = 288.0f; + float y = 188.0f; - espPosSet(work->sprList[12], 288.0f, 72.0f); - espPosSet(work->sprList[0], temp_f31 + -112.0f, temp_f30); - espPosSet(work->sprList[3], temp_f31 + -112.0f, temp_f30); - espPosSet(work->sprList[1], temp_f31, temp_f30); - espPosSet(work->sprList[4], temp_f31, temp_f30); - espPosSet(work->sprList[2], temp_f31 + 112.0f, temp_f30); - espPosSet(work->sprList[5], temp_f31 + 112.0f, temp_f30); - espDispOn(work->sprList[12]); - switch (work->lSelection) { + espPosSet(work->sprite[12], 288.0f, 72.0f); + espPosSet(work->sprite[0], x + -112.0f, y); + espPosSet(work->sprite[3], x + -112.0f, y); + espPosSet(work->sprite[1], x, y); + espPosSet(work->sprite[4], x, y); + espPosSet(work->sprite[2], x + 112.0f, y); + espPosSet(work->sprite[5], x + 112.0f, y); + espDispOn(work->sprite[12]); + switch (work->cursorPos) { case 0: - espDispOn(work->sprList[3]); - espDispOn(work->sprList[1]); - espDispOn(work->sprList[2]); - espDispOff(work->sprList[0]); - espDispOff(work->sprList[4]); - espDispOff(work->sprList[5]); + espDispOn(work->sprite[3]); + espDispOn(work->sprite[1]); + espDispOn(work->sprite[2]); + espDispOff(work->sprite[0]); + espDispOff(work->sprite[4]); + espDispOff(work->sprite[5]); break; case 1: - espDispOn(work->sprList[0]); - espDispOn(work->sprList[4]); - espDispOn(work->sprList[2]); - espDispOff(work->sprList[3]); - espDispOff(work->sprList[1]); - espDispOff(work->sprList[5]); + espDispOn(work->sprite[0]); + espDispOn(work->sprite[4]); + espDispOn(work->sprite[2]); + espDispOff(work->sprite[3]); + espDispOff(work->sprite[1]); + espDispOff(work->sprite[5]); break; case 2: - espDispOn(work->sprList[0]); - espDispOn(work->sprList[1]); - espDispOn(work->sprList[5]); - espDispOff(work->sprList[3]); - espDispOff(work->sprList[4]); - espDispOff(work->sprList[2]); + espDispOn(work->sprite[0]); + espDispOn(work->sprite[1]); + espDispOn(work->sprite[5]); + espDispOff(work->sprite[3]); + espDispOff(work->sprite[4]); + espDispOff(work->sprite[2]); break; } } -static const s32 optionSelSprIdxTbl[] = { 12, 0, 1, 2, 3, 4, 5 }; - -static void HideOptionSel(omObjData *object) +static void OptionSelHide(omObjData *object) { + static const s32 sprHideTbl[] = { 12, 0, 1, 2, 3, 4, 5 }; SoundWork *work = object->data; s32 i; for (i = 0; i < 7; i++) { - espDispOff(work->sprList[optionSelSprIdxTbl[i]]); + espDispOff(work->sprite[sprHideTbl[i]]); } } -static void DisplaySoundSettings(omObjData *object) +static void OutputModeDisp(omObjData *object) { SoundWork *work = object->data; - float temp_f31 = 290.0f; - float temp_f30 = 192.0f; + float x = 290.0f; + float y = 192.0f; - espPosSet(work->sprList[13], 288.0f, 72.0f); - espPosSet(work->sprList[6], temp_f31, temp_f30 - 32.0f); - espPosSet(work->sprList[7], temp_f31, temp_f30 - 32.0f); - espPosSet(work->sprList[8], temp_f31, temp_f30 + 32.0f); - espPosSet(work->sprList[9], temp_f31, temp_f30 + 32.0f); - switch (work->lSelection) { + espPosSet(work->sprite[13], 288.0f, 72.0f); + espPosSet(work->sprite[6], x, y - 32.0f); + espPosSet(work->sprite[7], x, y - 32.0f); + espPosSet(work->sprite[8], x, y + 32.0f); + espPosSet(work->sprite[9], x, y + 32.0f); + switch (work->cursorPos) { case 0: - espPosSet(work->sprList[17], temp_f31, temp_f30 - 32.0f); + espPosSet(work->sprite[17], x, y - 32.0f); break; case 1: - espPosSet(work->sprList[17], temp_f31, temp_f30 + 32.0f); + espPosSet(work->sprite[17], x, y + 32.0f); break; } - espDispOn(work->sprList[13]); - switch (work->lSelection) { + espDispOn(work->sprite[13]); + switch (work->cursorPos) { case 0: - espDispOn(work->sprList[6]); - espDispOn(work->sprList[9]); - espDispOff(work->sprList[7]); - espDispOff(work->sprList[8]); + espDispOn(work->sprite[6]); + espDispOn(work->sprite[9]); + espDispOff(work->sprite[7]); + espDispOff(work->sprite[8]); break; case 1: - espDispOn(work->sprList[7]); - espDispOn(work->sprList[8]); - espDispOff(work->sprList[6]); - espDispOff(work->sprList[9]); + espDispOn(work->sprite[7]); + espDispOn(work->sprite[8]); + espDispOff(work->sprite[6]); + espDispOff(work->sprite[9]); break; } if (work->optionSelected) { - espDispOn(work->sprList[17]); + espDispOn(work->sprite[17]); } else { - espDispOff(work->sprList[17]); + espDispOff(work->sprite[17]); } } -static const s32 soundSettingsSprTbl[] = { 13, 6, 7, 8, 9 }; -static void HideSoundSettings(omObjData *object) + +static void OutputModeHide(omObjData *object) { + static const s32 sprHideTbl[] = { 13, 6, 7, 8, 9 }; SoundWork *work = object->data; s32 i; for (i = 0; i < 5; i++) { - espDispOff(work->sprList[soundSettingsSprTbl[i]]); + espDispOff(work->sprite[sprHideTbl[i]]); } } -static void DisplayMusicTitle(omObjData *object, s32 page) +static void MusicPageDisp(omObjData *object, s32 page) { SoundWork *work = object->data; s32 i; - espPosSet(work->sprList[10], 288.0f, 72.0f); - espDispOn(work->sprList[10]); - fn_1_A7F0(work->window[2]); + espPosSet(work->sprite[10], 288.0f, 72.0f); + espDispOn(work->sprite[10]); + OptionWinDispOn(work->window[2]); for (i = 0; i < 10; i++) { - fn_1_A7F0(work->window[i + 3]); - fn_1_A7B0(work->window[i + 3], 52.0f + 244.0f * (i / 5), 124.0f + 29.0f * (i % 5)); + OptionWinDispOn(work->window[i + 3]); + OptionWinPosSet(work->window[i + 3], 52.0f + 244.0f * (i / 5), 124.0f + 29.0f * (i % 5)); } - fn_1_A71C(work->window[2], musicPageNameTbl[page]); + OptionWinMesSet(work->window[2], musicPageNameTbl[page]); for (i = 0; i < 10; i++) { - fn_1_A71C(work->window[i + 3], musicTbl[page][i].nameMess); + OptionWinMesSet(work->window[i + 3], musicTbl[page][i].nameMess); } } -static const s32 musicTitleSprIdxTbl[] = { 10 }; -static void HideMusicTitle(omObjData *object) +static void MusicPageHide(omObjData *object) { + static const s32 sprHideTbl[] = { 10 }; SoundWork *work = object->data; s32 i; for (i = 0; i < 1; i++) { - espDispOff(work->sprList[musicTitleSprIdxTbl[i]]); + espDispOff(work->sprite[sprHideTbl[i]]); } - fn_1_A828(work->window[2]); + OptionWinDispOff(work->window[2]); for (i = 0; i < 10; i++) { - fn_1_A828(work->window[i + 3]); + OptionWinDispOff(work->window[i + 3]); } } -static void DisplayVoice(omObjData *object, s32 character) +static void VoicePageDisp(omObjData *object, s32 character) { SoundWork *work = object->data; s32 i; - espPosSet(work->sprList[11], 288.0f, 72.0f); - espDispOn(work->sprList[11]); - fn_1_A7F0(work->window[2]); + espPosSet(work->sprite[11], 288.0f, 72.0f); + espDispOn(work->sprite[11]); + OptionWinDispOn(work->window[2]); for (i = 0; i < 10; i++) { - fn_1_A7F0(work->window[i + 3]); - fn_1_A7B0(work->window[i + 3], 52.0f + 244.0f * (i / 5), 124.0f + 29.0f * (i % 5)); + OptionWinDispOn(work->window[i + 3]); + OptionWinPosSet(work->window[i + 3], 52.0f + 244.0f * (i / 5), 124.0f + 29.0f * (i % 5)); } - fn_1_A71C(work->window[2], voiceCharNameTbl[character]); + OptionWinMesSet(work->window[2], voiceCharNameTbl[character]); for (i = 0; i < 10; i++) { - fn_1_A71C(work->window[i + 3], voiceTbl[character][i].nameMess); + OptionWinMesSet(work->window[i + 3], voiceTbl[character][i].nameMess); } } -static const s32 voiceTitleSprIdxTbl[] = { 11, 0 }; -static void HideVoiceTitle(omObjData *object) + +static void VoicePageHide(omObjData *object) { + static const s32 sprHideTbl[] = { 11, 0 }; SoundWork *work = object->data; s32 i; for (i = 0; i < 1; i++) { - espDispOff(work->sprList[voiceTitleSprIdxTbl[i]]); + espDispOff(work->sprite[sprHideTbl[i]]); } - fn_1_A828(work->window[2]); + OptionWinDispOff(work->window[2]); for (i = 0; i < 10; i++) { - fn_1_A828(work->window[i + 3]); + OptionWinDispOff(work->window[i + 3]); } } -static s32 noteSprTbl[] = { DATA_MAKE_NUM(DATADIR_OPTION, 7), DATA_MAKE_NUM(DATADIR_OPTION, 8) }; +static s32 noteMdlTbl[] = { DATA_MAKE_NUM(DATADIR_OPTION, 7), DATA_MAKE_NUM(DATADIR_OPTION, 8) }; -static omObjData *CreateNote(s32 noteType) +static omObjData *CreateNoteObj(s32 type) { omObjData *note; NoteWork *noteWork; - note = omAddObjEx(lbl_1_bss_8, 1003, 1, 0, 1, NULL); + note = omAddObjEx(optionObjMan, 1003, 1, 0, 1, NULL); noteWork = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(NoteWork), MEMORY_DEFAULT_NUM); note->data = noteWork; noteWork->enabled = FALSE; - noteWork->noteType = noteType; - note->model[0] = Hu3DModelCreateFile(noteSprTbl[noteType]); + noteWork->type = type; + note->model[0] = Hu3DModelCreateFile(noteMdlTbl[type]); Hu3DModelAttrSet(note->model[0], 0x40000001); Hu3DModelLayerSet(note->model[0], 2); Hu3DModelAttrReset(note->model[0], 2); @@ -1559,39 +1558,39 @@ static void KillNote(omObjData *note) static void HandleNote(omObjData *note) { NoteWork *noteWork = note->data; - float temp_f31; + float time; float scale; - float var_f29; - float rot; - float temp_f27; + float angle; + float zRot; + float radius; float x; float z; float y; - float temp_f23; + float tplvl; Hu3DModelAttrReset(note->model[0], 1); - temp_f31 = sind(45.0f * noteWork->pos); - temp_f31 = temp_f31 * temp_f31; - switch (noteWork->speakerId) { - case SPEAKER_LEFT: - var_f29 = 174.5f + 7.0f * temp_f31; - rot = -15.0 + 30.0 * sind(1440.0f * temp_f31); + time = sind(45.0f * noteWork->pos); + time = time * time; + switch (noteWork->side) { + case NOTE_SIDE_LEFT: + angle = 174.5f + 7.0f * time; + zRot = -15.0 + 30.0 * sind(1440.0f * time); break; - case SPEAKER_RIGHT: - var_f29 = 185.5f - (7.0f * temp_f31); - rot = 15.0 - 30.0 * sind(1440.0f * temp_f31); + case NOTE_SIDE_RIGHT: + angle = 185.5f - (7.0f * time); + zRot = 15.0 - 30.0 * sind(1440.0f * time); break; } - temp_f23 = sind(180.0f * noteWork->pos); - temp_f27 = 500.0f - 25.0f * temp_f31; - x = temp_f27 * -sind(var_f29); - z = temp_f27 * cosd(var_f29); + tplvl = sind(180.0f * noteWork->pos); + radius = 500.0f - 25.0f * time; + x = radius * -sind(angle); + z = radius * cosd(angle); y = 160.0f - 15.0f * noteWork->pos; - scale = 0.5 + 2.0 * sind(90.0f * temp_f31); + scale = 0.5 + 2.0 * sind(90.0f * time); omSetTra(note, x, y, z); - Hu3DModelTPLvlSet(note->model[0], temp_f23); + Hu3DModelTPLvlSet(note->model[0], tplvl); omSetSca(note, scale, scale, scale); - omSetRot(note, 0.0f, 0.0f, rot); + omSetRot(note, 0.0f, 0.0f, zRot); if ((noteWork->pos += noteWork->speed) < 1.0f) { return; } @@ -1601,70 +1600,70 @@ static void HandleNote(omObjData *note) note->unk10 = 0; } -static void SpawnNote(omObjData *object, s32 noteType, s32 speakerId, s32 color) +static void CreateNote(omObjData *object, s32 type, s32 side, s32 color) { - omObjData *note; - NoteWork *var_r31; + omObjData *noteObj; + NoteWork *note; s32 i; for (i = 0; i < NUM_NOTES; i++) { - note = ((SoundWork *)object->data)->objects[i + 10]; - var_r31 = note->data; - if (!var_r31->enabled && var_r31->noteType == noteType) { + noteObj = ((SoundWork *)object->data)->object[i + 10]; + note = noteObj->data; + if (!note->enabled && note->type == type) { break; } } if (i != NUM_NOTES) { - Hu3DMotionTimeSet(note->model[0], 2.0f * color); - Hu3DMotionStartEndSet(note->model[0], 2.0f * color, 2.0f * color + 1.0f); - var_r31->enabled = TRUE; - var_r31->speakerId = speakerId; - var_r31->pos = 0.0f; - var_r31->speed = 0.011111111f; - note->func = HandleNote; - note->unk10 = 0; + Hu3DMotionTimeSet(noteObj->model[0], 2.0f * color); + Hu3DMotionStartEndSet(noteObj->model[0], 2.0f * color, 2.0f * color + 1.0f); + note->enabled = TRUE; + note->side = side; + note->pos = 0.0f; + note->speed = 0.011111111f; + noteObj->func = HandleNote; + noteObj->unk10 = 0; } } -static void CreateNoteProcess(omObjData *object) +static void CreateNoteSpawner(omObjData *object) { SoundWork *work = object->data; - work->speakerNoteProcess = HuPrcChildCreate(HandleNoteProcess, 0x64, 0x2000, 0, HuPrcCurrentGet()); - work->speakerNoteProcess->user_data = object; + work->noteSpawner = HuPrcChildCreate(ExecNoteSpawner, 0x64, 0x2000, 0, HuPrcCurrentGet()); + work->noteSpawner->user_data = object; } -static void KillNoteProcess(omObjData *object) +static void KillNoteSpawner(omObjData *object) { SoundWork *work = object->data; - HuPrcKill(work->speakerNoteProcess); + HuPrcKill(work->noteSpawner); } -static void HandleNoteProcess(void) +static void ExecNoteSpawner(void) { omObjData *object; SoundWork *work; - s32 noteType; + s32 type; s32 color; object = HuPrcCurrentGet()->user_data; work = object->data; while (TRUE) { - switch (work->lSelection) { + switch (work->cursorPos) { case 0: - noteType = NOTE_TYPE_QUARTER; + type = NOTE_TYPE_QUARTER; color = frandmod(7); - SpawnNote(object, noteType, SPEAKER_LEFT, color); - noteType = NOTE_TYPE_QUAVER; + CreateNote(object, type, NOTE_SIDE_LEFT, color); + type = NOTE_TYPE_QUAVER; color = frandmod(7); - SpawnNote(object, noteType, SPEAKER_RIGHT, color); + CreateNote(object, type, NOTE_SIDE_RIGHT, color); break; case 1: - noteType = NOTE_TYPE_QUAVER; + type = NOTE_TYPE_QUAVER; color = frandmod(7); - SpawnNote(object, noteType, SPEAKER_LEFT, color); - SpawnNote(object, noteType, SPEAKER_RIGHT, color); + CreateNote(object, type, NOTE_SIDE_LEFT, color); + CreateNote(object, type, NOTE_SIDE_RIGHT, color); break; } HuPrcSleep(24); @@ -1677,28 +1676,28 @@ static void PlaySound(omObjData *object) SndSelData *sndSelData; if (work->selectedOption == 1) { - sndSelData = (SndSelData *)&musicTbl[work->page][work->lSelection]; + sndSelData = (SndSelData *)&musicTbl[work->page][work->cursorPos]; } else { - sndSelData = (SndSelData *)&voiceTbl[work->page][work->lSelection]; + sndSelData = (SndSelData *)&voiceTbl[work->page][work->cursorPos]; } if (sndSelData->enabled) { - FadeOutCurrSound(object); - switch (sndSelData->audType) { + FadeSound(object); + switch (sndSelData->type) { case 1: - work->audSStreamStat = HuAudSStreamPlay(sndSelData->fxId); + work->streamStat = HuAudSStreamPlay(sndSelData->id); break; case 28: if (sndSelData->sndGrpSet != work->sndGrpSet) { HuAudSndGrpSetSet(sndSelData->sndGrpSet); } - work->audFxStat = HuAudFXPlay(sndSelData->fxId); + work->fxStat = HuAudFXPlay(sndSelData->id); break; default: if (sndSelData->sndGrpSet != work->sndGrpSet && sndSelData->sndGrpSet != 2) { HuAudSndGrpSetSet(sndSelData->sndGrpSet); } - work->audSeqStat = HuAudSeqPlay(sndSelData->fxId); + work->seqStat = HuAudSeqPlay(sndSelData->id); break; } work->sndGrpSet = sndSelData->sndGrpSet; @@ -1706,21 +1705,21 @@ static void PlaySound(omObjData *object) } } -static void FadeOutCurrSound(omObjData *object) +static void FadeSound(omObjData *object) { SoundWork *work = object->data; - if (work->audSeqStat != -1) { - HuAudSeqFadeOut(work->audSeqStat, 0x64); - work->audSeqStat = -1; + if (work->seqStat != -1) { + HuAudSeqFadeOut(work->seqStat, 0x64); + work->seqStat = -1; } - if (work->audSStreamStat != -1) { - HuAudSStreamFadeOut(work->audSStreamStat, 0x64); - work->audSStreamStat = -1; + if (work->streamStat != -1) { + HuAudSStreamFadeOut(work->streamStat, 0x64); + work->streamStat = -1; } - if (work->audFxStat != -1) { - HuAudFXFadeOut(work->audFxStat, 0x64); - work->audFxStat = -1; + if (work->fxStat != -1) { + HuAudFXFadeOut(work->fxStat, 0x64); + work->fxStat = -1; } HuPrcSleep(20); } diff --git a/src/REL/option/state.c b/src/REL/option/state.c index 86b6ed63..a2fc6f37 100755 --- a/src/REL/option/state.c +++ b/src/REL/option/state.c @@ -7,7 +7,7 @@ #include "dolphin.h" typedef struct { - /* 0x00 */ WindowWork *window; + /* 0x00 */ OptionWindow *window; /* 0x04 */ s32 quitTimer; /* 0x08 */ s16 light; } StateWork; // Size 0xC @@ -18,9 +18,9 @@ typedef struct { GXColor color; } UnkLightDataStruct; // Size 0x1C TODO same as m446Dll::unkStruct10 and present::UnkPresentStruct3 -static void HandleState(omObjData *object); +static void ExecState(omObjData *object); -omObjData *lbl_1_bss_28; +omObjData *optionState; static UnkLightDataStruct lightTbl = { { 0.0f, 300.0f, 0.0f }, @@ -34,18 +34,18 @@ static Vec shadowPosTbl[3] = { { 0.0f, 0.0f, 0.0f }, }; -omObjData *fn_1_2E04(void) +omObjData *OptionStateCreate(void) { omObjData *object; StateWork *work; LightData *lightData; - object = omAddObjEx(lbl_1_bss_8, 1000, 0, 0, 4, HandleState); + object = omAddObjEx(optionObjMan, 1000, 0, 0, 4, ExecState); work = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(StateWork), MEMORY_DEFAULT_NUM); object->data = work; - lbl_1_bss_10 = fn_1_7F8(); - lbl_1_bss_18 = fn_1_15A4(); - work->window = fn_1_A44C(0); + optionCamera = OptionCameraCreate(); + optionRoom = OptionRoomCreate(); + work->window = OptionWinCreate(0); Hu3DLighInit(); work->light = Hu3DGLightCreateV(&lightTbl.src, &lightTbl.dest, &lightTbl.color); Hu3DGLightInfinitytSet(work->light); @@ -56,17 +56,17 @@ omObjData *fn_1_2E04(void) return object; } -void fn_1_2F4C(omObjData *object) +void OptionStateKill(omObjData *object) { StateWork *work = object->data; - fn_1_A3C(lbl_1_bss_10); - fn_1_1798(lbl_1_bss_18); - fn_1_A6AC(work->window); + OptionCameraKill(optionCamera); + OptionRoomKill(optionRoom); + OptionWinKill(work->window); HuMemDirectFree(work); } -static void HandleState(omObjData *object) +static void ExecState(omObjData *object) { StateWork *work = object->data; @@ -82,32 +82,32 @@ static void HandleState(omObjData *object) if (WipeStatGet() != 0 || work->window->state != 0) { break; } - fn_1_1A2C(lbl_1_bss_18, 1); + OptionRoomExecModeSet(optionRoom, 1); object->unk10 = 3; /* fallthrough */ case 3: - if (fn_1_1A70(lbl_1_bss_18) != 0) { + if (OptionRoomExecModeGet(optionRoom) != 0) { break; } object->unk10 = 4; /* fallthrough */ case 4: - fn_1_A6EC(work->window); - fn_1_A71C(work->window, MAKE_MESSID(47, 167)); // Would you like to leave? + OptionWinAnimIn(work->window); + OptionWinMesSet(work->window, MAKE_MESSID(47, 167)); // Would you like to leave? object->unk10 = 5; /* fallthrough */ case 5: if (work->window->state != 0) { break; } - fn_1_A880(work->window, 1); + OptionWinChoiceSet(work->window, 1); object->unk10 = 6; /* fallthrough */ case 6: if (work->window->state != 0) { break; } - fn_1_A704(work->window); + OptionWinAnimOut(work->window); if (work->window->choice == 0) { work->quitTimer = 0; object->unk10 = 7; diff --git a/src/REL/option/window.c b/src/REL/option/window.c index e401f0fd..6bb32d8d 100755 --- a/src/REL/option/window.c +++ b/src/REL/option/window.c @@ -5,18 +5,18 @@ #include "game/process.h" #include "game/sprite.h" -static void HandleWindow(void); +static void ExecWindow(void); -WindowWork *fn_1_A44C(s32 id) +OptionWindow *OptionWinCreate(s32 id) { - WindowWork *work; + OptionWindow *work; - work = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(WindowWork), MEMORY_DEFAULT_NUM); + work = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(OptionWindow), MEMORY_DEFAULT_NUM); work->messToBeSet = 0; work->messWaitSignal = 0; work->choiceSignal = 0; work->state = 0; - work->process = HuPrcChildCreate(HandleWindow, 0x2000, 0x2000, 0, lbl_1_bss_8); + work->process = HuPrcChildCreate(ExecWindow, 0x2000, 0x2000, 0, optionObjMan); work->process->user_data = work; work->id = id; switch (work->id) { @@ -45,33 +45,33 @@ WindowWork *fn_1_A44C(s32 id) break; } HuWinDrawNoSet(work->window, 0x3F); - fn_1_A828(work); + OptionWinDispOff(work); HuSprExecLayerSet(0x3F, 2); return work; } -void fn_1_A6AC(WindowWork *work) +void OptionWinKill(OptionWindow *work) { HuWinExCleanup(work->window); HuPrcKill(work->process); HuMemDirectFree(work); } -void fn_1_A6EC(WindowWork *work) +void OptionWinAnimIn(OptionWindow *work) { if (!work->visible) { work->state = 1; } } -void fn_1_A704(WindowWork *work) +void OptionWinAnimOut(OptionWindow *work) { if (work->visible) { work->state = 2; } } -void fn_1_A71C(WindowWork *work, s32 mess) +void OptionWinMesSet(OptionWindow *work, s32 mess) { if (work->state == 0) { HuWinMesSet(work->window, mess); @@ -81,32 +81,29 @@ void fn_1_A71C(WindowWork *work, s32 mess) } } -static void fn_1_A770(WindowWork *work, s32 mess, s16 index) +void OptionWinInsertMesSet(OptionWindow *work, s32 mess, s16 index) { HuWinInsertMesSet(work->window, mess, index); } -// SetWindowPosition -void fn_1_A7B0(WindowWork *work, float x, float y) +void OptionWinPosSet(OptionWindow *work, float x, float y) { HuWinPosSet(work->window, x, y); } -// DisplayWindow -void fn_1_A7F0(WindowWork *work) +void OptionWinDispOn(OptionWindow *work) { HuWinDispOn(work->window); work->visible = TRUE; } -// HideWindow -void fn_1_A828(WindowWork *work) +void OptionWinDispOff(OptionWindow *work) { HuWinDispOff(work->window); work->visible = FALSE; } -static void fn_1_A860(WindowWork *work) +void OptionWinMesWait(OptionWindow *work) { if (work->state == 0) { work->state = 3; @@ -114,7 +111,7 @@ static void fn_1_A860(WindowWork *work) work->messWaitSignal = TRUE; } -void fn_1_A880(WindowWork *work, s32 choice) +void OptionWinChoiceSet(OptionWindow *work, s32 choice) { if (work->state == 0) { work->state = 4; @@ -123,19 +120,19 @@ void fn_1_A880(WindowWork *work, s32 choice) work->choice = choice; } -static void HandleWindow(void) +static void ExecWindow(void) { - WindowWork *work = HuPrcCurrentGet()->user_data; + OptionWindow *work = HuPrcCurrentGet()->user_data; while (TRUE) { switch (work->state) { case 1: - fn_1_A7F0(work); + OptionWinDispOn(work); HuWinExAnimIn(work->window); break; case 2: HuWinExAnimOut(work->window); - fn_1_A828(work); + OptionWinDispOff(work); break; case 3: HuWinMesWait(work->window);