diff --git a/src/game/bg.c b/src/game/bg.c index def8fee21..8b55c2e74 100644 --- a/src/game/bg.c +++ b/src/game/bg.c @@ -148,6 +148,8 @@ void bg_calculate_screen_properties(void); void bg_expand_room_to_portals(s32 roomnum); void bg_init_portal(s32 portalnum); void bg_init_room(s32 roomnum); +s32 bg_find_portal_by_vertices(struct portalvertices *target); +bool bg_3d_pos_to_2d_pos(struct coord *cornerpos, struct coord *screenpos); void bg_unpause_props_in_room(u32 roomnum, bool tintedglassonly) { diff --git a/src/game/bondgun.c b/src/game/bondgun.c index 16fde5c62..d6e34cb9a 100644 --- a/src/game/bondgun.c +++ b/src/game/bondgun.c @@ -194,6 +194,12 @@ void bgun_auto_switch_weapon(void); void bgun_start_slide(s32 handnum); void bgun_set_aim_pos(struct coord *coord); void bgun0f0abd30(s32 handnum); +bool bgun_is_using_secondary_function(void); +bool bgun_is_ready_to_switch(s32 handnum); +bool bgun_set_state(s32 handnum, s32 state); +bool bgun_is_loaded(void); +s32 bgun_create_model_cmd_list(struct model *model, struct modelnode *nodearg, s32 *ptr); +bool bgun_ammotype_allows_unlimited_ammo(u32 ammotype); void bgun_rumble(s32 handnum, s32 weaponnum) { diff --git a/src/game/bot.c b/src/game/bot.c index a8b1733a7..1f873009c 100644 --- a/src/game/bot.c +++ b/src/game/bot.c @@ -96,6 +96,10 @@ struct botdifficulty g_BotDifficulties[] = { { 0 }, }; +s32 bot_get_num_teammates_defending_hill(struct chrdata *bot); +s32 bot_get_num_opponents_in_hill(struct chrdata *chr); +bool bot_should_return_ctc_token(struct chrdata *chr); + bool bot_is_dizzy(struct chrdata *chr) { return chr->blurdrugamount >= g_BotDifficulties[chr->aibot->config->difficulty].dizzyamount; diff --git a/src/game/camdraw.c b/src/game/camdraw.c index ebe342454..f25dda71a 100644 --- a/src/game/camdraw.c +++ b/src/game/camdraw.c @@ -377,8 +377,10 @@ void func0f14e7e0(u8 *arg0); void func0f14e884(struct textureconfig *tconfig, s32 numrows, s32 arg2, u64 arg3); void func0f14ecd8(s32 *arg0, s32 *arg1, s32 *arg2, s32 *arg3); void func0f14eeb0(f32 arg0[7]); -void phead_get_unk3d0(f32 *arg0); +void phead_get_unk3d0(f32 arg0[7]); void editor_make_texture_type5(struct perfecthead *arg0); +s32 camdraw_get_editor_index(void); +s32 editor_get_num_valid_images(s32 index); /** * Fill the texture buffer with a linear gradient: black (left) to white (right). diff --git a/src/game/filemgr.c b/src/game/filemgr.c index d9e7abdb9..9a4ec2b58 100644 --- a/src/game/filemgr.c +++ b/src/game/filemgr.c @@ -63,6 +63,7 @@ struct menudialogdef g_FilemgrRenameMenuDialog; void filemgr_retry_save(s32 context); void filemgr_push_delete_file_dialog(s32 listnum); +bool filemgr_attempt_operation(s32 device, bool closeonsuccess); #if PAL MenuItemHandlerResult filemgr_handle_set_language(s32 operation, struct menuitem *item, union handlerdata *data) diff --git a/src/game/mplayer/mplayer.c b/src/game/mplayer/mplayer.c index 89cda195b..43d9919f3 100644 --- a/src/game/mplayer/mplayer.c +++ b/src/game/mplayer/mplayer.c @@ -100,6 +100,8 @@ struct mpweapon g_MpWeapons[NUM_MPWEAPONS] = { }; void mp_calculate_player_title(struct mpplayerconfig *mpplayer); +s32 mp_choose_random_lock_player(void); +s32 mp_get_chr_index_by_slot_num(s32 slot); /** * Converts the given value into a float on a curved scale from 0.1 to 10. diff --git a/src/game/music.c b/src/game/music.c index 3eae2b486..4155d65c5 100644 --- a/src/game/music.c +++ b/src/game/music.c @@ -83,6 +83,7 @@ const char var7f1b7918[] = "MUSIC : activedeath=%d\n"; void music_save_interval(void); void music_restore_interval(void); +bool music_is_any_player_in_ambient_room(void); u16 music_get_volume(void) { diff --git a/src/game/propobj.c b/src/game/propobj.c index d802d970f..551995992 100644 --- a/src/game/propobj.c +++ b/src/game/propobj.c @@ -152,6 +152,11 @@ void door_play_opened_sound(s32 soundtype, struct prop *prop); bool door_test_interact_angle(struct doorobj *door, bool altcoordsystem); void doors_calc_frac(struct doorobj *door); void gas_release_from_pos(struct coord *pos); +s32 door_is_closed(struct doorobj *door); +bool func0f0849dc(struct model *model, struct modelnode *nodearg, struct coord *arg2, struct coord *arg3, struct hitthing *hitthing, s32 *dstmtxindex, struct modelnode **dstnode); +bool door_is_range_empty(struct doorobj *door); +s32 door_is_open(struct doorobj *door); +bool pos_is_in_front_of_door(struct coord *pos, struct doorobj *door); /** * Attempt to call a lift from the given door. diff --git a/src/game/texdecompress.c b/src/game/texdecompress.c index 173055be7..53d15c1c6 100644 --- a/src/game/texdecompress.c +++ b/src/game/texdecompress.c @@ -116,6 +116,16 @@ void tex_inflate_rle(u8 *dst, s32 blockstotal); void tex_read_alpha_bits(u8 *dst, s32 count); void tex_swizzle(u8 *dst, s32 width, s32 height, s32 format); void tex_blur(u8 *pixels, s32 width, s32 height, s32 method, s32 chansize); +s32 tex_align_indices(u8 *src, s32 width, s32 height, s32 format, u8 *dst); +s32 tex_shrink_paletted(u8 *src, u8 *dst, s32 srcwidth, s32 srcheight, s32 format, u16 *palette, s32 numcolours); +s32 tex_find_closest_colour_index_r_g_b_a(u8 *palette, s32 numcolours, s32 r, s32 g, s32 b, s32 a); +s32 tex_find_closest_colour_index_i_a(u16 *palette, s32 numcolours, s32 intensity, s32 alpha); +s32 tex_read_uncompressed(u8 *dst, s32 width, s32 height, s32 format); +s32 tex_channels_to_pixels(u8 *src, s32 width, s32 height, u8 *dst, s32 format); +s32 tex_build_lookup(u8 *lookup, s32 bitsperpixel); +s32 tex_inflate_lookup(s32 width, s32 height, u8 *dst, u8 *lookup, s32 numcolours, s32 format); +s32 tex_shrink_non_paletted(u8 *src, u8 *dst, s32 srcwidth, s32 srcheight, s32 format); +s32 tex_inflate_lookup_from_buffer(u8 *src, s32 width, s32 height, u8 *dst, u8 *lookup, s32 numcolours, s32 format); void func0f16e810(u32 arg0) { diff --git a/src/lib/boot.c b/src/lib/boot.c index eb61310c0..53bf5c9c5 100644 --- a/src/lib/boot.c +++ b/src/lib/boot.c @@ -259,9 +259,9 @@ void boot_create_sched_thread(void) osCreateMesgQueue(&g_MainMesgQueue, g_MainMesgBuf, ARRAYCOUNT(g_MainMesgBuf)); if (osTvType == OS_TV_MPAL) { - os_create_scheduler(&g_Sched, &g_SchedThread, OS_VI_MPAL_LAN1, 1); + osCreateScheduler(&g_Sched, &g_SchedThread, OS_VI_MPAL_LAN1, 1); } else { - os_create_scheduler(&g_Sched, &g_SchedThread, OS_VI_NTSC_LAN1, 1); + osCreateScheduler(&g_Sched, &g_SchedThread, OS_VI_NTSC_LAN1, 1); } osScAddClient(&g_Sched, &g_MainSchedClient, &g_MainMesgQueue, false); diff --git a/src/lib/sched.c b/src/lib/sched.c index a594d8a3b..a0f3d04c0 100644 --- a/src/lib/sched.c +++ b/src/lib/sched.c @@ -140,7 +140,7 @@ void sched_init_crash_last_rendered(void) g_SchedCrashLastRendered = osGetCount(); } -void os_create_scheduler(OSSched *sc, OSThread *thread, u8 mode, u32 numFields) +void osCreateScheduler(OSSched *sc, OSThread *thread, u8 mode, u32 numFields) { sc->curRSPTask = 0; sc->curRDPTask = 0;