Merge branch 'file_functions' into 'master'

File functions

See merge request banjo.decomp/banjo-kazooie!67
This commit is contained in:
Banjo Kazooie
2024-09-13 23:38:30 +00:00
16 changed files with 336 additions and 286 deletions

View File

@@ -4798,4 +4798,12 @@ enum marker_collision_func_type_e {
MARKER_COLLISION_FUNC_2_DIE
};
enum file_mode_e {
FILE_MODE_0_UNKNOWN,
FILE_MODE_1_UNKNOWN,
FILE_MODE_2_FROM_ASSET,
FILE_MODE_3_FROM_MEMORY,
FILE_MODE_4_ALLOCATED
};
#endif

View File

@@ -460,7 +460,6 @@ void func_8033A280(f32);
void func_80346C10(enum bs_e *retVal, enum bs_e fail_state, enum bs_e success_state, enum item_e item_id, int use_item);
void func_80347A14(s32);
void func_8034A174(struct5Bs *this, s32 indx,f32 dst[3]);
Struct61s *func_8034AB6C(enum map_e map_id);
Struct70s *func_8034C528(s32);
Struct70s *func_8034C5AC(s32);
void func_8034DC08(Struct6Ds *, f32[3], f32[3], f32, s32);
@@ -582,4 +581,31 @@ extern void miscFlag_set(enum misc_flag_e arg0);
extern void miscFlag_clear(enum misc_flag_e arg0);
extern void miscFlag_toggle(enum misc_flag_e arg0);
extern void file_close(File* file);
extern File *file_open(enum asset_e asset_id);
extern File *file_openMap(enum map_e map_id);
extern File *file_openWithBaseIndex(s32 indx, enum asset_e base_indx);
extern File *file_openFromMem(void *ptr, s32 size);
extern File *file_allocNew();
extern void file_realloc(File *file, void **arg1, s32 *size);
extern void file_getByte(File *file, u8 *dst);
extern void file_getNBytes(File *file, u8 *dst, s32 cnt);
extern void file_getFloat(File *file, f32 *dst);
extern void file_getNFloat(File *file, f32 *dst, s32 cnt);
extern void file_getWord(File *file, s32 *dst);
extern void file_getNWords(File *file, s32 *dst, s32 cnt);
extern void file_read(File *file, void *dst, s32 len);
extern void file_getShort(File *file, s16 *dst);
extern void file_getNShorts(File *file, s16 *dst, s32 cnt);
extern bool file_isNextByteExpected(File *file, s32 expected);
extern bool file_getByte_ifExpected(File *file, s32 expected, u8 *dst);
extern bool file_getNBytes_ifExpected(File *file, s32 expected, u8 *dst, s32 cnt);
extern bool file_getFloat_ifExpected(File *file, s32 expected, f32 *dst);
extern bool file_getNFloats_ifExpected(File *file, s32 expected, f32 *dst, s32 cnt);
extern bool file_getWord_ifExpected(File *file, s32 expected, s32 *dst);
extern bool file_getNWords_ifExpected(File *file, s32 expected, s32 *dst, s32 cnt);
extern bool file_get_ifExpected(File *file, s32 expected, void *dst, s32 len);
extern bool file_getShort_ifExpected(File *file, s32 expected, s16 *dst);
extern bool file_getNShorts_ifExpected(File *file, s32 expected, s16 *dst, s32 cnt);
#endif

View File

@@ -4,6 +4,8 @@
#include <ultra64.h>
#include "model.h"
#include "core2/vla.h"
#include "enums.h"
#define MERGE(a, b) a ## b
#define UNK_TYPE(t) t
@@ -549,17 +551,17 @@ typedef struct {
//Struct60s moved to top
typedef struct{
void *unk0;
void *unk4;
void *unk8; //start_ptr
void *unkC; //current_ptr
void *unk10; //end_ptr
s32 unk14;
typedef struct file_s {
void *asset_base_ptr;
void *asset_current_ptr;
void *base_ptr;
void *current_ptr;
void *end_ptr;
enum file_mode_e mode;
u8 pad18[0x64];
s32 unk7C;
s32 unk80;
}Struct61s; //file stream
s32 last_expected; // used in file_isNextByteExpected
s32 unk80; // always set to -1 and never used
} File;
typedef struct {
s16 unk0;