commit
552d9c6000
2 changed files with 223 additions and 1 deletions
|
|
@ -1333,7 +1333,7 @@ config.libs = [
|
|||
Object(Matching, "REL/executor.c"),
|
||||
Object(Matching, "REL/mgmodedll/mgmode.c"),
|
||||
Object(Matching, "REL/mgmodedll/free_play.c"),
|
||||
Object(NonMatching, "REL/mgmodedll/record.c"),
|
||||
Object(Matching, "REL/mgmodedll/record.c"),
|
||||
Object(NonMatching, "REL/mgmodedll/battle.c"),
|
||||
Object(NonMatching, "REL/mgmodedll/tictactoe.c"),
|
||||
Object(NonMatching, "REL/mgmodedll/main.c"),
|
||||
|
|
|
|||
222
src/REL/mgmodedll/record.c
Normal file
222
src/REL/mgmodedll/record.c
Normal file
|
|
@ -0,0 +1,222 @@
|
|||
#include "REL/mgmodedll.h"
|
||||
#include "game/gamework.h"
|
||||
|
||||
#include "game/audio.h"
|
||||
#include "game/esprite.h"
|
||||
#include "game/gamework_data.h"
|
||||
#include "game/saveload.h"
|
||||
#include "game/wipe.h"
|
||||
|
||||
#include "ext_math.h"
|
||||
|
||||
void fn_1_DE3C(void);
|
||||
void fn_1_DFB8(void);
|
||||
void fn_1_E02C(float x, float y, s16 recordNo);
|
||||
|
||||
s16 lbl_1_bss_37C[6];
|
||||
s16 lbl_1_bss_370[6];
|
||||
|
||||
s16 lbl_1_data_120[6][3] = {
|
||||
0, 2, 13,
|
||||
1, 0, 15,
|
||||
2, 1, 35,
|
||||
3, 2, 40,
|
||||
5, 1, 51,
|
||||
10, 1, 62
|
||||
};
|
||||
|
||||
void fn_1_D8D0(void)
|
||||
{
|
||||
s16 i;
|
||||
float weight;
|
||||
fn_1_DE3C();
|
||||
espAttrReset(lbl_1_bss_2C2C[3], HUSPR_ATTR_DISPOFF);
|
||||
espTPLvlSet(lbl_1_bss_2C2C[3], 0);
|
||||
for(i=0; i<=20; i++) {
|
||||
espTPLvlSet(lbl_1_bss_2C2C[3], i/20.0);
|
||||
HuPrcVSleep();
|
||||
}
|
||||
for(i=0; i<=20; i++) {
|
||||
weight = i/20.0;
|
||||
espAttrReset(lbl_1_bss_2C2C[27], HUSPR_ATTR_DISPOFF);
|
||||
espPosSet(lbl_1_bss_2C2C[27], 288, -100.0+(164.0*sind(weight*90.0f)));
|
||||
espAttrReset(lbl_1_bss_2C2C[28], HUSPR_ATTR_DISPOFF);
|
||||
espTPLvlSet(lbl_1_bss_2C2C[28], weight);
|
||||
espAttrReset(lbl_1_bss_2C2C[20], HUSPR_ATTR_DISPOFF);
|
||||
espPosSet(lbl_1_bss_2C2C[20], ((1-sind(weight*90.0f))*400)+288, 424);
|
||||
HuPrcVSleep();
|
||||
}
|
||||
for(i=0; i<6; i++) {
|
||||
fn_1_E02C(288, (i*42)+150.0f, i);
|
||||
HuPrcVSleep();
|
||||
}
|
||||
while(1) {
|
||||
if(HuPadBtnDown[0] & PAD_BUTTON_B) {
|
||||
break;
|
||||
}
|
||||
HuPrcVSleep();
|
||||
}
|
||||
HuAudFXPlay(3);
|
||||
for(i=0; i<6; i++) {
|
||||
fn_1_E02C(1288, 0, i);
|
||||
HuPrcVSleep();
|
||||
}
|
||||
fn_1_DFB8();
|
||||
for(i=0; i<=20; i++) {
|
||||
weight = i/20.0;
|
||||
espAttrReset(lbl_1_bss_2C2C[27], HUSPR_ATTR_DISPOFF);
|
||||
espPosSet(lbl_1_bss_2C2C[27], 288, -100.0+(164.0*cosd(weight*90.0f)));
|
||||
espAttrReset(lbl_1_bss_2C2C[28], HUSPR_ATTR_DISPOFF);
|
||||
espTPLvlSet(lbl_1_bss_2C2C[28], 1.0-weight);
|
||||
espAttrReset(lbl_1_bss_2C2C[20], HUSPR_ATTR_DISPOFF);
|
||||
espPosSet(lbl_1_bss_2C2C[20], ((1-cosd(weight*90.0f))*400)+288, 424);
|
||||
HuPrcVSleep();
|
||||
}
|
||||
for(i=0; i<=10; i++) {
|
||||
espTPLvlSet(lbl_1_bss_2C2C[3], 1-(i/10.0));
|
||||
HuPrcVSleep();
|
||||
}
|
||||
}
|
||||
|
||||
void fn_1_DE3C(void)
|
||||
{
|
||||
AnimData *numAnim = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MGMODE, 53), MEMORY_DEFAULT_NUM));
|
||||
s16 i;
|
||||
for(i=0; i<6; i++) {
|
||||
s16 window = HuWinCreate(0, (i*24), 268, 32, 0);
|
||||
s16 j;
|
||||
lbl_1_bss_37C[i] = window;
|
||||
HuWinBGTPLvlSet(window, 0);
|
||||
HuWinMesSpeedSet(window, 0);
|
||||
HuWinDispOff(window);
|
||||
lbl_1_bss_370[i] = HuSprGrpCreate(8);
|
||||
for(j=0; j<8; j++) {
|
||||
s16 sprite = HuSprCreate(numAnim, 10, 0);
|
||||
HuSprGrpMemberSet(lbl_1_bss_370[i], j, sprite);
|
||||
(void)sprite;
|
||||
HuSprAttrSet(lbl_1_bss_370[i], j, HUSPR_ATTR_DISPOFF);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void fn_1_DFB8(void)
|
||||
{
|
||||
s16 i;
|
||||
for(i=0; i<6; i++) {
|
||||
HuWinKill(lbl_1_bss_37C[i]);
|
||||
HuSprGrpKill(lbl_1_bss_370[i]);
|
||||
}
|
||||
}
|
||||
|
||||
void fn_1_E02C(float x, float y, s16 recordNo)
|
||||
{
|
||||
s32 sprGrpId = lbl_1_bss_370[recordNo];
|
||||
s32 value = GWMGRecordGet(lbl_1_data_120[recordNo][0]);
|
||||
s32 i;
|
||||
s16 mgNo;
|
||||
float xOfs;
|
||||
|
||||
if(lbl_1_data_120[recordNo][2] != -1) {
|
||||
mgNo = omMgIndexGet(lbl_1_data_120[recordNo][2]);
|
||||
if(!GWMGAvailGet(mgNo+401)) {
|
||||
mgNo = -1;
|
||||
} else {
|
||||
HuWinMesSet(lbl_1_bss_37C[recordNo], mgInfoTbl[mgNo].name_mess);
|
||||
}
|
||||
} else {
|
||||
mgNo = -1;
|
||||
}
|
||||
HuWinDispOn(lbl_1_bss_37C[recordNo]);
|
||||
HuWinPosSet(lbl_1_bss_37C[recordNo], x-220, y-24);
|
||||
if(mgNo == -1) {
|
||||
HuWinMesSet(lbl_1_bss_37C[recordNo], MAKE_MESSID(35, 0));
|
||||
for(i=0; i<8; i++) {
|
||||
HuSprBankSet(sprGrpId, i, 0);
|
||||
HuSprPosSet(sprGrpId, i, i*16, 0);
|
||||
HuSprAttrReset(sprGrpId, i, HUSPR_ATTR_DISPOFF);
|
||||
}
|
||||
xOfs = 128;
|
||||
} else {
|
||||
s32 memberNum;
|
||||
s32 digitValue;
|
||||
if(lbl_1_data_120[recordNo][1] == 0) {
|
||||
memberNum = 0;
|
||||
if(value > 9999) {
|
||||
value = 9999;
|
||||
}
|
||||
digitValue = value/1000;
|
||||
if(digitValue != 0) {
|
||||
HuSprBankSet(sprGrpId, memberNum, digitValue);
|
||||
value -= digitValue*1000;
|
||||
memberNum++;
|
||||
}
|
||||
digitValue = value/100;
|
||||
if(digitValue != 0 || memberNum != 0) {
|
||||
HuSprBankSet(sprGrpId, memberNum, digitValue);
|
||||
value -= digitValue*100;
|
||||
memberNum++;
|
||||
}
|
||||
digitValue = value/10;
|
||||
if(digitValue != 0 || memberNum != 0) {
|
||||
HuSprBankSet(sprGrpId, memberNum, digitValue);
|
||||
value -= digitValue*10;
|
||||
memberNum++;
|
||||
}
|
||||
HuSprBankSet(sprGrpId, memberNum, value);
|
||||
memberNum++;
|
||||
for(i=0; i<8; i++) {
|
||||
HuSprAttrSet(sprGrpId, i, HUSPR_ATTR_DISPOFF);
|
||||
}
|
||||
for(i=0; i<memberNum; i++) {
|
||||
HuSprPosSet(sprGrpId, i, i*16, 0);
|
||||
HuSprAttrReset(sprGrpId, i, HUSPR_ATTR_DISPOFF);
|
||||
}
|
||||
xOfs = memberNum*16;
|
||||
} else {
|
||||
s16 yOfs[8];
|
||||
for(i=0; i<8; i++) {
|
||||
yOfs[i] = 0;
|
||||
}
|
||||
memberNum = 0;
|
||||
HuSprAttrSet(sprGrpId, memberNum, HUSPR_ATTR_DISPOFF);
|
||||
memberNum++;
|
||||
digitValue = value/3600;
|
||||
HuSprBankSet(sprGrpId, memberNum, digitValue);
|
||||
value -= digitValue*3600;
|
||||
memberNum++;
|
||||
HuSprBankSet(sprGrpId, memberNum, 11);
|
||||
yOfs[memberNum] = -2;
|
||||
memberNum++;
|
||||
digitValue = value/600;
|
||||
HuSprBankSet(sprGrpId, memberNum, digitValue);
|
||||
value -= digitValue*600;
|
||||
memberNum++;
|
||||
digitValue = value/60;
|
||||
HuSprBankSet(sprGrpId, memberNum, digitValue);
|
||||
value -= digitValue*60;
|
||||
memberNum++;
|
||||
HuSprBankSet(sprGrpId, memberNum, 12);
|
||||
yOfs[memberNum] = -2;
|
||||
memberNum++;
|
||||
if(lbl_1_data_120[recordNo][1] == 2) {
|
||||
value = (float)value*(203.0/120.0);
|
||||
} else {
|
||||
value = (float)value*(200.0/120.0);
|
||||
}
|
||||
digitValue = value/10;
|
||||
HuSprBankSet(sprGrpId, memberNum, digitValue);
|
||||
value -= digitValue*10;
|
||||
memberNum++;
|
||||
HuSprBankSet(sprGrpId, memberNum, value);
|
||||
memberNum++;
|
||||
for(i=1; i<8; i++) {
|
||||
HuSprAttrReset(sprGrpId, i, HUSPR_ATTR_DISPOFF);
|
||||
}
|
||||
for(i=0; i<memberNum; i++) {
|
||||
HuSprPosSet(sprGrpId, i, i*16, yOfs[i]);
|
||||
}
|
||||
xOfs = memberNum*16;
|
||||
}
|
||||
}
|
||||
HuSprGrpPosSet(sprGrpId, 8+((210+x)-xOfs), y);
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue