Merge branch 'Rainchus:main' into main
This commit is contained in:
commit
ae57b017e5
20 changed files with 2346 additions and 1571 deletions
40
src/game/frand.c
Normal file
40
src/game/frand.c
Normal file
|
|
@ -0,0 +1,40 @@
|
|||
#include "common.h"
|
||||
|
||||
static u32 frand_seed;
|
||||
|
||||
static inline u32 frandom(void)
|
||||
{
|
||||
u32 rand = frand_seed;
|
||||
s32 rand2, rand3;
|
||||
|
||||
if (rand == 0) {
|
||||
rand = rand8();
|
||||
rand = rand ^ (s64)OSGetTime();
|
||||
rand ^= 0xD826BC89;
|
||||
}
|
||||
|
||||
rand2 = rand / (u32)0x1F31D;
|
||||
rand3 = rand - (rand2 * 0x1F31D);
|
||||
rand = rand2 * 0xB14;
|
||||
rand = rand - rand3 * 0x41A7;
|
||||
return rand;
|
||||
}
|
||||
|
||||
u32 frand(void) {
|
||||
return frand_seed = frandom();
|
||||
}
|
||||
|
||||
f32 frandf(void) {
|
||||
u32 value = frand();
|
||||
f32 ret;
|
||||
value &= 0x7FFFFFFF;
|
||||
ret = (f32)value/2147483648;
|
||||
return ret;
|
||||
}
|
||||
|
||||
u32 frandmod(u32 arg0) {
|
||||
u32 ret;
|
||||
frand_seed = frandom();
|
||||
ret = (frand_seed & 0x7FFFFFFF)%arg0;
|
||||
return ret;
|
||||
}
|
||||
53
src/game/messdata.c
Normal file
53
src/game/messdata.c
Normal file
|
|
@ -0,0 +1,53 @@
|
|||
#include "common.h"
|
||||
|
||||
static void *MessData_MesDataGet(void *messdata, u32 id)
|
||||
{
|
||||
s32 i;
|
||||
s32 max_bank;
|
||||
u16 *banks;
|
||||
u16 bank;
|
||||
s32 *data;
|
||||
bank = id >> 16;
|
||||
data = messdata;
|
||||
max_bank = *data;
|
||||
data++;
|
||||
banks = (u16 *)(((u8 *)messdata)+(*data));
|
||||
for(i=max_bank; i != 0; i--, banks += 2) {
|
||||
if(*banks == bank) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
if(i == 0) {
|
||||
return NULL;
|
||||
} else {
|
||||
data += banks[1];
|
||||
return (((u8 *)messdata)+(*data));
|
||||
}
|
||||
}
|
||||
|
||||
static void *_MessData_MesPtrGet(void *messbank, u32 id)
|
||||
{
|
||||
u16 index;
|
||||
s32 max_index;
|
||||
s32 *data;
|
||||
|
||||
index = id & 0xFFFF;
|
||||
data = messbank;
|
||||
max_index = *data;
|
||||
data++;
|
||||
if(max_index <= index) {
|
||||
return NULL;
|
||||
} else {
|
||||
data = data+index;
|
||||
return (((u8 *)messbank)+(*data));
|
||||
}
|
||||
}
|
||||
|
||||
void *MessData_MesPtrGet(void *messdata, u32 id)
|
||||
{
|
||||
void *bank = MessData_MesDataGet(messdata, id);
|
||||
if(bank) {
|
||||
return _MessData_MesPtrGet(bank, id);
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
|
@ -71,14 +71,14 @@ static void omWatchOverlayProc(void)
|
|||
OSReport("objman>Init esp\n");
|
||||
espInit();
|
||||
OSReport("objman>Call objectsetup\n");
|
||||
fn_800338EC(omnextovl);
|
||||
HuAudVoiceInit(omnextovl);
|
||||
HuAudDllSndGrpSet(omnextovl);
|
||||
omcurovl = omnextovl;
|
||||
omovlevtno = omnextovlevtno;
|
||||
omovlstat = omnextovlstat;
|
||||
omnextovl = OVL_INVALID;
|
||||
if(_CheckFlag(0x1000C)) {
|
||||
fn_8003F3AC();
|
||||
MGSeqPracticeStart();
|
||||
}
|
||||
omSysPauseEnable(TRUE);
|
||||
omcurdll = omDLLStart(omcurovl, 0);
|
||||
|
|
@ -136,7 +136,7 @@ void omOvlReturnEx(s16 level, s16 arg2)
|
|||
void omOvlKill(s16 arg)
|
||||
{
|
||||
fn_8004D6F4(-1);
|
||||
fn_80035A0C();
|
||||
MGSeqKillAll();
|
||||
Hu3DAllKill();
|
||||
HuWinAllKill();
|
||||
HuSprClose();
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue