marioparty4/src/game/messdata.c
gamemasterplc 2a1c4b808d Remove certain common headers
common.h fully removed. common_structs.h incorporated into new game/gamework_data.h header along with parts of variables.h (Other parts were moved to more appropriate headers). functions.h split into unsplit.h and board_unsplit.h
2024-01-06 15:28:47 -06:00

53 lines
No EOL
1 KiB
C

#include "dolphin.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;
}