Merge pull request #215 from gamemasterplc/main
Match selmenu sound functions
This commit is contained in:
commit
1c18d41b85
3 changed files with 265 additions and 80 deletions
|
|
@ -9,7 +9,7 @@ MoveSMCursor = .text:0x00000BCC; // type:function size:0x88 scope:local
|
||||||
SMInit = .text:0x00000C54; // type:function size:0x474 scope:local
|
SMInit = .text:0x00000C54; // type:function size:0x474 scope:local
|
||||||
SMUpdate = .text:0x000010C8; // type:function size:0xA78 scope:local
|
SMUpdate = .text:0x000010C8; // type:function size:0xA78 scope:local
|
||||||
SMGroupGen = .text:0x00001B40; // type:function size:0x334 scope:local
|
SMGroupGen = .text:0x00001B40; // type:function size:0x334 scope:local
|
||||||
SMComCharGet = .text:0x00001E74; // type:function size:0x110 scope:local
|
SMChangeChar = .text:0x00001E74; // type:function size:0x110 scope:local
|
||||||
SMCharKill = .text:0x00001F84; // type:function size:0x50 scope:local
|
SMCharKill = .text:0x00001F84; // type:function size:0x50 scope:local
|
||||||
CharRandomize = .text:0x00001FD4; // type:function size:0x10C scope:local
|
CharRandomize = .text:0x00001FD4; // type:function size:0x10C scope:local
|
||||||
SMCharInit = .text:0x000020E0; // type:function size:0x1F8 scope:local
|
SMCharInit = .text:0x000020E0; // type:function size:0x1F8 scope:local
|
||||||
|
|
@ -56,7 +56,7 @@ lbl_1_data_18 = .data:0x00000018; // type:object size:0x6 data:string
|
||||||
lbl_1_data_1E = .data:0x0000001E; // type:object size:0x7 data:string
|
lbl_1_data_1E = .data:0x0000001E; // type:object size:0x7 data:string
|
||||||
lbl_1_data_25 = .data:0x00000025; // type:object size:0x6 data:string
|
lbl_1_data_25 = .data:0x00000025; // type:object size:0x6 data:string
|
||||||
lbl_1_data_2B = .data:0x0000002B; // type:object size:0x8 data:string
|
lbl_1_data_2B = .data:0x0000002B; // type:object size:0x8 data:string
|
||||||
charTbl = .data:0x00000034; // type:object size:0x20 scope:local
|
smCharTbl = .data:0x00000034; // type:object size:0x20 scope:local
|
||||||
lbl_1_data_54 = .data:0x00000054; // type:object size:0x14 data:string
|
lbl_1_data_54 = .data:0x00000054; // type:object size:0x14 data:string
|
||||||
lbl_1_data_68 = .data:0x00000068; // type:object size:0x16 data:string
|
lbl_1_data_68 = .data:0x00000068; // type:object size:0x16 data:string
|
||||||
lbl_1_data_7E = .data:0x0000007E; // type:object size:0x11 data:string
|
lbl_1_data_7E = .data:0x0000007E; // type:object size:0x11 data:string
|
||||||
|
|
@ -127,7 +127,7 @@ lbl_1_data_4B6 = .data:0x000004B6; // type:object size:0xE data:string
|
||||||
lbl_1_data_4C4 = .data:0x000004C4; // type:object size:0xE data:string
|
lbl_1_data_4C4 = .data:0x000004C4; // type:object size:0xE data:string
|
||||||
lbl_1_data_4D2 = .data:0x000004D2; // type:object size:0xA data:string
|
lbl_1_data_4D2 = .data:0x000004D2; // type:object size:0xA data:string
|
||||||
lbl_1_data_4DC = .data:0x000004DC; // type:object size:0xF data:string
|
lbl_1_data_4DC = .data:0x000004DC; // type:object size:0xF data:string
|
||||||
menuTbl = .data:0x000004EC; // type:object size:0x348 scope:local
|
smMenuTbl = .data:0x000004EC; // type:object size:0x348 scope:local
|
||||||
cameraMaskTbl = .data:0x00000834; // type:object size:0x10 scope:local
|
cameraMaskTbl = .data:0x00000834; // type:object size:0x10 scope:local
|
||||||
lbl_1_data_844 = .data:0x00000844; // type:object size:0x18 scope:local
|
lbl_1_data_844 = .data:0x00000844; // type:object size:0x18 scope:local
|
||||||
lbl_1_data_85C = .data:0x0000085C; // type:object size:0x12 data:string
|
lbl_1_data_85C = .data:0x0000085C; // type:object size:0x12 data:string
|
||||||
|
|
@ -140,7 +140,7 @@ lbl_1_data_8C8 = .data:0x000008C8; // type:object size:0x11 data:string
|
||||||
lbl_1_data_8D9 = .data:0x000008D9; // type:object size:0x1
|
lbl_1_data_8D9 = .data:0x000008D9; // type:object size:0x1
|
||||||
dvdMusTbl = .data:0x000008DC; // type:object size:0x20 scope:local
|
dvdMusTbl = .data:0x000008DC; // type:object size:0x20 scope:local
|
||||||
smSelectPosExit = .data:0x000008FC; // type:object size:0x2 scope:local data:2byte
|
smSelectPosExit = .data:0x000008FC; // type:object size:0x2 scope:local data:2byte
|
||||||
btnPrevAll = .data:0x000008FE; // type:object size:0x8 scope:local
|
keyDStkAllPrev = .data:0x000008FE; // type:object size:0x8 scope:local
|
||||||
lbl_1_data_906 = .data:0x00000906; // type:object size:0xF data:string
|
lbl_1_data_906 = .data:0x00000906; // type:object size:0xF data:string
|
||||||
funcId$244 = .data:0x00000918; // type:object size:0x4 scope:local data:4byte
|
funcId$244 = .data:0x00000918; // type:object size:0x4 scope:local data:4byte
|
||||||
lbl_1_data_91C = .data:0x0000091C; // type:object size:0x12 data:string
|
lbl_1_data_91C = .data:0x0000091C; // type:object size:0x12 data:string
|
||||||
|
|
@ -181,7 +181,7 @@ lbl_1_data_B01 = .data:0x00000B01; // type:object size:0x15 data:string
|
||||||
lbl_1_data_B16 = .data:0x00000B16; // type:object size:0x15 data:string
|
lbl_1_data_B16 = .data:0x00000B16; // type:object size:0x15 data:string
|
||||||
lbl_1_data_B2B = .data:0x00000B2B; // type:object size:0x14 data:string
|
lbl_1_data_B2B = .data:0x00000B2B; // type:object size:0x14 data:string
|
||||||
lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x2 data:2byte
|
lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x2 data:2byte
|
||||||
sound3DCursorPos = .bss:0x00000002; // type:object size:0x2 scope:local data:2byte
|
smSound3DPos = .bss:0x00000002; // type:object size:0x2 scope:local data:2byte
|
||||||
emiCompVal = .bss:0x00000004; // type:object size:0x2 scope:local data:2byte
|
emiCompVal = .bss:0x00000004; // type:object size:0x2 scope:local data:2byte
|
||||||
emiCompDataNo = .bss:0x00000006; // type:object size:0x2 scope:local data:2byte
|
emiCompDataNo = .bss:0x00000006; // type:object size:0x2 scope:local data:2byte
|
||||||
playerCfgOptionPos = .bss:0x00000008; // type:object size:0x2 scope:local data:2byte
|
playerCfgOptionPos = .bss:0x00000008; // type:object size:0x2 scope:local data:2byte
|
||||||
|
|
@ -190,12 +190,12 @@ playerCfgSelF = .bss:0x0000000C; // type:object size:0x2 scope:local data:2byte
|
||||||
charSelProhibitF = .bss:0x0000000E; // type:object size:0x10 scope:local
|
charSelProhibitF = .bss:0x0000000E; // type:object size:0x10 scope:local
|
||||||
playerDoneF = .bss:0x0000001E; // type:object size:0x8 scope:local
|
playerDoneF = .bss:0x0000001E; // type:object size:0x8 scope:local
|
||||||
charModelID = .bss:0x00000026; // type:object size:0x10 scope:local
|
charModelID = .bss:0x00000026; // type:object size:0x10 scope:local
|
||||||
btnReleaseAll = .bss:0x00000036; // type:object size:0x8 scope:local
|
keyDStkAllDown = .bss:0x00000036; // type:object size:0x8 scope:local
|
||||||
btnAll = .bss:0x0000003E; // type:object size:0x8 scope:local
|
keyDStkAll = .bss:0x0000003E; // type:object size:0x8 scope:local
|
||||||
btnDownAll = .bss:0x00000046; // type:object size:0x8 scope:local
|
btnDownAll = .bss:0x00000046; // type:object size:0x8 scope:local
|
||||||
btnReleaseCurr = .bss:0x0000004E; // type:object size:0x2 scope:local data:2byte
|
keyDStkDown = .bss:0x0000004E; // type:object size:0x2 scope:local data:2byte
|
||||||
btnCurr = .bss:0x00000050; // type:object size:0x2 scope:local data:2byte
|
keyDStk = .bss:0x00000050; // type:object size:0x2 scope:local data:2byte
|
||||||
btnDownCurr = .bss:0x00000052; // type:object size:0x2 scope:local data:2byte
|
btnDown = .bss:0x00000052; // type:object size:0x2 scope:local data:2byte
|
||||||
smSelectPos = .bss:0x00000054; // type:object size:0x2 scope:local data:2byte
|
smSelectPos = .bss:0x00000054; // type:object size:0x2 scope:local data:2byte
|
||||||
smPlayerCfg = .bss:0x00000056; // type:object size:0x28 scope:local data:2byte
|
smPlayerCfg = .bss:0x00000056; // type:object size:0x28 scope:local data:2byte
|
||||||
outViewObj = .bss:0x00000080; // type:object size:0x4 scope:local data:4byte
|
outViewObj = .bss:0x00000080; // type:object size:0x4 scope:local data:4byte
|
||||||
|
|
|
||||||
|
|
@ -56,6 +56,12 @@ s32 HuAudCharVoicePlay(s16 arg0, s16 arg1);
|
||||||
s32 HuAudCharVoicePlayPos(s16 arg0, s16 arg1, Vec *arg2);
|
s32 HuAudCharVoicePlayPos(s16 arg0, s16 arg1, Vec *arg2);
|
||||||
void HuAudCharVoicePlayEntry(s16 arg0, s16 arg1);
|
void HuAudCharVoicePlayEntry(s16 arg0, s16 arg1);
|
||||||
|
|
||||||
|
extern float Snd3DBackSurDisOffset;
|
||||||
|
extern float Snd3DFrontSurDisOffset;
|
||||||
|
extern float Snd3DStartDisOffset;
|
||||||
|
extern float Snd3DSpeedOffset;
|
||||||
|
extern float Snd3DDistOffset;
|
||||||
|
extern s32 musicOffF;
|
||||||
extern u8 fadeStat;
|
extern u8 fadeStat;
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
||||||
|
|
@ -11,9 +11,14 @@
|
||||||
#include "game/data.h"
|
#include "game/data.h"
|
||||||
#include "game/board/main.h"
|
#include "game/board/main.h"
|
||||||
#include "game/armem.h"
|
#include "game/armem.h"
|
||||||
|
#include "game/audio.h"
|
||||||
|
|
||||||
#include "rel_sqrt_consts.h"
|
#include "rel_sqrt_consts.h"
|
||||||
|
|
||||||
|
//MSM Definitions
|
||||||
|
static s8 *msmSeGetIndexPtr(s16 datano);
|
||||||
|
static void msmMusSetMasterVolume(s32 value);
|
||||||
|
|
||||||
#define SM_PAGE_MAX 7
|
#define SM_PAGE_MAX 7
|
||||||
#define SM_PAGE_SIZE 10
|
#define SM_PAGE_SIZE 10
|
||||||
|
|
||||||
|
|
@ -22,7 +27,7 @@
|
||||||
#define SM_KEY_UP 0x0001
|
#define SM_KEY_UP 0x0001
|
||||||
#define SM_KEY_DOWN 0x0002
|
#define SM_KEY_DOWN 0x0002
|
||||||
|
|
||||||
static char *charTbl[] = {
|
static char *smCharTbl[] = {
|
||||||
"Mario",
|
"Mario",
|
||||||
"Luigi",
|
"Luigi",
|
||||||
"Peach",
|
"Peach",
|
||||||
|
|
@ -39,7 +44,7 @@ typedef struct sm_entry {
|
||||||
OverlayID overlay;
|
OverlayID overlay;
|
||||||
} SMEntry;
|
} SMEntry;
|
||||||
|
|
||||||
static SMEntry menuTbl[SM_PAGE_MAX*SM_PAGE_SIZE] = {
|
static SMEntry smMenuTbl[SM_PAGE_MAX*SM_PAGE_SIZE] = {
|
||||||
{ 1, "401:WAKUGURI DIVING", OVL_M401 },
|
{ 1, "401:WAKUGURI DIVING", OVL_M401 },
|
||||||
{ 1, "402:PURURUN! BIGSLIME", OVL_M402 },
|
{ 1, "402:PURURUN! BIGSLIME", OVL_M402 },
|
||||||
{ 1, "403:TAORERUKABE!", OVL_M403 },
|
{ 1, "403:TAORERUKABE!", OVL_M403 },
|
||||||
|
|
@ -141,13 +146,13 @@ static omObjData *outViewObj;
|
||||||
static PlayerConfig smPlayerCfg[4];
|
static PlayerConfig smPlayerCfg[4];
|
||||||
static s16 smSelectPos;
|
static s16 smSelectPos;
|
||||||
static s16 smSelectPosExit = -1;
|
static s16 smSelectPosExit = -1;
|
||||||
static u16 btnDownCurr;
|
static u16 btnDown;
|
||||||
static u16 btnCurr;
|
static u16 keyDStk;
|
||||||
static u16 btnReleaseCurr;
|
static u16 keyDStkDown;
|
||||||
static u16 btnDownAll[4];
|
static u16 btnDownAll[4];
|
||||||
static u16 btnAll[4];
|
static u16 keyDStkAll[4];
|
||||||
static u16 btnReleaseAll[4];
|
static u16 keyDStkAllDown[4];
|
||||||
static u16 btnPrevAll[4] = {};
|
static u16 keyDStkAllPrev[4] = {};
|
||||||
|
|
||||||
static void SMInit(omObjData *object);
|
static void SMInit(omObjData *object);
|
||||||
static void SMRand8Tick(omObjData *object);
|
static void SMRand8Tick(omObjData *object);
|
||||||
|
|
@ -214,27 +219,27 @@ static void CopyPlayerCfg(PlayerConfig *dst, PlayerConfig *src)
|
||||||
static void CalcBtns(void)
|
static void CalcBtns(void)
|
||||||
{
|
{
|
||||||
s32 i;
|
s32 i;
|
||||||
btnCurr = btnReleaseCurr = btnDownCurr = 0;
|
keyDStk = keyDStkDown = btnDown = 0;
|
||||||
for(i=0; i<4; i++) {
|
for(i=0; i<4; i++) {
|
||||||
btnAll[i] = btnReleaseAll[i] = btnDownAll[i] = 0;
|
keyDStkAll[i] = keyDStkAllDown[i] = btnDownAll[i] = 0;
|
||||||
if((HuPadDStkRep[i]|HuPadBtn[i]) & PAD_BUTTON_LEFT) {
|
if((HuPadDStkRep[i]|HuPadBtn[i]) & PAD_BUTTON_LEFT) {
|
||||||
btnAll[i] |= SM_KEY_LEFT;
|
keyDStkAll[i] |= SM_KEY_LEFT;
|
||||||
}
|
}
|
||||||
if((HuPadDStkRep[i]|HuPadBtn[i]) & PAD_BUTTON_RIGHT) {
|
if((HuPadDStkRep[i]|HuPadBtn[i]) & PAD_BUTTON_RIGHT) {
|
||||||
btnAll[i] |= SM_KEY_RIGHT;
|
keyDStkAll[i] |= SM_KEY_RIGHT;
|
||||||
}
|
}
|
||||||
if((HuPadDStkRep[i]|HuPadBtn[i]) & PAD_BUTTON_UP) {
|
if((HuPadDStkRep[i]|HuPadBtn[i]) & PAD_BUTTON_UP) {
|
||||||
btnAll[i] |= SM_KEY_UP;
|
keyDStkAll[i] |= SM_KEY_UP;
|
||||||
}
|
}
|
||||||
if((HuPadDStkRep[i]|HuPadBtn[i]) & PAD_BUTTON_DOWN) {
|
if((HuPadDStkRep[i]|HuPadBtn[i]) & PAD_BUTTON_DOWN) {
|
||||||
btnAll[i] |= SM_KEY_DOWN;
|
keyDStkAll[i] |= SM_KEY_DOWN;
|
||||||
}
|
}
|
||||||
btnDownAll[i] |= HuPadBtnDown[i];
|
btnDownAll[i] |= HuPadBtnDown[i];
|
||||||
btnReleaseAll[i] = (btnAll[i] ^ btnPrevAll[i]) & btnAll[i];
|
keyDStkAllDown[i] = (keyDStkAll[i] ^ keyDStkAllPrev[i]) & keyDStkAll[i];
|
||||||
btnPrevAll[i] = btnAll[i];
|
keyDStkAllPrev[i] = keyDStkAll[i];
|
||||||
btnCurr |= btnAll[i];
|
keyDStk |= keyDStkAll[i];
|
||||||
btnReleaseCurr |= btnReleaseAll[i];
|
keyDStkDown |= keyDStkAllDown[i];
|
||||||
btnDownCurr |= btnDownAll[i];
|
btnDown |= btnDownAll[i];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -245,7 +250,7 @@ static void DrawPage(void)
|
||||||
fontcolor = FONT_COLOR_YELLOW;
|
fontcolor = FONT_COLOR_YELLOW;
|
||||||
print8(200, 160, 2.5f, "PAGE:%d/%d", smPage+1, SM_PAGE_MAX);
|
print8(200, 160, 2.5f, "PAGE:%d/%d", smPage+1, SM_PAGE_MAX);
|
||||||
for(i=0; i<SM_PAGE_SIZE; i++) {
|
for(i=0; i<SM_PAGE_SIZE; i++) {
|
||||||
entry = &menuTbl[(smPage*SM_PAGE_SIZE)+i];
|
entry = &smMenuTbl[(smPage*SM_PAGE_SIZE)+i];
|
||||||
if(entry->enabled == 1) {
|
if(entry->enabled == 1) {
|
||||||
if(i == smSelectPos) {
|
if(i == smSelectPos) {
|
||||||
fontcolor = FONT_COLOR_CYAN;
|
fontcolor = FONT_COLOR_CYAN;
|
||||||
|
|
@ -278,7 +283,7 @@ static void MoveSMPage(s16 amount)
|
||||||
page = SM_PAGE_MAX-1;
|
page = SM_PAGE_MAX-1;
|
||||||
}
|
}
|
||||||
for(i=0; i<SM_PAGE_SIZE; i++) {
|
for(i=0; i<SM_PAGE_SIZE; i++) {
|
||||||
if(menuTbl[(page*SM_PAGE_SIZE)+i].enabled == 1) {
|
if(smMenuTbl[(page*SM_PAGE_SIZE)+i].enabled == 1) {
|
||||||
enabled = 1;
|
enabled = 1;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
@ -306,12 +311,12 @@ static void MoveSMCursor(s16 amount)
|
||||||
} else if(pos < 0) {
|
} else if(pos < 0) {
|
||||||
pos = SM_PAGE_SIZE-1;
|
pos = SM_PAGE_SIZE-1;
|
||||||
}
|
}
|
||||||
} while(!menuTbl[(smPage*SM_PAGE_SIZE)+pos].enabled);
|
} while(!smMenuTbl[(smPage*SM_PAGE_SIZE)+pos].enabled);
|
||||||
smSelectPos = pos;
|
smSelectPos = pos;
|
||||||
(void)pos;
|
(void)pos;
|
||||||
}
|
}
|
||||||
|
|
||||||
static s16 SMComCharGet(s16 player, s16 offset);
|
static s16 SMChangeChar(s16 player, s16 offset);
|
||||||
static void SMUpdate(omObjData *object);
|
static void SMUpdate(omObjData *object);
|
||||||
|
|
||||||
static void SMInit(omObjData *object)
|
static void SMInit(omObjData *object)
|
||||||
|
|
@ -324,14 +329,14 @@ static void SMInit(omObjData *object)
|
||||||
for(i=0; i<4; i++) {
|
for(i=0; i<4; i++) {
|
||||||
for(j=i+1; j<4; j++) {
|
for(j=i+1; j<4; j++) {
|
||||||
if(smPlayerCfg[i].character == smPlayerCfg[j].character) {
|
if(smPlayerCfg[i].character == smPlayerCfg[j].character) {
|
||||||
smPlayerCfg[j].character = SMComCharGet(j, -1);
|
smPlayerCfg[j].character = SMChangeChar(j, -1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
smPage = -1;
|
smPage = -1;
|
||||||
for(i=0; i<SM_PAGE_MAX; i++) {
|
for(i=0; i<SM_PAGE_MAX; i++) {
|
||||||
for(j=0; j<SM_PAGE_SIZE; j++) {
|
for(j=0; j<SM_PAGE_SIZE; j++) {
|
||||||
if(menuTbl[(i*SM_PAGE_SIZE)+j].enabled == 1) {
|
if(smMenuTbl[(i*SM_PAGE_SIZE)+j].enabled == 1) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -344,7 +349,7 @@ static void SMInit(omObjData *object)
|
||||||
MoveSMPage(1);
|
MoveSMPage(1);
|
||||||
if(mgSeqOvlPrev != OVL_INVALID) {
|
if(mgSeqOvlPrev != OVL_INVALID) {
|
||||||
for(i=0; i<SM_PAGE_MAX*SM_PAGE_SIZE; i++) {
|
for(i=0; i<SM_PAGE_MAX*SM_PAGE_SIZE; i++) {
|
||||||
if(mgSeqOvlPrev == menuTbl[i].overlay && menuTbl[i].enabled == 1) {
|
if(mgSeqOvlPrev == smMenuTbl[i].overlay && smMenuTbl[i].enabled == 1) {
|
||||||
smPage = i/SM_PAGE_SIZE;
|
smPage = i/SM_PAGE_SIZE;
|
||||||
smSelectPos = i%SM_PAGE_SIZE;
|
smSelectPos = i%SM_PAGE_SIZE;
|
||||||
smSelectPosBackup[smPage] = smSelectPos;
|
smSelectPosBackup[smPage] = smSelectPos;
|
||||||
|
|
@ -364,39 +369,39 @@ static void SMUpdate(omObjData *object)
|
||||||
{
|
{
|
||||||
CalcBtns();
|
CalcBtns();
|
||||||
DrawPage();
|
DrawPage();
|
||||||
if(btnReleaseCurr & SM_KEY_UP) {
|
if(keyDStkDown & SM_KEY_UP) {
|
||||||
MoveSMCursor(-1);
|
MoveSMCursor(-1);
|
||||||
SMGroupGen((smPage*SM_PAGE_SIZE)+smSelectPos);
|
SMGroupGen((smPage*SM_PAGE_SIZE)+smSelectPos);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if(btnReleaseCurr & SM_KEY_DOWN) {
|
if(keyDStkDown & SM_KEY_DOWN) {
|
||||||
MoveSMCursor(1);
|
MoveSMCursor(1);
|
||||||
SMGroupGen((smPage*SM_PAGE_SIZE)+smSelectPos);
|
SMGroupGen((smPage*SM_PAGE_SIZE)+smSelectPos);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if(btnReleaseCurr & SM_KEY_LEFT) {
|
if(keyDStkDown & SM_KEY_LEFT) {
|
||||||
MoveSMPage(-1);
|
MoveSMPage(-1);
|
||||||
SMGroupGen((smPage*SM_PAGE_SIZE)+smSelectPos);
|
SMGroupGen((smPage*SM_PAGE_SIZE)+smSelectPos);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if(btnReleaseCurr & SM_KEY_RIGHT) {
|
if(keyDStkDown & SM_KEY_RIGHT) {
|
||||||
MoveSMPage(1);
|
MoveSMPage(1);
|
||||||
SMGroupGen((smPage*SM_PAGE_SIZE)+smSelectPos);
|
SMGroupGen((smPage*SM_PAGE_SIZE)+smSelectPos);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if((btnDownCurr & PAD_BUTTON_A) || (btnDownCurr & PAD_BUTTON_START)) {
|
if((btnDown & PAD_BUTTON_A) || (btnDown & PAD_BUTTON_START)) {
|
||||||
object->func = SMCharInit;
|
object->func = SMCharInit;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if(btnDownCurr & PAD_BUTTON_Y) {
|
if(btnDown & PAD_BUTTON_Y) {
|
||||||
object->func = SMPlayerCfgInit;
|
object->func = SMPlayerCfgInit;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if(btnDownCurr & PAD_TRIGGER_Z) {
|
if(btnDown & PAD_TRIGGER_Z) {
|
||||||
object->func = SMSound3DInit;
|
object->func = SMSound3DInit;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if(btnDownCurr & PAD_BUTTON_X) {
|
if(btnDown & PAD_BUTTON_X) {
|
||||||
omOvlReturnEx(0, 1);
|
omOvlReturnEx(0, 1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -405,7 +410,7 @@ static void SMGroupGen(s32 index)
|
||||||
{
|
{
|
||||||
OverlayID overlay;
|
OverlayID overlay;
|
||||||
s32 i;
|
s32 i;
|
||||||
overlay = menuTbl[index].overlay;
|
overlay = smMenuTbl[index].overlay;
|
||||||
for(i=0; i<50; i++) {
|
for(i=0; i<50; i++) {
|
||||||
if(overlay == mgInfoTbl[i].ovl) {
|
if(overlay == mgInfoTbl[i].ovl) {
|
||||||
break;
|
break;
|
||||||
|
|
@ -494,7 +499,7 @@ static s32 charMdlMotTbl[] = {
|
||||||
DATA_MAKE_NUM(DATADIR_SELMENU, 15),
|
DATA_MAKE_NUM(DATADIR_SELMENU, 15),
|
||||||
};
|
};
|
||||||
|
|
||||||
static s16 SMComCharGet(s16 player, s16 offset)
|
static s16 SMChangeChar(s16 player, s16 offset)
|
||||||
{
|
{
|
||||||
s32 i;
|
s32 i;
|
||||||
s16 character;
|
s16 character;
|
||||||
|
|
@ -568,7 +573,7 @@ static void SMCharInit(omObjData *object)
|
||||||
for(i=0; i<4; i++) {
|
for(i=0; i<4; i++) {
|
||||||
playerDoneF[i] = 0;
|
playerDoneF[i] = 0;
|
||||||
}
|
}
|
||||||
SMComCharGet(0, 0);
|
SMChangeChar(0, 0);
|
||||||
object->func = SMCharUpdate;
|
object->func = SMCharUpdate;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -602,7 +607,7 @@ static void SMCharUpdate(omObjData *object)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(done_players == num_players) {
|
if(done_players == num_players) {
|
||||||
SMComCharGet(0, 0);
|
SMChangeChar(0, 0);
|
||||||
CharRandomize();
|
CharRandomize();
|
||||||
CopyPlayerCfg(GWPlayerCfg, smPlayerCfg);
|
CopyPlayerCfg(GWPlayerCfg, smPlayerCfg);
|
||||||
CharKill(-1);
|
CharKill(-1);
|
||||||
|
|
@ -629,11 +634,11 @@ static void SMCharUpdate(omObjData *object)
|
||||||
for(i=0; i<4; i++) {
|
for(i=0; i<4; i++) {
|
||||||
port = smPlayerCfg[i].pad_idx;
|
port = smPlayerCfg[i].pad_idx;
|
||||||
if(!playerDoneF[i]) {
|
if(!playerDoneF[i]) {
|
||||||
if(btnReleaseAll[port] & SM_KEY_LEFT) {
|
if(keyDStkAllDown[port] & SM_KEY_LEFT) {
|
||||||
smPlayerCfg[port].character = SMComCharGet(i, -1);
|
smPlayerCfg[port].character = SMChangeChar(i, -1);
|
||||||
}
|
}
|
||||||
if(btnReleaseAll[port] & SM_KEY_RIGHT) {
|
if(keyDStkAllDown[port] & SM_KEY_RIGHT) {
|
||||||
smPlayerCfg[port].character = SMComCharGet(i, 1);
|
smPlayerCfg[port].character = SMChangeChar(i, 1);
|
||||||
}
|
}
|
||||||
if(btnDownAll[port] & PAD_BUTTON_A) {
|
if(btnDownAll[port] & PAD_BUTTON_A) {
|
||||||
playerDoneF[i] = 1;
|
playerDoneF[i] = 1;
|
||||||
|
|
@ -657,16 +662,16 @@ static void SMCharUpdate(omObjData *object)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if(!smPlayerCfg[i].iscom) {
|
if(!smPlayerCfg[i].iscom) {
|
||||||
w = strlen(charTbl[smPlayerCfg[i].character]);
|
w = strlen(smCharTbl[smPlayerCfg[i].character]);
|
||||||
w *= 16;
|
w *= 16;
|
||||||
x = ((320-w)/2)+((i%2)*320);
|
x = ((320-w)/2)+((i%2)*320);
|
||||||
y = 176+((i/2)*240);
|
y = 176+((i/2)*240);
|
||||||
if(playerDoneF[i] == 1) {
|
if(playerDoneF[i] == 1) {
|
||||||
fontcolor = FONT_COLOR_WHITE;
|
fontcolor = FONT_COLOR_WHITE;
|
||||||
print8(x, y, 2.0f, "\xFD\x08""%s", charTbl[smPlayerCfg[i].character]);
|
print8(x, y, 2.0f, "\xFD\x08""%s", smCharTbl[smPlayerCfg[i].character]);
|
||||||
} else {
|
} else {
|
||||||
fontcolor = FONT_COLOR_GREEN;
|
fontcolor = FONT_COLOR_GREEN;
|
||||||
print8(x, y, 2.0f, "\xFD\x05""%s", charTbl[smPlayerCfg[i].character]);
|
print8(x, y, 2.0f, "\xFD\x05""%s", smCharTbl[smPlayerCfg[i].character]);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
w = 72;
|
w = 72;
|
||||||
|
|
@ -685,26 +690,26 @@ static void SMExit(omObjData *object)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
while(HuARDMACheck());
|
while(HuARDMACheck());
|
||||||
mg = omMgIndexGet(menuTbl[(smPage*SM_PAGE_SIZE)+smSelectPos].overlay);
|
mg = omMgIndexGet(smMenuTbl[(smPage*SM_PAGE_SIZE)+smSelectPos].overlay);
|
||||||
GWSystem.mg_next = mg;
|
GWSystem.mg_next = mg;
|
||||||
OSReport("mgNo=%d\n", mg);
|
OSReport("mgNo=%d\n", mg);
|
||||||
if(menuTbl[(smPage*SM_PAGE_SIZE)+smSelectPos].overlay == OVL_W10) {
|
if(smMenuTbl[(smPage*SM_PAGE_SIZE)+smSelectPos].overlay == OVL_W10) {
|
||||||
_SetFlag(0x1000B);
|
_SetFlag(0x1000B);
|
||||||
} else if(menuTbl[(smPage*SM_PAGE_SIZE)+smSelectPos].overlay == OVL_W20) {
|
} else if(smMenuTbl[(smPage*SM_PAGE_SIZE)+smSelectPos].overlay == OVL_W20) {
|
||||||
BoardSaveInit(7);
|
BoardSaveInit(7);
|
||||||
BoardPartyConfigSet(0, 0, 0, 20, 0, 0, 0, 0);
|
BoardPartyConfigSet(0, 0, 0, 20, 0, 0, 0, 0);
|
||||||
} else if(menuTbl[(smPage*SM_PAGE_SIZE)+smSelectPos].overlay == OVL_W21) {
|
} else if(smMenuTbl[(smPage*SM_PAGE_SIZE)+smSelectPos].overlay == OVL_W21) {
|
||||||
BoardSaveInit(8);
|
BoardSaveInit(8);
|
||||||
BoardPartyConfigSet(0, 0, 0, 20, 0, 0, 0, 0);
|
BoardPartyConfigSet(0, 0, 0, 20, 0, 0, 0, 0);
|
||||||
} else {
|
} else {
|
||||||
_ClearFlag(0x1000B);
|
_ClearFlag(0x1000B);
|
||||||
}
|
}
|
||||||
if(mg == -1 || !(HuPadBtn[0] & PAD_TRIGGER_Z) || mgInfoTbl[mg].type == 5 || mgInfoTbl[mg].type == 3 || mgInfoTbl[mg].type == 6) {
|
if(mg == -1 || !(HuPadBtn[0] & PAD_TRIGGER_Z) || mgInfoTbl[mg].type == 5 || mgInfoTbl[mg].type == 3 || mgInfoTbl[mg].type == 6) {
|
||||||
omOvlCallEx(menuTbl[(smPage*SM_PAGE_SIZE)+smSelectPos].overlay, 1, 0, 0);
|
omOvlCallEx(smMenuTbl[(smPage*SM_PAGE_SIZE)+smSelectPos].overlay, 1, 0, 0);
|
||||||
} else {
|
} else {
|
||||||
omOvlCallEx(OVL_INST, 1, 0, 0);
|
omOvlCallEx(OVL_INST, 1, 0, 0);
|
||||||
}
|
}
|
||||||
mgSeqOvlPrev = menuTbl[(smPage*SM_PAGE_SIZE)+smSelectPos].overlay;
|
mgSeqOvlPrev = smMenuTbl[(smPage*SM_PAGE_SIZE)+smSelectPos].overlay;
|
||||||
smSelectPosExit = smSelectPos;
|
smSelectPosExit = smSelectPos;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -720,10 +725,10 @@ static s16 playerCfgSelF;
|
||||||
static s16 playerCfgPlayerPos;
|
static s16 playerCfgPlayerPos;
|
||||||
static s16 playerCfgOptionPos;
|
static s16 playerCfgOptionPos;
|
||||||
|
|
||||||
#define APPLY_PLAYERCFG_HILITE(option) \
|
#define DO_HILITE(pos) \
|
||||||
do { \
|
do { \
|
||||||
s32 color; \
|
s32 color; \
|
||||||
if(playerCfgOptionPos == option) { \
|
if(playerCfgOptionPos == pos) { \
|
||||||
color = FONT_COLOR_CYAN; \
|
color = FONT_COLOR_CYAN; \
|
||||||
fontcolor = color; \
|
fontcolor = color; \
|
||||||
} else { \
|
} else { \
|
||||||
|
|
@ -766,13 +771,13 @@ static void SMPlayerCfgDraw(void)
|
||||||
print8(((i%2)*320)+64, ((i/2)*240)+112, 2.0f, padCfgStrTbl[3], smPlayerCfg[i].group);
|
print8(((i%2)*320)+64, ((i/2)*240)+112, 2.0f, padCfgStrTbl[3], smPlayerCfg[i].group);
|
||||||
print8(((i%2)*320)+64, ((i/2)*240)+128, 2.0f, padCfgStrTbl[4], diffStr[smPlayerCfg[i].diff]);
|
print8(((i%2)*320)+64, ((i/2)*240)+128, 2.0f, padCfgStrTbl[4], diffStr[smPlayerCfg[i].diff]);
|
||||||
} else if(playerCfgSelF == 1 && playerCfgPlayerPos == i) {
|
} else if(playerCfgSelF == 1 && playerCfgPlayerPos == i) {
|
||||||
APPLY_PLAYERCFG_HILITE(0);
|
DO_HILITE(0);
|
||||||
print8(((i%2)*320)+64, ((i/2)*240)+80, 2.0f, padCfgStrTbl[1], smPlayerCfg[i].pad_idx, comStr[smPlayerCfg[i].iscom]);
|
print8(((i%2)*320)+64, ((i/2)*240)+80, 2.0f, padCfgStrTbl[1], smPlayerCfg[i].pad_idx, comStr[smPlayerCfg[i].iscom]);
|
||||||
APPLY_PLAYERCFG_HILITE(1);
|
DO_HILITE(1);
|
||||||
print8(((i%2)*320)+64, ((i/2)*240)+96, 2.0f, padCfgStrTbl[2], smPlayerCfg[i].pad_idx);
|
print8(((i%2)*320)+64, ((i/2)*240)+96, 2.0f, padCfgStrTbl[2], smPlayerCfg[i].pad_idx);
|
||||||
APPLY_PLAYERCFG_HILITE(2);
|
DO_HILITE(2);
|
||||||
print8(((i%2)*320)+64, ((i/2)*240)+112, 2.0f, padCfgStrTbl[3], smPlayerCfg[i].group);
|
print8(((i%2)*320)+64, ((i/2)*240)+112, 2.0f, padCfgStrTbl[3], smPlayerCfg[i].group);
|
||||||
APPLY_PLAYERCFG_HILITE(3);
|
DO_HILITE(3);
|
||||||
print8(((i%2)*320)+64, ((i/2)*240)+128, 2.0f, padCfgStrTbl[4], diffStr[smPlayerCfg[i].diff]);
|
print8(((i%2)*320)+64, ((i/2)*240)+128, 2.0f, padCfgStrTbl[4], diffStr[smPlayerCfg[i].diff]);
|
||||||
} else {
|
} else {
|
||||||
fontcolor = FONT_COLOR_DARK_GREEN;
|
fontcolor = FONT_COLOR_DARK_GREEN;
|
||||||
|
|
@ -784,6 +789,7 @@ static void SMPlayerCfgDraw(void)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#undef DO_HILITE
|
||||||
static void SMPlayerCfgUpdate(omObjData *object);
|
static void SMPlayerCfgUpdate(omObjData *object);
|
||||||
|
|
||||||
static void SMPlayerCfgInit(omObjData *object)
|
static void SMPlayerCfgInit(omObjData *object)
|
||||||
|
|
@ -800,39 +806,39 @@ static void SMPlayerCfgUpdate(omObjData *object)
|
||||||
SMPlayerCfgDraw();
|
SMPlayerCfgDraw();
|
||||||
CalcBtns();
|
CalcBtns();
|
||||||
if(!playerCfgSelF) {
|
if(!playerCfgSelF) {
|
||||||
if(btnReleaseCurr & SM_KEY_LEFT) {
|
if(keyDStkDown & SM_KEY_LEFT) {
|
||||||
offset = ((playerCfgPlayerPos & 0x1)-1) & 0x1;
|
offset = ((playerCfgPlayerPos & 0x1)-1) & 0x1;
|
||||||
playerCfgPlayerPos = (playerCfgPlayerPos & 0xFFFE)+offset;
|
playerCfgPlayerPos = (playerCfgPlayerPos & 0xFFFE)+offset;
|
||||||
} else {
|
} else {
|
||||||
if(btnReleaseCurr & SM_KEY_RIGHT) {
|
if(keyDStkDown & SM_KEY_RIGHT) {
|
||||||
offset = ((playerCfgPlayerPos & 0x1)+1) & 0x1;
|
offset = ((playerCfgPlayerPos & 0x1)+1) & 0x1;
|
||||||
playerCfgPlayerPos = (playerCfgPlayerPos & 0xFFFE)+offset;
|
playerCfgPlayerPos = (playerCfgPlayerPos & 0xFFFE)+offset;
|
||||||
} else if(btnReleaseCurr & SM_KEY_DOWN) {
|
} else if(keyDStkDown & SM_KEY_DOWN) {
|
||||||
if((playerCfgPlayerPos += 2) >= 4) {
|
if((playerCfgPlayerPos += 2) >= 4) {
|
||||||
playerCfgPlayerPos -= 4;
|
playerCfgPlayerPos -= 4;
|
||||||
}
|
}
|
||||||
} else if(btnReleaseCurr & SM_KEY_UP) {
|
} else if(keyDStkDown & SM_KEY_UP) {
|
||||||
if((playerCfgPlayerPos -= 2) < 0) {
|
if((playerCfgPlayerPos -= 2) < 0) {
|
||||||
playerCfgPlayerPos += 4;
|
playerCfgPlayerPos += 4;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(btnDownCurr & PAD_BUTTON_A) {
|
if(btnDown & PAD_BUTTON_A) {
|
||||||
playerCfgSelF = 1;
|
playerCfgSelF = 1;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if((btnDownCurr & PAD_BUTTON_B) || (btnDownCurr & PAD_BUTTON_Y)) {
|
if((btnDown & PAD_BUTTON_B) || (btnDown & PAD_BUTTON_Y)) {
|
||||||
object->func = SMUpdate;
|
object->func = SMUpdate;
|
||||||
}
|
}
|
||||||
} else if(btnReleaseCurr & SM_KEY_UP) {
|
} else if(keyDStkDown & SM_KEY_UP) {
|
||||||
if(--playerCfgOptionPos < 0) {
|
if(--playerCfgOptionPos < 0) {
|
||||||
playerCfgOptionPos = 3;
|
playerCfgOptionPos = 3;
|
||||||
}
|
}
|
||||||
} else if(btnReleaseCurr & SM_KEY_DOWN) {
|
} else if(keyDStkDown & SM_KEY_DOWN) {
|
||||||
if(++playerCfgOptionPos > 3) {
|
if(++playerCfgOptionPos > 3) {
|
||||||
playerCfgOptionPos = 0;
|
playerCfgOptionPos = 0;
|
||||||
}
|
}
|
||||||
} else if(btnReleaseCurr & SM_KEY_LEFT) {
|
} else if(keyDStkDown & SM_KEY_LEFT) {
|
||||||
switch(playerCfgOptionPos) {
|
switch(playerCfgOptionPos) {
|
||||||
case 0:
|
case 0:
|
||||||
smPlayerCfg[playerCfgPlayerPos].iscom ^= 1;
|
smPlayerCfg[playerCfgPlayerPos].iscom ^= 1;
|
||||||
|
|
@ -856,7 +862,7 @@ static void SMPlayerCfgUpdate(omObjData *object)
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
};
|
};
|
||||||
} else if(btnReleaseCurr & SM_KEY_RIGHT) {
|
} else if(keyDStkDown & SM_KEY_RIGHT) {
|
||||||
switch(playerCfgOptionPos) {
|
switch(playerCfgOptionPos) {
|
||||||
case 0:
|
case 0:
|
||||||
smPlayerCfg[playerCfgPlayerPos].iscom ^= 1;
|
smPlayerCfg[playerCfgPlayerPos].iscom ^= 1;
|
||||||
|
|
@ -880,9 +886,9 @@ static void SMPlayerCfgUpdate(omObjData *object)
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
} else if((btnDownCurr & PAD_BUTTON_A) || (btnDownCurr & PAD_BUTTON_B)) {
|
} else if((btnDown & PAD_BUTTON_A) || (btnDown & PAD_BUTTON_B)) {
|
||||||
playerCfgSelF = 0;
|
playerCfgSelF = 0;
|
||||||
} else if(btnDownCurr & PAD_BUTTON_Y) {
|
} else if(btnDown & PAD_BUTTON_Y) {
|
||||||
object->func = SMUpdate;
|
object->func = SMUpdate;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -895,4 +901,177 @@ static void SMRand8Tick(omObjData *object)
|
||||||
void fn_1_450C(void)
|
void fn_1_450C(void)
|
||||||
{
|
{
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static s16 emiCompDataNo;
|
||||||
|
static s16 emiCompVal;
|
||||||
|
static s16 smSound3DPos;
|
||||||
|
s16 lbl_1_bss_0;
|
||||||
|
|
||||||
|
static void SMSound3DUpdate(omObjData *object);
|
||||||
|
static void SMSound3DDraw(void);
|
||||||
|
|
||||||
|
static void SMSound3DInit(omObjData *object)
|
||||||
|
{
|
||||||
|
s8 *data = msmSeGetIndexPtr(emiCompDataNo);
|
||||||
|
emiCompVal = data[12];
|
||||||
|
object->func = SMSound3DUpdate;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void SMSound3DUpdate(omObjData *object)
|
||||||
|
{
|
||||||
|
float increment;
|
||||||
|
s8 *data;
|
||||||
|
|
||||||
|
CalcBtns();
|
||||||
|
if(keyDStkDown & SM_KEY_UP) {
|
||||||
|
smSound3DPos--;
|
||||||
|
if(smSound3DPos < 0) {
|
||||||
|
smSound3DPos = 7;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(keyDStkDown & SM_KEY_DOWN) {
|
||||||
|
smSound3DPos++;
|
||||||
|
if(smSound3DPos >= 8) {
|
||||||
|
smSound3DPos = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(keyDStkDown & (SM_KEY_LEFT | SM_KEY_RIGHT)) {
|
||||||
|
if(keyDStkDown & SM_KEY_RIGHT) {
|
||||||
|
increment = 10;
|
||||||
|
} else {
|
||||||
|
increment = -10;
|
||||||
|
}
|
||||||
|
if(HuPadBtn[0] & PAD_TRIGGER_Z) {
|
||||||
|
increment *= 10.0f;
|
||||||
|
}
|
||||||
|
switch(smSound3DPos) {
|
||||||
|
case 0:
|
||||||
|
Snd3DDistOffset += increment;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 1:
|
||||||
|
Snd3DSpeedOffset += increment;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 2:
|
||||||
|
Snd3DStartDisOffset += increment;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 3:
|
||||||
|
Snd3DFrontSurDisOffset += increment;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 4:
|
||||||
|
Snd3DBackSurDisOffset += increment;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 5:
|
||||||
|
emiCompDataNo += increment/10.0f;
|
||||||
|
if(emiCompDataNo < 0) {
|
||||||
|
emiCompDataNo = 0;
|
||||||
|
}
|
||||||
|
data = msmSeGetIndexPtr(emiCompDataNo);
|
||||||
|
emiCompVal = data[12];
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 6:
|
||||||
|
emiCompVal += increment/10.0f;
|
||||||
|
if(emiCompVal > 127) {
|
||||||
|
emiCompVal = 127;
|
||||||
|
}
|
||||||
|
if(emiCompVal < -127) {
|
||||||
|
emiCompVal = -127;
|
||||||
|
}
|
||||||
|
data = msmSeGetIndexPtr(emiCompDataNo);
|
||||||
|
data[12] = emiCompVal;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 7:
|
||||||
|
musicOffF = (musicOffF) ? 0 : 1;
|
||||||
|
if(musicOffF) {
|
||||||
|
msmMusSetMasterVolume(0);
|
||||||
|
} else {
|
||||||
|
msmMusSetMasterVolume(127);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(btnDown & PAD_BUTTON_START) {
|
||||||
|
switch(smSound3DPos) {
|
||||||
|
case 0:
|
||||||
|
Snd3DDistOffset = 0;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 1:
|
||||||
|
Snd3DSpeedOffset = 0;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 2:
|
||||||
|
Snd3DStartDisOffset = 0;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 3:
|
||||||
|
Snd3DFrontSurDisOffset = 0;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 4:
|
||||||
|
Snd3DBackSurDisOffset = 0;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 5:
|
||||||
|
emiCompDataNo = 0;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 6:
|
||||||
|
emiCompVal = 0;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 7:
|
||||||
|
musicOffF = 0;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if(btnDown & PAD_BUTTON_B) {
|
||||||
|
object->func = SMUpdate;
|
||||||
|
}
|
||||||
|
SMSound3DDraw();
|
||||||
|
}
|
||||||
|
|
||||||
|
#define DO_HILITE(pos) \
|
||||||
|
do { \
|
||||||
|
if(smSound3DPos == pos) { \
|
||||||
|
fontcolor = FONT_COLOR_GREEN; \
|
||||||
|
} else { \
|
||||||
|
fontcolor = FONT_COLOR_DARK_GREEN; \
|
||||||
|
} \
|
||||||
|
} while(0)
|
||||||
|
|
||||||
|
static void SMSound3DDraw(void)
|
||||||
|
{
|
||||||
|
char *onOffStr[] = {
|
||||||
|
" ON",
|
||||||
|
"OFF"
|
||||||
|
};
|
||||||
|
fontcolor = FONT_COLOR_YELLOW;
|
||||||
|
print8(200, 64, 2.0f, "3DSound Config.");
|
||||||
|
DO_HILITE(0);
|
||||||
|
print8(140, 96, 2.0f, "Max Distance %5.1f", Snd3DDistOffset);
|
||||||
|
DO_HILITE(1);
|
||||||
|
print8(140, 112, 2.0f, "Sound Speed %5.1f", Snd3DSpeedOffset);
|
||||||
|
DO_HILITE(2);
|
||||||
|
print8(140, 128, 2.0f, "Start Distance %5.1f", Snd3DStartDisOffset);
|
||||||
|
DO_HILITE(3);
|
||||||
|
print8(140, 144, 2.0f, "Front Distance %5.1f", Snd3DFrontSurDisOffset);
|
||||||
|
DO_HILITE(4);
|
||||||
|
print8(140, 160, 2.0f, "Back Distance %5.1f", Snd3DBackSurDisOffset);
|
||||||
|
DO_HILITE(5);
|
||||||
|
print8(140, 176, 2.0f, "emiComp DataNo %04d", emiCompDataNo);
|
||||||
|
DO_HILITE(6);
|
||||||
|
print8(140, 192, 2.0f, "emiComp VAL %3d", emiCompVal);
|
||||||
|
DO_HILITE(7);
|
||||||
|
print8(140, 208, 2.0f, "Music %s", onOffStr[(musicOffF) ? 1 : 0]);
|
||||||
|
}
|
||||||
|
|
||||||
|
#undef DO_HILITE
|
||||||
Loading…
Add table
Add a link
Reference in a new issue