mirror of
https://github.com/pret/pokeplatinum.git
synced 2026-07-31 23:24:08 -05:00
Merge pull request #392 from Kuruyia/feat/document-area-data
Some checks failed
build / build (push) Has been cancelled
Some checks failed
build / build (push) Has been cancelled
Document area data
This commit is contained in:
commit
2873d3f9e4
8
include/constants/gx_colors.h
Normal file
8
include/constants/gx_colors.h
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
#ifndef POKEPLATINUM_CONSTANTS_GX_COLORS_H
|
||||
#define POKEPLATINUM_CONSTANTS_GX_COLORS_H
|
||||
|
||||
#define COLOR_BLACK GX_RGB(0, 0, 0)
|
||||
#define COLOR_DARK_GRAY GX_RGB(4, 4, 4)
|
||||
#define COLOR_TRANSPARENT GX_RGB(31, 31, 16)
|
||||
|
||||
#endif // POKEPLATINUM_CONSTANTS_GX_COLORS_H
|
||||
|
|
@ -1,11 +1,14 @@
|
|||
#ifndef POKEPLATINUM_CONSTANTS_MAP_PROP_H
|
||||
#define POKEPLATINUM_CONSTANTS_MAP_PROP_H
|
||||
|
||||
enum MapPropId {
|
||||
MAP_PROP_ID_HONEY_TREE = 26,
|
||||
MAP_PROP_ID_UNK_242 = 242,
|
||||
MAP_PROP_ID_UNK_258 = 258,
|
||||
MAP_PROP_ID_UNK_475 = 475,
|
||||
enum MapPropModelId {
|
||||
MAP_PROP_MODEL_ID_HONEY_TREE = 26,
|
||||
MAP_PROP_MODEL_ID_UNK_124 = 124,
|
||||
MAP_PROP_MODEL_ID_UNK_242 = 242,
|
||||
MAP_PROP_MODEL_ID_UNK_258 = 258,
|
||||
MAP_PROP_MODEL_ID_UNK_475 = 475,
|
||||
MAP_PROP_MODEL_ID_UNK_498 = 498,
|
||||
MAP_PROP_MODEL_ID_UNK_517 = 517,
|
||||
};
|
||||
|
||||
#endif // POKEPLATINUM_CONSTANTS_MAP_PROP_H
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load Diff
|
|
@ -14,6 +14,7 @@
|
|||
#include "struct_defs/struct_0204AFC4.h"
|
||||
|
||||
#include "field/field_system_sub2_decl.h"
|
||||
#include "overlay005/area_data.h"
|
||||
#include "overlay005/map_prop.h"
|
||||
#include "overlay005/struct_ov5_021D1A68_decl.h"
|
||||
#include "overlay005/struct_ov5_021D3CAC_decl.h"
|
||||
|
|
@ -26,7 +27,6 @@
|
|||
#include "overlay005/struct_ov5_021E8F60_decl.h"
|
||||
#include "overlay005/struct_ov5_021EB0E0_decl.h"
|
||||
#include "overlay005/struct_ov5_021EF300_decl.h"
|
||||
#include "overlay005/struct_ov5_021EF76C_decl.h"
|
||||
#include "overlay023/struct_ov23_0224942C_decl.h"
|
||||
#include "overlay056/struct_ov56_02256468_decl.h"
|
||||
#include "overlay066/struct_ov66_0222DCE0_sub1.h"
|
||||
|
|
@ -80,7 +80,7 @@ typedef struct FieldSystem_t {
|
|||
Camera *camera;
|
||||
UnkStruct_ov5_021E8F60 *unk_28;
|
||||
MapMatrix *mapMatrix;
|
||||
UnkStruct_ov5_021EF76C *unk_30;
|
||||
AreaDataManager *areaDataManager;
|
||||
UnkStruct_ov5_021D1A68 *unk_34;
|
||||
MapObjectManager *mapObjMan;
|
||||
PlayerAvatar *playerAvatar;
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
#include "generated/evolution_methods.h"
|
||||
|
||||
typedef struct {
|
||||
u8 unk_00;
|
||||
u8 areaDataArchiveID;
|
||||
u8 unk_01;
|
||||
u16 mapMatrixID;
|
||||
u16 scriptsArchiveID;
|
||||
|
|
@ -27,7 +27,7 @@ typedef struct {
|
|||
} MapHeader;
|
||||
|
||||
u32 MapHeader_IDBoundsCheck(u32 headerID);
|
||||
const u16 sub_0203A038(u32 headerID);
|
||||
const u16 MapHeader_GetAreaDataArchiveID(u32 headerID);
|
||||
const u16 sub_0203A04C(u32 headerID);
|
||||
const u16 MapHeader_GetMapMatrixID(u32 headerID);
|
||||
u32 MapHeader_GetMsgArchiveID(u32 headerID);
|
||||
|
|
|
|||
52
include/overlay005/area_data.h
Normal file
52
include/overlay005/area_data.h
Normal file
|
|
@ -0,0 +1,52 @@
|
|||
#ifndef POKEPLATINUM_OV5_AREA_DATA_H
|
||||
#define POKEPLATINUM_OV5_AREA_DATA_H
|
||||
|
||||
#include <nnsys.h>
|
||||
|
||||
#include "overlay005/map_prop_material_shape.h"
|
||||
#include "overlay005/struct_ov5_021D3CAC_decl.h"
|
||||
|
||||
#define MAX_MAP_PROP_MODEL_FILES 768
|
||||
|
||||
typedef struct AreaDataManagerLoadData {
|
||||
int areaDataArchiveID;
|
||||
UnkStruct_ov5_021D3CAC *unk_04;
|
||||
u16 mapPropModelIDsCount;
|
||||
int dummy0C;
|
||||
} AreaDataManagerLoadData;
|
||||
|
||||
typedef struct AreaDataFile {
|
||||
u16 mapPropArchivesID;
|
||||
u16 mapTextureArchiveID;
|
||||
// The value of this changes in the NARC, but is unused in the code
|
||||
u16 dummy04;
|
||||
u16 areaLightArchiveID;
|
||||
} AreaDataFile;
|
||||
|
||||
typedef struct AreaDataManager {
|
||||
int dummy00;
|
||||
NNSG3dResFileHeader *mapPropModelFiles[MAX_MAP_PROP_MODEL_FILES];
|
||||
void *mapTextureFile;
|
||||
void *mapPropTextureFile;
|
||||
NNSG3dResTex *mapTexture;
|
||||
NNSG3dResTex *mapPropTexture;
|
||||
MapPropMaterialShape *mapPropMatShp;
|
||||
AreaDataFile areaData;
|
||||
AreaDataManagerLoadData *loadData;
|
||||
// Note: the first element is the size of this array
|
||||
u16 *mapPropModelIDs;
|
||||
} AreaDataManager;
|
||||
|
||||
AreaDataManager *AreaDataManager_Alloc(int areaDataArchiveID, UnkStruct_ov5_021D3CAC *param1);
|
||||
void AreaDataManager_Load(AreaDataManager *areaDataManager);
|
||||
NNSG3dResFileHeader **AreaDataManager_GetMapPropModelFile(const int mapPropModelID, AreaDataManager *const areaDataManager);
|
||||
void AreaDataManager_Free(AreaDataManager **areaDataManager);
|
||||
NNSG3dResTex *AreaDataManager_GetMapTexture(const AreaDataManager *areaDataManager);
|
||||
NNSG3dResTex *AreaDataManager_GetMapPropTexture(const AreaDataManager *areaDataManager);
|
||||
const MapPropMaterialShape *AreaDataManager_GetMapPropMaterialShape(const AreaDataManager *areaDataManager);
|
||||
BOOL AreaDataManager_IsOutdoorsLighting(const AreaDataManager *areaDataManager);
|
||||
u8 AreaDataManager_GetAreaLightArchiveID(const AreaDataManager *areaDataManager);
|
||||
int AreaDataManager_GetMapPropModelID(const AreaDataManager *areaDataManager, const int index);
|
||||
BOOL AreaDataManager_HasMapPropModelFile(const AreaDataManager *areaDataManager, const int mapPropModelID);
|
||||
|
||||
#endif // POKEPLATINUM_OV5_AREA_DATA_H
|
||||
|
|
@ -4,16 +4,16 @@
|
|||
#include <nitro/fx/fx.h>
|
||||
#include <nnsys.h>
|
||||
|
||||
#include "overlay005/area_data.h"
|
||||
#include "overlay005/struct_ov5_021D3CAC_decl.h"
|
||||
#include "overlay005/struct_ov5_021D5894.h"
|
||||
#include "overlay005/struct_ov5_021EF76C_decl.h"
|
||||
|
||||
#include "narc.h"
|
||||
|
||||
#define MAX_LOADED_MAP_PROPS 32
|
||||
|
||||
typedef struct MapProp {
|
||||
int id;
|
||||
int modelID;
|
||||
BOOL loaded;
|
||||
BOOL hidden;
|
||||
BOOL applyRotation;
|
||||
|
|
@ -32,8 +32,8 @@ MapPropManager *MapPropManager_New(const u8 heapId);
|
|||
void MapPropManager_Free(MapPropManager *mapPropManager);
|
||||
void MapPropManager_Init(MapPropManager *mapPropManager);
|
||||
void MapPropManager_InitOne(const int index, MapPropManager *mapPropManager);
|
||||
void MapPropManager_Load(NARC *landDataNARC, const int mapPropFilesSize, UnkStruct_ov5_021EF76C *const param2, MapPropManager *mapPropManager, UnkStruct_ov5_021D3CAC *param4);
|
||||
void MapPropManager_Render(const VecFx32 *positionOffset, const UnkStruct_ov5_021EF76C *param1, const BOOL param2, UnkStruct_ov5_021D5894 *const param3, MapPropManager *mapPropManager);
|
||||
void MapPropManager_Load(NARC *landDataNARC, const int mapPropFilesSize, AreaDataManager *const areaDataManager, MapPropManager *mapPropManager, UnkStruct_ov5_021D3CAC *param4);
|
||||
void MapPropManager_Render(const VecFx32 *positionOffset, const AreaDataManager *areaDataManager, const BOOL param2, UnkStruct_ov5_021D5894 *const param3, MapPropManager *mapPropManager);
|
||||
VecFx32 *MapProp_GetRotation(MapProp *mapProp);
|
||||
VecFx32 MapProp_GetPosition(const MapProp *mapProp);
|
||||
void MapProp_SetPosition(MapProp *mapProp, const VecFx32 *position);
|
||||
|
|
@ -42,9 +42,9 @@ int MapProp_GetId(const MapProp *mapProp);
|
|||
NNSG3dRenderObj *MapProp_GetRenderObj(const MapProp *mapProp);
|
||||
NNSG3dResMdl *MapProp_GetModel(const MapProp *mapProp);
|
||||
MapProp *MapPropManager_GetLoadedProp(MapPropManager *mapPropManager, const u8 index);
|
||||
MapProp *MapPropManager_FindLoadedPropById(MapPropManager *mapPropManager, const int id);
|
||||
MapProp *MapPropManager_FindLoadedPropByModelID(MapPropManager *mapPropManager, const int modelID);
|
||||
MapProp *MapPropManager_GetLoadedPropSafely(MapPropManager *mapPropManager, const int index);
|
||||
u8 MapPropManager_LoadOne(MapPropManager *mapPropManager, UnkStruct_ov5_021EF76C *const param1, const int id, const VecFx32 *position, const VecFx32 *rotation, UnkStruct_ov5_021D3CAC *param5);
|
||||
void MapPropManager_Render2(MapPropManager *mapPropManager, UnkStruct_ov5_021EF76C *const param1);
|
||||
u8 MapPropManager_LoadOne(MapPropManager *mapPropManager, AreaDataManager *const areaDataManager, const int modelID, const VecFx32 *position, const VecFx32 *rotation, UnkStruct_ov5_021D3CAC *param5);
|
||||
void MapPropManager_Render2(MapPropManager *mapPropManager, AreaDataManager *const areaDataManager);
|
||||
|
||||
#endif // POKEPLATINUM_OV5_MAP_PROP_H
|
||||
|
|
|
|||
|
|
@ -21,8 +21,8 @@ typedef struct MapPropMaterialShape {
|
|||
MapPropMaterialShape *MapPropMaterialShape_Alloc(void);
|
||||
void MapPropMaterialShape_Load(const char *path, MapPropMaterialShape *propMatShp);
|
||||
void MapPropMaterialShape_Free(MapPropMaterialShape *propMatShp);
|
||||
void MapProp_GetMaterialShapeIDsCount(const int mapPropID, const MapPropMaterialShape *propMatShp, u16 *idsCount);
|
||||
void MapProp_GetMaterialShapeIDsLocator(const int mapPropID, const MapPropMaterialShape *propMatShp, u16 *idsCount, u16 *idsIndex);
|
||||
void MapProp_GetMaterialShapeIDsCount(const int mapPropModelID, const MapPropMaterialShape *propMatShp, u16 *idsCount);
|
||||
void MapProp_GetMaterialShapeIDsLocator(const int mapPropModelID, const MapPropMaterialShape *propMatShp, u16 *idsCount, u16 *idsIndex);
|
||||
MapPropMaterialShapeIDs const *MapPropMaterialShape_GetMaterialShapeIDsAt(const u16 index, const MapPropMaterialShape *propMatShp);
|
||||
|
||||
#endif // POKEPLATINUM_OV5_MAP_PROP_MATERIAL_SHAPE_H
|
||||
|
|
|
|||
|
|
@ -4,20 +4,20 @@
|
|||
#include <nitro/fx/fx.h>
|
||||
|
||||
#include "field/field_system_decl.h"
|
||||
#include "overlay005/area_data.h"
|
||||
#include "overlay005/bdhc.h"
|
||||
#include "overlay005/funcptr_ov5_021E9630.h"
|
||||
#include "overlay005/map_prop.h"
|
||||
#include "overlay005/struct_ov5_021D3CAC_decl.h"
|
||||
#include "overlay005/struct_ov5_021D5894.h"
|
||||
#include "overlay005/struct_ov5_021E8F60_decl.h"
|
||||
#include "overlay005/struct_ov5_021EF76C_decl.h"
|
||||
|
||||
#include "map_matrix.h"
|
||||
#include "narc.h"
|
||||
|
||||
void ov5_021E7A54(UnkStruct_ov5_021E8F60 *param0);
|
||||
void ov5_021E8188(FieldSystem *fieldSystem, UnkStruct_ov5_021E8F60 *param1);
|
||||
UnkStruct_ov5_021E8F60 *ov5_021E9084(MapMatrix *param0, UnkStruct_ov5_021EF76C *param1, UnkStruct_ov5_021D3CAC *param2, const int param3);
|
||||
UnkStruct_ov5_021E8F60 *ov5_021E9084(MapMatrix *param0, AreaDataManager *param1, UnkStruct_ov5_021D3CAC *param2, const int param3);
|
||||
void ov5_021E9150(UnkStruct_ov5_021E8F60 *param0, const int param1, const int param2);
|
||||
void ov5_021E9190(const u8 param0, UnkStruct_ov5_021E8F60 *param1);
|
||||
void ov5_021E91FC(const UnkStruct_ov5_021E8F60 *param0, UnkStruct_ov5_021D5894 *const param1);
|
||||
|
|
@ -37,8 +37,8 @@ const BDHC *ov5_021E9610(const UnkStruct_ov5_021E8F60 *param0, const u8 param1);
|
|||
u16 const *ov5_021E9624(const UnkStruct_ov5_021E8F60 *param0, const u8 param1);
|
||||
void ov5_021E9630(UnkStruct_ov5_021E8F60 *param0, UnkFuncPtr_ov5_021E9630 param1, void *param2);
|
||||
NARC *ov5_021E9828(UnkStruct_ov5_021E8F60 *param0);
|
||||
UnkStruct_ov5_021E8F60 *ov5_021E9830(MapMatrix *param0, UnkStruct_ov5_021EF76C *param1, NARC *param2);
|
||||
void ov5_021E98C8(UnkStruct_ov5_021E8F60 *param0, MapMatrix *param1, UnkStruct_ov5_021EF76C *param2, NARC *param3);
|
||||
UnkStruct_ov5_021E8F60 *ov5_021E9830(MapMatrix *param0, AreaDataManager *param1, NARC *param2);
|
||||
void ov5_021E98C8(UnkStruct_ov5_021E8F60 *param0, MapMatrix *param1, AreaDataManager *param2, NARC *param3);
|
||||
void ov5_021E9938(UnkStruct_ov5_021E8F60 *param0);
|
||||
void ov5_021E9998(UnkStruct_ov5_021E8F60 *param0);
|
||||
void ov5_021E99C4(UnkStruct_ov5_021E8F60 *param0);
|
||||
|
|
@ -47,10 +47,10 @@ void ov5_021E9AAC(UnkStruct_ov5_021E8F60 *param0, const int param1, const int pa
|
|||
void ov5_021E9B10(UnkStruct_ov5_021E8F60 *param0, int param1, int param2);
|
||||
void ov5_021E9C0C(const UnkStruct_ov5_021E8F60 *param0, const UnkStruct_ov5_021D5894 *param1);
|
||||
void ov5_021E9CD8(UnkStruct_ov5_021E8F60 *param0);
|
||||
void ov5_021E9D3C(MapMatrix *param0, UnkStruct_ov5_021EF76C *param1, UnkStruct_ov5_021E8F60 *param2, UnkStruct_ov5_021E8F60 *param3, const int param4, const int param5);
|
||||
void ov5_021E9D3C(MapMatrix *param0, AreaDataManager *param1, UnkStruct_ov5_021E8F60 *param2, UnkStruct_ov5_021E8F60 *param3, const int param4, const int param5);
|
||||
void ov5_021E9F98(UnkStruct_ov5_021E8F60 *param0, UnkStruct_ov5_021E8F60 *param1);
|
||||
void ov5_021EA174(FieldSystem *fieldSystem, UnkStruct_ov5_021E8F60 *param1);
|
||||
void ov5_021EA540(UnkStruct_ov5_021E8F60 *param0, MapMatrix *param1, UnkStruct_ov5_021EF76C *param2);
|
||||
void ov5_021EA540(UnkStruct_ov5_021E8F60 *param0, MapMatrix *param1, AreaDataManager *param2);
|
||||
void ov5_021EA58C(UnkStruct_ov5_021E8F60 *param0, const int param1, const int param2, int *param3);
|
||||
void ov5_021EA5E0(UnkStruct_ov5_021E8F60 *param0, int param1, int param2);
|
||||
void ov5_021EA678(UnkStruct_ov5_021E8F60 *param0, int param1, int param2, int param3);
|
||||
|
|
|
|||
|
|
@ -1,22 +0,0 @@
|
|||
#ifndef POKEPLATINUM_OV5_021EF75C_H
|
||||
#define POKEPLATINUM_OV5_021EF75C_H
|
||||
|
||||
#include <nnsys.h>
|
||||
|
||||
#include "overlay005/map_prop_material_shape.h"
|
||||
#include "overlay005/struct_ov5_021D3CAC_decl.h"
|
||||
#include "overlay005/struct_ov5_021EF76C_decl.h"
|
||||
|
||||
UnkStruct_ov5_021EF76C *ov5_021EF76C(int param0, UnkStruct_ov5_021D3CAC *param1);
|
||||
void ov5_021EF7A0(UnkStruct_ov5_021EF76C *param0);
|
||||
NNSG3dResFileHeader **ov5_021EF9E8(const int param0, UnkStruct_ov5_021EF76C *const param1);
|
||||
void ov5_021EFA10(UnkStruct_ov5_021EF76C **param0);
|
||||
NNSG3dResTex *ov5_021EFA8C(const UnkStruct_ov5_021EF76C *param0);
|
||||
NNSG3dResTex *ov5_021EFAA0(const UnkStruct_ov5_021EF76C *param0);
|
||||
const MapPropMaterialShape *ov5_021EFAB4(const UnkStruct_ov5_021EF76C *param0);
|
||||
BOOL ov5_021EFAC0(const UnkStruct_ov5_021EF76C *param0);
|
||||
u8 ov5_021EFAD8(const UnkStruct_ov5_021EF76C *param0);
|
||||
int ov5_021EFAE8(const UnkStruct_ov5_021EF76C *param0, const int param1);
|
||||
BOOL ov5_021EFAF8(const UnkStruct_ov5_021EF76C *param0, const int param1);
|
||||
|
||||
#endif // POKEPLATINUM_OV5_021EF75C_H
|
||||
|
|
@ -1,6 +0,0 @@
|
|||
#ifndef POKEPLATINUM_STRUCT_OV5_021EF76C_DECL_H
|
||||
#define POKEPLATINUM_STRUCT_OV5_021EF76C_DECL_H
|
||||
|
||||
typedef struct UnkStruct_ov5_021EF76C_t UnkStruct_ov5_021EF76C;
|
||||
|
||||
#endif // POKEPLATINUM_STRUCT_OV5_021EF76C_DECL_H
|
||||
|
|
@ -512,7 +512,7 @@ Overlay overlay5
|
|||
Object main.nef.p/src_overlay005_ov5_021EF250.c.o
|
||||
Object main.nef.p/src_overlay005_hblank_system.c.o
|
||||
Object main.nef.p/src_overlay005_ov5_021EF4BC.c.o
|
||||
Object main.nef.p/src_overlay005_ov5_021EF75C.c.o
|
||||
Object main.nef.p/src_overlay005_area_data.c.o
|
||||
Object main.nef.p/src_overlay005_honey_tree.c.o
|
||||
Object main.nef.p/src_overlay005_ov5_021F007C.c.o
|
||||
Object main.nef.p/src_overlay005_ov5_021FF6B8.c.o
|
||||
|
|
|
|||
|
|
@ -4,6 +4,7 @@
|
|||
#include <nnsys.h>
|
||||
#include <string.h>
|
||||
|
||||
#include "constants/gx_colors.h"
|
||||
#include "constants/heap.h"
|
||||
#include "constants/narc.h"
|
||||
#include "constants/species.h"
|
||||
|
|
@ -78,9 +79,6 @@
|
|||
#define OAM_VRAM_TRANSFER_MAIN_SIZE (0x14000)
|
||||
#define OAM_VRAM_TRANSFER_SUB_SIZE (0x4000)
|
||||
|
||||
#define COLOR_BLACK GX_RGB(4, 4, 4)
|
||||
#define COLOR_TRANSPARENT GX_RGB(31, 31, 16)
|
||||
|
||||
#define TRANSPARENT_DEPTH 0x7FFF
|
||||
#define TRANSPARENT_POLYGON_ID 63
|
||||
|
||||
|
|
@ -561,7 +559,7 @@ static void Setup3D(ChooseStarterApp *app)
|
|||
G3X_EdgeMarking(TRUE);
|
||||
|
||||
for (int i = 0; i < 8; i++) {
|
||||
app->edgeMarkings[i] = COLOR_BLACK;
|
||||
app->edgeMarkings[i] = COLOR_DARK_GRAY;
|
||||
}
|
||||
|
||||
G3X_SetEdgeColorTable(app->edgeMarkings);
|
||||
|
|
|
|||
|
|
@ -14,10 +14,10 @@ u32 MapHeader_IDBoundsCheck(u32 headerID)
|
|||
return headerID;
|
||||
}
|
||||
|
||||
const u16 sub_0203A038(u32 headerID)
|
||||
const u16 MapHeader_GetAreaDataArchiveID(u32 headerID)
|
||||
{
|
||||
headerID = MapHeader_IDBoundsCheck(headerID);
|
||||
return sMapHeaders[headerID].unk_00;
|
||||
return sMapHeaders[headerID].areaDataArchiveID;
|
||||
}
|
||||
|
||||
const u16 sub_0203A04C(u32 headerID)
|
||||
|
|
|
|||
|
|
@ -405,7 +405,7 @@ pokeplatinum_c = files(
|
|||
'overlay005/ov5_021EF250.c',
|
||||
'overlay005/hblank_system.c',
|
||||
'overlay005/ov5_021EF4BC.c',
|
||||
'overlay005/ov5_021EF75C.c',
|
||||
'overlay005/area_data.c',
|
||||
'overlay005/honey_tree.c',
|
||||
'overlay005/ov5_021F007C.c',
|
||||
'overlay005/ov5_021F067C.c',
|
||||
|
|
|
|||
233
src/overlay005/area_data.c
Normal file
233
src/overlay005/area_data.c
Normal file
|
|
@ -0,0 +1,233 @@
|
|||
#include "overlay005/area_data.h"
|
||||
|
||||
#include <nitro.h>
|
||||
#include <string.h>
|
||||
|
||||
#include "constants/gx_colors.h"
|
||||
#include "constants/heap.h"
|
||||
|
||||
#include "overlay005/map_prop_material_shape.h"
|
||||
#include "overlay005/ov5_021D37AC.h"
|
||||
#include "overlay005/struct_ov5_021D3CAC_decl.h"
|
||||
|
||||
#include "easy3d.h"
|
||||
#include "heap.h"
|
||||
#include "narc.h"
|
||||
|
||||
static const GXRgb sIndoorsEdgeMarkings[8] = {
|
||||
COLOR_BLACK,
|
||||
COLOR_DARK_GRAY,
|
||||
COLOR_DARK_GRAY,
|
||||
COLOR_DARK_GRAY,
|
||||
COLOR_DARK_GRAY,
|
||||
COLOR_DARK_GRAY,
|
||||
COLOR_DARK_GRAY,
|
||||
COLOR_DARK_GRAY
|
||||
};
|
||||
|
||||
static const GXRgb sOutdoorsEdgeMarkings[8] = {
|
||||
COLOR_DARK_GRAY,
|
||||
COLOR_DARK_GRAY,
|
||||
COLOR_DARK_GRAY,
|
||||
COLOR_DARK_GRAY,
|
||||
COLOR_DARK_GRAY,
|
||||
COLOR_DARK_GRAY,
|
||||
COLOR_DARK_GRAY,
|
||||
COLOR_DARK_GRAY
|
||||
};
|
||||
|
||||
static void AreaData_StripTextureData(void *resourceFile, NNSG3dResTex *texture)
|
||||
{
|
||||
u8 *textureData = (u8 *)texture + texture->texInfo.ofsTex;
|
||||
u32 strippedTextureDataSize = (u32)(textureData - (u8 *)resourceFile);
|
||||
|
||||
Heap_ReallocFromHeap(resourceFile, strippedTextureDataSize);
|
||||
}
|
||||
|
||||
AreaDataManager *AreaDataManager_Alloc(const int areaDataArchiveID, UnkStruct_ov5_021D3CAC *param1)
|
||||
{
|
||||
AreaDataManager *areaDataManager = Heap_AllocFromHeap(HEAP_ID_FIELD, sizeof(AreaDataManager));
|
||||
|
||||
areaDataManager->loadData = Heap_AllocFromHeapAtEnd(HEAP_ID_FIELD, sizeof(AreaDataManagerLoadData));
|
||||
areaDataManager->loadData->areaDataArchiveID = areaDataArchiveID;
|
||||
areaDataManager->loadData->unk_04 = param1;
|
||||
areaDataManager->loadData->dummy0C = 0;
|
||||
|
||||
return areaDataManager;
|
||||
}
|
||||
|
||||
void AreaDataManager_Load(AreaDataManager *areaDataManager)
|
||||
{
|
||||
NARC *narc;
|
||||
AreaDataManagerLoadData *loadData = areaDataManager->loadData;
|
||||
|
||||
NARC_ReadWholeMemberByIndexPair(&areaDataManager->areaData, NARC_INDEX_FIELDDATA__AREADATA__AREA_DATA, loadData->areaDataArchiveID);
|
||||
|
||||
areaDataManager->mapPropModelIDs = NARC_AllocAndReadWholeMemberByIndexPair(NARC_INDEX_FIELDDATA__AREADATA__AREA_BUILD_MODEL__AREA_BUILD, areaDataManager->areaData.mapPropArchivesID, HEAP_ID_FIELD);
|
||||
loadData->mapPropModelIDsCount = areaDataManager->mapPropModelIDs[0];
|
||||
|
||||
GF_ASSERT(loadData->mapPropModelIDsCount < MAX_MAP_PROP_MODEL_FILES);
|
||||
|
||||
areaDataManager->mapTexture = NULL;
|
||||
areaDataManager->mapTextureFile = NARC_AllocAndReadWholeMemberByIndexPair(NARC_INDEX_FIELDDATA__AREADATA__AREA_MAP_TEX__MAP_TEX_SET, areaDataManager->areaData.mapTextureArchiveID, HEAP_ID_FIELD);
|
||||
areaDataManager->mapPropTextureFile = NARC_AllocAndReadWholeMemberByIndexPair(NARC_INDEX_FIELDDATA__AREADATA__AREA_BUILD_MODEL__AREABM_TEXSET, areaDataManager->areaData.mapPropArchivesID, HEAP_ID_FIELD);
|
||||
areaDataManager->mapTexture = NNS_G3dGetTex((NNSG3dResFileHeader *)areaDataManager->mapTextureFile);
|
||||
|
||||
if (loadData->mapPropModelIDsCount != 0) {
|
||||
areaDataManager->mapPropTexture = NNS_G3dGetTex((NNSG3dResFileHeader *)areaDataManager->mapPropTextureFile);
|
||||
} else {
|
||||
areaDataManager->mapPropTexture = NULL;
|
||||
}
|
||||
|
||||
BOOL textureUploaded = Easy3D_UploadTextureToVRAM(areaDataManager->mapTexture);
|
||||
GF_ASSERT(textureUploaded);
|
||||
|
||||
AreaData_StripTextureData(areaDataManager->mapTextureFile, areaDataManager->mapTexture);
|
||||
|
||||
if (areaDataManager->mapPropTexture != NULL) {
|
||||
BOOL textureUploaded = Easy3D_UploadTextureToVRAM(areaDataManager->mapPropTexture);
|
||||
GF_ASSERT(textureUploaded);
|
||||
|
||||
AreaData_StripTextureData(areaDataManager->mapPropTextureFile, areaDataManager->mapPropTexture);
|
||||
}
|
||||
|
||||
for (int i = 0; i < MAX_MAP_PROP_MODEL_FILES; i++) {
|
||||
areaDataManager->mapPropModelFiles[i] = NULL;
|
||||
}
|
||||
|
||||
areaDataManager->mapPropMatShp = NULL;
|
||||
|
||||
narc = NARC_ctor(NARC_INDEX_FIELDDATA__BUILD_MODEL__BUILD_MODEL, HEAP_ID_FIELD);
|
||||
|
||||
int i;
|
||||
u16 mapPropModelID;
|
||||
int mapPropModelAnimeListNARCFileCount = ov5_021D3F84(loadData->unk_04);
|
||||
|
||||
for (i = 0; i < loadData->mapPropModelIDsCount; i++) {
|
||||
mapPropModelID = areaDataManager->mapPropModelIDs[i + 1];
|
||||
|
||||
GF_ASSERT(areaDataManager->mapPropModelFiles[mapPropModelID] == NULL);
|
||||
areaDataManager->mapPropModelFiles[mapPropModelID] = NARC_AllocAndReadWholeMember(narc, mapPropModelID, HEAP_ID_FIELD);
|
||||
|
||||
if (mapPropModelID < mapPropModelAnimeListNARCFileCount) {
|
||||
NNSG3dResMdl *mapPropModel = NNS_G3dGetMdlByIdx(NNS_G3dGetMdlSet(areaDataManager->mapPropModelFiles[mapPropModelID]), 0);
|
||||
ov5_021D3A50(mapPropModelID, mapPropModel, areaDataManager->mapPropTexture, loadData->unk_04);
|
||||
}
|
||||
|
||||
BOOL textureBound = Easy3D_BindTextureToResource(areaDataManager->mapPropModelFiles[mapPropModelID], areaDataManager->mapPropTexture);
|
||||
GF_ASSERT(textureBound);
|
||||
}
|
||||
|
||||
// Make sure the dummy box ("dmybox00") model is always loaded
|
||||
if (areaDataManager->mapPropModelFiles[0] == NULL) {
|
||||
BOOL res;
|
||||
NNSG3dResTex *texture;
|
||||
|
||||
areaDataManager->mapPropModelFiles[0] = NARC_AllocAndReadWholeMember(narc, 0, HEAP_ID_FIELD);
|
||||
texture = NNS_G3dGetTex(areaDataManager->mapPropModelFiles[0]);
|
||||
|
||||
if (texture != NULL) {
|
||||
res = Easy3D_UploadTextureToVRAM(texture);
|
||||
GF_ASSERT(res);
|
||||
|
||||
res = Easy3D_BindTextureToResource(areaDataManager->mapPropModelFiles[0], texture);
|
||||
GF_ASSERT(res);
|
||||
}
|
||||
}
|
||||
|
||||
NARC_dtor(narc);
|
||||
G3X_EdgeMarking(TRUE);
|
||||
|
||||
if (!AreaDataManager_IsOutdoorsLighting(areaDataManager)) {
|
||||
G3X_SetEdgeColorTable(sIndoorsEdgeMarkings);
|
||||
} else {
|
||||
G3X_SetEdgeColorTable(sOutdoorsEdgeMarkings);
|
||||
}
|
||||
|
||||
char mapPropMaterialShapeFilePath[256];
|
||||
|
||||
areaDataManager->mapPropMatShp = MapPropMaterialShape_Alloc();
|
||||
sprintf(mapPropMaterialShapeFilePath, "fielddata/build_model/build_model_matshp.dat");
|
||||
MapPropMaterialShape_Load(mapPropMaterialShapeFilePath, areaDataManager->mapPropMatShp);
|
||||
|
||||
Heap_FreeToHeap(areaDataManager->loadData);
|
||||
areaDataManager->loadData = NULL;
|
||||
}
|
||||
|
||||
NNSG3dResFileHeader **AreaDataManager_GetMapPropModelFile(const int mapPropModelID, AreaDataManager *const areaDataManager)
|
||||
{
|
||||
GF_ASSERT(areaDataManager != NULL);
|
||||
|
||||
if (areaDataManager->mapPropModelFiles[mapPropModelID] == NULL) {
|
||||
// Return the dummy box model if the requested one is not loaded
|
||||
GF_ASSERT(areaDataManager->mapPropModelFiles[0] != NULL);
|
||||
return &areaDataManager->mapPropModelFiles[0];
|
||||
}
|
||||
|
||||
return &areaDataManager->mapPropModelFiles[mapPropModelID];
|
||||
}
|
||||
|
||||
void AreaDataManager_Free(AreaDataManager **areaDataManager)
|
||||
{
|
||||
if ((*areaDataManager)->mapPropMatShp != NULL) {
|
||||
MapPropMaterialShape_Free((*areaDataManager)->mapPropMatShp);
|
||||
}
|
||||
|
||||
for (int i = 0; i < MAX_MAP_PROP_MODEL_FILES; i++) {
|
||||
if ((*areaDataManager)->mapPropModelFiles[i] != NULL) {
|
||||
Heap_FreeToHeap((*areaDataManager)->mapPropModelFiles[i]);
|
||||
}
|
||||
}
|
||||
|
||||
Heap_FreeToHeap((*areaDataManager)->mapPropModelIDs);
|
||||
Heap_FreeToHeap((*areaDataManager)->mapTextureFile);
|
||||
|
||||
(*areaDataManager)->mapTextureFile = NULL;
|
||||
Heap_FreeToHeap((*areaDataManager)->mapPropTextureFile);
|
||||
|
||||
(*areaDataManager)->mapPropTextureFile = NULL;
|
||||
Heap_FreeToHeap(*areaDataManager);
|
||||
|
||||
(*areaDataManager) = NULL;
|
||||
}
|
||||
|
||||
NNSG3dResTex *AreaDataManager_GetMapTexture(const AreaDataManager *areaDataManager)
|
||||
{
|
||||
GF_ASSERT(areaDataManager != NULL);
|
||||
return areaDataManager->mapTexture;
|
||||
}
|
||||
|
||||
NNSG3dResTex *AreaDataManager_GetMapPropTexture(const AreaDataManager *areaDataManager)
|
||||
{
|
||||
GF_ASSERT(areaDataManager != NULL);
|
||||
return areaDataManager->mapPropTexture;
|
||||
}
|
||||
|
||||
const MapPropMaterialShape *AreaDataManager_GetMapPropMaterialShape(const AreaDataManager *areaDataManager)
|
||||
{
|
||||
return areaDataManager->mapPropMatShp;
|
||||
}
|
||||
|
||||
BOOL AreaDataManager_IsOutdoorsLighting(const AreaDataManager *areaDataManager)
|
||||
{
|
||||
if ((areaDataManager->areaData.areaLightArchiveID == 0) || (areaDataManager->areaData.areaLightArchiveID == 3)) {
|
||||
return TRUE;
|
||||
} else {
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
u8 AreaDataManager_GetAreaLightArchiveID(const AreaDataManager *areaDataManager)
|
||||
{
|
||||
return areaDataManager->areaData.areaLightArchiveID;
|
||||
}
|
||||
|
||||
int AreaDataManager_GetMapPropModelID(const AreaDataManager *areaDataManager, const int index)
|
||||
{
|
||||
return areaDataManager->mapPropModelIDs[index];
|
||||
}
|
||||
|
||||
BOOL AreaDataManager_HasMapPropModelFile(const AreaDataManager *areaDataManager, const int mapPropModelID)
|
||||
{
|
||||
return areaDataManager->mapPropModelFiles[mapPropModelID] != NULL;
|
||||
}
|
||||
|
|
@ -15,6 +15,7 @@
|
|||
#include "field/field_system.h"
|
||||
#include "field/field_system_sub2_decl.h"
|
||||
#include "field/field_system_sub2_t.h"
|
||||
#include "overlay005/area_data.h"
|
||||
#include "overlay005/const_ov5_021FF6B8.h"
|
||||
#include "overlay005/const_ov5_021FF744.h"
|
||||
#include "overlay005/const_ov5_021FF7D0.h"
|
||||
|
|
@ -40,7 +41,6 @@
|
|||
#include "overlay005/ov5_021EE75C.h"
|
||||
#include "overlay005/ov5_021EF250.h"
|
||||
#include "overlay005/ov5_021EF4BC.h"
|
||||
#include "overlay005/ov5_021EF75C.h"
|
||||
#include "overlay005/ov5_021F0824.h"
|
||||
#include "overlay005/ov5_021F10E8.h"
|
||||
#include "overlay005/struct_ov5_021D1A68_decl.h"
|
||||
|
|
@ -204,7 +204,7 @@ static BOOL FieldMap_Init(OverlayManager *overlayMan, int *param1)
|
|||
break;
|
||||
case 1:
|
||||
ov5_021D1790(fieldSystem);
|
||||
ov5_021EF7A0(fieldSystem->unk_30);
|
||||
AreaDataManager_Load(fieldSystem->areaDataManager);
|
||||
|
||||
fieldSystem->mapPropManager = MapPropManager_New(HEAP_ID_FIELD);
|
||||
|
||||
|
|
@ -304,7 +304,7 @@ static BOOL FieldMap_Exit(OverlayManager *overlayMan, int *param1)
|
|||
break;
|
||||
case 1:
|
||||
if (ov5_021E9300(fieldSystem->unk_28) == 1) {
|
||||
ov5_021EFA10(&fieldSystem->unk_30);
|
||||
AreaDataManager_Free(&fieldSystem->areaDataManager);
|
||||
ov5_021E92E4(fieldSystem->unk_28);
|
||||
HoneyTree_FreeShakeData(&fieldSystem->unk_A8);
|
||||
ov5_021D5BA8(fieldSystem);
|
||||
|
|
@ -714,7 +714,7 @@ static void ov5_021D15F4(FieldSystem *fieldSystem)
|
|||
ov9_0224CA50(fieldSystem);
|
||||
}
|
||||
|
||||
MapPropManager_Render2(fieldSystem->mapPropManager, fieldSystem->unk_30);
|
||||
MapPropManager_Render2(fieldSystem->mapPropManager, fieldSystem->areaDataManager);
|
||||
|
||||
{
|
||||
const MtxFx44 *v2;
|
||||
|
|
@ -789,10 +789,10 @@ static void ov5_021D1790(FieldSystem *fieldSystem)
|
|||
fieldSystem->unk_54 = ov5_021D4194();
|
||||
|
||||
{
|
||||
u16 v0, v1;
|
||||
u16 areaDataArchiveID, v1;
|
||||
|
||||
v0 = sub_0203A038(fieldSystem->location->mapId);
|
||||
fieldSystem->unk_30 = ov5_021EF76C(v0, fieldSystem->unk_50);
|
||||
areaDataArchiveID = MapHeader_GetAreaDataArchiveID(fieldSystem->location->mapId);
|
||||
fieldSystem->areaDataManager = AreaDataManager_Alloc(areaDataArchiveID, fieldSystem->unk_50);
|
||||
|
||||
v1 = sub_0203A04C(fieldSystem->location->mapId);
|
||||
GF_ASSERT(fieldSystem->unk_34 == NULL);
|
||||
|
|
@ -803,7 +803,7 @@ static void ov5_021D1790(FieldSystem *fieldSystem)
|
|||
|
||||
static void ov5_021D17EC(FieldSystem *fieldSystem)
|
||||
{
|
||||
fieldSystem->unk_28 = ov5_021E9084(fieldSystem->mapMatrix, fieldSystem->unk_30, fieldSystem->unk_50, fieldSystem->unk_60);
|
||||
fieldSystem->unk_28 = ov5_021E9084(fieldSystem->mapMatrix, fieldSystem->areaDataManager, fieldSystem->unk_50, fieldSystem->unk_60);
|
||||
|
||||
if (FieldMap_InDistortionWorld(fieldSystem) == TRUE) {
|
||||
int v0 = 0, v1 = 0, v2 = 0;
|
||||
|
|
@ -900,7 +900,7 @@ static void ov5_021D1968(FieldSystem *fieldSystem)
|
|||
ov5_021D5B40(PlayerAvatar_PosVector(fieldSystem->playerAvatar), fieldSystem, v0, 1);
|
||||
}
|
||||
|
||||
fieldSystem->unk_4C = ov5_021D521C(fieldSystem->unk_44, ov5_021EFAD8(fieldSystem->unk_30));
|
||||
fieldSystem->unk_4C = ov5_021D521C(fieldSystem->unk_44, AreaDataManager_GetAreaLightArchiveID(fieldSystem->areaDataManager));
|
||||
|
||||
if (FieldMap_InDistortionWorld(fieldSystem) == TRUE) {
|
||||
fieldSystem->unk_04->unk_0C = NULL;
|
||||
|
|
@ -912,7 +912,7 @@ static void ov5_021D1968(FieldSystem *fieldSystem)
|
|||
fieldSystem->unk_64 = ov5_021E1B08(4);
|
||||
fieldSystem->unk_04->unk_10 = ov5_021D5CB0();
|
||||
|
||||
ov5_021D5CE4(fieldSystem->unk_04->unk_10, ov5_021EFA8C(fieldSystem->unk_30));
|
||||
ov5_021D5CE4(fieldSystem->unk_04->unk_10, AreaDataManager_GetMapTexture(fieldSystem->areaDataManager));
|
||||
sub_02068344(fieldSystem);
|
||||
ov5_021EE7C0(fieldSystem);
|
||||
SetVBlankCallback(fieldmap, fieldSystem);
|
||||
|
|
|
|||
|
|
@ -196,7 +196,7 @@ void HoneyTree_StopShaking(FieldSystem *fieldSystem)
|
|||
|
||||
ov5_021E9340(v1, fieldSystem->unk_28, &v3);
|
||||
|
||||
v2 = MapPropManager_FindLoadedPropById(v3, MAP_PROP_ID_HONEY_TREE);
|
||||
v2 = MapPropManager_FindLoadedPropByModelID(v3, MAP_PROP_MODEL_ID_HONEY_TREE);
|
||||
v4 = MapProp_GetRenderObj(v2);
|
||||
|
||||
if (v2 != NULL) {
|
||||
|
|
@ -366,7 +366,7 @@ static void DoTreeShakingAnimation(FieldSystem *fieldSystem, MapPropManager *par
|
|||
return;
|
||||
}
|
||||
|
||||
v4 = MapPropManager_FindLoadedPropById(param1, MAP_PROP_ID_HONEY_TREE);
|
||||
v4 = MapPropManager_FindLoadedPropByModelID(param1, MAP_PROP_MODEL_ID_HONEY_TREE);
|
||||
|
||||
if (v4 != NULL) {
|
||||
NNSG3dRenderObj *v7;
|
||||
|
|
|
|||
|
|
@ -5,13 +5,12 @@
|
|||
|
||||
#include "constants/heap.h"
|
||||
|
||||
#include "overlay005/area_data.h"
|
||||
#include "overlay005/map_prop_material_shape.h"
|
||||
#include "overlay005/ov5_021D37AC.h"
|
||||
#include "overlay005/ov5_021D5878.h"
|
||||
#include "overlay005/ov5_021EF75C.h"
|
||||
#include "overlay005/struct_ov5_021D3CAC_decl.h"
|
||||
#include "overlay005/struct_ov5_021D5894.h"
|
||||
#include "overlay005/struct_ov5_021EF76C_decl.h"
|
||||
|
||||
#include "easy3d.h"
|
||||
#include "fx_util.h"
|
||||
|
|
@ -19,11 +18,11 @@
|
|||
#include "narc.h"
|
||||
#include "unk_0201CED8.h"
|
||||
|
||||
static void MapPropManager_InitRenderObj(const int loadedPropId, UnkStruct_ov5_021EF76C *const param1, NNSG3dRenderObj *renderObj, NNSG3dResMdl **resMdl);
|
||||
static void MapPropManager_RenderUsing1Mat1Shp(const NNSG3dResMdl *resMdl, VecFx32 *position, MtxFx33 *rotation, VecFx32 *scale, const MapPropMaterialShape *propMatShp, const int mapPropID);
|
||||
static void MapPropManager_InitRenderObj(const int modelID, AreaDataManager *const areaDataManager, NNSG3dRenderObj *renderObj, NNSG3dResMdl **model);
|
||||
static void MapPropManager_RenderUsing1Mat1Shp(const NNSG3dResMdl *model, VecFx32 *position, MtxFx33 *rotation, VecFx32 *scale, const MapPropMaterialShape *propMatShp, const int modelID);
|
||||
|
||||
typedef struct {
|
||||
int id;
|
||||
int modelID;
|
||||
VecFx32 position;
|
||||
VecFx32 rotation;
|
||||
VecFx32 scale;
|
||||
|
|
@ -49,7 +48,7 @@ void MapPropManager_Init(MapPropManager *mapPropManager)
|
|||
for (u8 i = 0; i < MAX_LOADED_MAP_PROPS; i++) {
|
||||
VecFx32 nullVector = { 0, 0, 0 };
|
||||
|
||||
mapPropManager->loadedProps[i].id = 0;
|
||||
mapPropManager->loadedProps[i].modelID = 0;
|
||||
mapPropManager->loadedProps[i].loaded = FALSE;
|
||||
mapPropManager->loadedProps[i].hidden = FALSE;
|
||||
mapPropManager->loadedProps[i].applyRotation = FALSE;
|
||||
|
|
@ -65,7 +64,7 @@ void MapPropManager_InitOne(const int index, MapPropManager *mapPropManager)
|
|||
GF_ASSERT(index < MAX_LOADED_MAP_PROPS);
|
||||
VecFx32 nullVector = { 0, 0, 0 };
|
||||
|
||||
mapPropManager->loadedProps[index].id = 0;
|
||||
mapPropManager->loadedProps[index].modelID = 0;
|
||||
mapPropManager->loadedProps[index].loaded = FALSE;
|
||||
mapPropManager->loadedProps[index].hidden = FALSE;
|
||||
mapPropManager->loadedProps[index].applyRotation = FALSE;
|
||||
|
|
@ -75,7 +74,7 @@ void MapPropManager_InitOne(const int index, MapPropManager *mapPropManager)
|
|||
mapPropManager->loadedProps[index].model = NULL;
|
||||
}
|
||||
|
||||
void MapPropManager_Load(NARC *landDataNARC, const int mapPropFilesSize, UnkStruct_ov5_021EF76C *const param2, MapPropManager *mapPropManager, UnkStruct_ov5_021D3CAC *param4)
|
||||
void MapPropManager_Load(NARC *landDataNARC, const int mapPropFilesSize, AreaDataManager *const areaDataManager, MapPropManager *mapPropManager, UnkStruct_ov5_021D3CAC *param4)
|
||||
{
|
||||
MapPropFile *mapPropFiles = NULL;
|
||||
u32 mapPropFilesCount;
|
||||
|
|
@ -93,24 +92,24 @@ void MapPropManager_Load(NARC *landDataNARC, const int mapPropFilesSize, UnkStru
|
|||
MapProp *loadedProp = &mapPropManager->loadedProps[i];
|
||||
|
||||
if (i < mapPropFilesCount) {
|
||||
loadedProp->id = mapPropFiles[i].id;
|
||||
loadedProp->modelID = mapPropFiles[i].modelID;
|
||||
loadedProp->loaded = TRUE;
|
||||
loadedProp->applyRotation = FALSE;
|
||||
loadedProp->position = mapPropFiles[i].position;
|
||||
loadedProp->rotation = mapPropFiles[i].rotation;
|
||||
loadedProp->scale = mapPropFiles[i].scale;
|
||||
|
||||
MapPropManager_InitRenderObj(loadedProp->id, param2, &loadedProp->renderObj, &loadedProp->model);
|
||||
MapPropManager_InitRenderObj(loadedProp->modelID, areaDataManager, &loadedProp->renderObj, &loadedProp->model);
|
||||
|
||||
if (ov5_021EFAF8(param2, loadedProp->id) == FALSE) {
|
||||
loadedProp->id = 0;
|
||||
if (AreaDataManager_HasMapPropModelFile(areaDataManager, loadedProp->modelID) == FALSE) {
|
||||
loadedProp->modelID = 0;
|
||||
}
|
||||
|
||||
ov5_021D3BE4(loadedProp->id, &loadedProp->renderObj, param4);
|
||||
ov5_021D3BE4(loadedProp->modelID, &loadedProp->renderObj, param4);
|
||||
} else {
|
||||
VecFx32 nullVector = { 0, 0, 0 };
|
||||
|
||||
loadedProp->id = 0;
|
||||
loadedProp->modelID = 0;
|
||||
loadedProp->loaded = FALSE;
|
||||
loadedProp->applyRotation = FALSE;
|
||||
loadedProp->position = nullVector;
|
||||
|
|
@ -124,7 +123,7 @@ void MapPropManager_Load(NARC *landDataNARC, const int mapPropFilesSize, UnkStru
|
|||
}
|
||||
}
|
||||
|
||||
void MapPropManager_Render(const VecFx32 *positionOffset, const UnkStruct_ov5_021EF76C *param1, const BOOL param2, UnkStruct_ov5_021D5894 *const param3, MapPropManager *mapPropManager)
|
||||
void MapPropManager_Render(const VecFx32 *positionOffset, const AreaDataManager *areaDataManager, const BOOL param2, UnkStruct_ov5_021D5894 *const param3, MapPropManager *mapPropManager)
|
||||
{
|
||||
int i;
|
||||
VecFx32 position;
|
||||
|
|
@ -153,19 +152,19 @@ void MapPropManager_Render(const VecFx32 *positionOffset, const UnkStruct_ov5_02
|
|||
position.z += positionOffset->z;
|
||||
|
||||
if (sub_0201CED8(loadedProp->model, &position, &rotationMatrix, &loadedProp->scale)) {
|
||||
const MapPropMaterialShape *propMatShp = ov5_021EFAB4(param1);
|
||||
const MapPropMaterialShape *propMatShp = AreaDataManager_GetMapPropMaterialShape(areaDataManager);
|
||||
u16 propMatShpIDsCount;
|
||||
|
||||
if (param2 == TRUE) {
|
||||
ov5_021D5948(param3, loadedProp->model, (1 | 1 << 1 | 1 << 4 | 1 << 5 | 1 << 8 | 1 << 9 | 1 << 10 | 1 << 11));
|
||||
}
|
||||
|
||||
MapProp_GetMaterialShapeIDsCount(loadedProp->id, propMatShp, &propMatShpIDsCount);
|
||||
MapProp_GetMaterialShapeIDsCount(loadedProp->modelID, propMatShp, &propMatShpIDsCount);
|
||||
|
||||
if (propMatShpIDsCount == 0) {
|
||||
Easy3D_DrawRenderObj(&loadedProp->renderObj, &position, &rotationMatrix, &loadedProp->scale);
|
||||
} else {
|
||||
MapPropManager_RenderUsing1Mat1Shp(loadedProp->model, &position, &rotationMatrix, &loadedProp->scale, propMatShp, loadedProp->id);
|
||||
MapPropManager_RenderUsing1Mat1Shp(loadedProp->model, &position, &rotationMatrix, &loadedProp->scale, propMatShp, loadedProp->modelID);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -194,7 +193,7 @@ void MapProp_SetHidden(MapProp *mapProp, const BOOL hidden)
|
|||
|
||||
int MapProp_GetId(const MapProp *mapProp)
|
||||
{
|
||||
return mapProp->id;
|
||||
return mapProp->modelID;
|
||||
}
|
||||
|
||||
NNSG3dRenderObj *MapProp_GetRenderObj(const MapProp *mapProp)
|
||||
|
|
@ -212,12 +211,12 @@ MapProp *MapPropManager_GetLoadedProp(MapPropManager *mapPropManager, const u8 i
|
|||
return &mapPropManager->loadedProps[index];
|
||||
}
|
||||
|
||||
MapProp *MapPropManager_FindLoadedPropById(MapPropManager *mapPropManager, const int id)
|
||||
MapProp *MapPropManager_FindLoadedPropByModelID(MapPropManager *mapPropManager, const int modelID)
|
||||
{
|
||||
for (int i = 0; i < MAX_LOADED_MAP_PROPS; i++) {
|
||||
MapProp *loadedProp = &mapPropManager->loadedProps[i];
|
||||
|
||||
if (loadedProp->id == id) {
|
||||
if (loadedProp->modelID == modelID) {
|
||||
return loadedProp;
|
||||
}
|
||||
}
|
||||
|
|
@ -234,15 +233,15 @@ MapProp *MapPropManager_GetLoadedPropSafely(MapPropManager *mapPropManager, cons
|
|||
return loadedProp;
|
||||
}
|
||||
|
||||
static void MapPropManager_InitRenderObj(const int loadedPropId, UnkStruct_ov5_021EF76C *const param1, NNSG3dRenderObj *renderObj, NNSG3dResMdl **resMdl)
|
||||
static void MapPropManager_InitRenderObj(const int modelID, AreaDataManager *const areaDataManager, NNSG3dRenderObj *renderObj, NNSG3dResMdl **model)
|
||||
{
|
||||
NNSG3dResFileHeader **nsbmdFile = ov5_021EF9E8(loadedPropId, param1);
|
||||
NNSG3dResFileHeader **modelFile = AreaDataManager_GetMapPropModelFile(modelID, areaDataManager);
|
||||
|
||||
*resMdl = NNS_G3dGetMdlByIdx(NNS_G3dGetMdlSet(*nsbmdFile), 0);
|
||||
NNS_G3dRenderObjInit(renderObj, *resMdl);
|
||||
*model = NNS_G3dGetMdlByIdx(NNS_G3dGetMdlSet(*modelFile), 0);
|
||||
NNS_G3dRenderObjInit(renderObj, *model);
|
||||
}
|
||||
|
||||
static void MapPropManager_RenderUsing1Mat1Shp(const NNSG3dResMdl *resMdl, VecFx32 *position, MtxFx33 *rotation, VecFx32 *scale, const MapPropMaterialShape *propMatShp, const int mapPropID)
|
||||
static void MapPropManager_RenderUsing1Mat1Shp(const NNSG3dResMdl *model, VecFx32 *position, MtxFx33 *rotation, VecFx32 *scale, const MapPropMaterialShape *propMatShp, const int modelID)
|
||||
{
|
||||
u8 i;
|
||||
u16 propMatShpIDsCount;
|
||||
|
|
@ -256,7 +255,7 @@ static void MapPropManager_RenderUsing1Mat1Shp(const NNSG3dResMdl *resMdl, VecFx
|
|||
NNS_G3dGlbSetBaseScale(scale);
|
||||
NNS_G3dGlbFlush();
|
||||
|
||||
MapProp_GetMaterialShapeIDsLocator(mapPropID, propMatShp, &propMatShpIDsCount, &propMatShpIDsIndex);
|
||||
MapProp_GetMaterialShapeIDsLocator(modelID, propMatShp, &propMatShpIDsCount, &propMatShpIDsIndex);
|
||||
|
||||
propMatShpIDs = MapPropMaterialShape_GetMaterialShapeIDsAt(propMatShpIDsIndex, propMatShp);
|
||||
materialID = 0xFF;
|
||||
|
|
@ -270,11 +269,11 @@ static void MapPropManager_RenderUsing1Mat1Shp(const NNSG3dResMdl *resMdl, VecFx
|
|||
sendMaterial = FALSE;
|
||||
}
|
||||
|
||||
NNS_G3dDraw1Mat1Shp(resMdl, materialID, propMatShpIDs[i].shapeID, sendMaterial);
|
||||
NNS_G3dDraw1Mat1Shp(model, materialID, propMatShpIDs[i].shapeID, sendMaterial);
|
||||
}
|
||||
}
|
||||
|
||||
u8 MapPropManager_LoadOne(MapPropManager *mapPropManager, UnkStruct_ov5_021EF76C *const param1, const int id, const VecFx32 *position, const VecFx32 *rotation, UnkStruct_ov5_021D3CAC *param5)
|
||||
u8 MapPropManager_LoadOne(MapPropManager *mapPropManager, AreaDataManager *const areaDataManager, const int modelID, const VecFx32 *position, const VecFx32 *rotation, UnkStruct_ov5_021D3CAC *param5)
|
||||
{
|
||||
u8 i;
|
||||
VecFx32 scale = { FX32_ONE, FX32_ONE, FX32_ONE };
|
||||
|
|
@ -294,10 +293,10 @@ u8 MapPropManager_LoadOne(MapPropManager *mapPropManager, UnkStruct_ov5_021EF76C
|
|||
}
|
||||
|
||||
loadedProp->scale = scale;
|
||||
loadedProp->id = id;
|
||||
loadedProp->modelID = modelID;
|
||||
|
||||
MapPropManager_InitRenderObj(loadedProp->id, param1, &loadedProp->renderObj, &loadedProp->model);
|
||||
ov5_021D3B24(loadedProp->id, 0, FALSE, &loadedProp->renderObj, param5);
|
||||
MapPropManager_InitRenderObj(loadedProp->modelID, areaDataManager, &loadedProp->renderObj, &loadedProp->model);
|
||||
ov5_021D3B24(loadedProp->modelID, 0, FALSE, &loadedProp->renderObj, param5);
|
||||
|
||||
return i;
|
||||
}
|
||||
|
|
@ -307,7 +306,7 @@ u8 MapPropManager_LoadOne(MapPropManager *mapPropManager, UnkStruct_ov5_021EF76C
|
|||
return MAX_LOADED_MAP_PROPS;
|
||||
}
|
||||
|
||||
void MapPropManager_Render2(MapPropManager *mapPropManager, UnkStruct_ov5_021EF76C *const param1)
|
||||
void MapPropManager_Render2(MapPropManager *mapPropManager, AreaDataManager *const areaDataManager)
|
||||
{
|
||||
u8 i;
|
||||
MtxFx33 rotationMatrix = {
|
||||
|
|
@ -330,10 +329,10 @@ void MapPropManager_Render2(MapPropManager *mapPropManager, UnkStruct_ov5_021EF7
|
|||
continue;
|
||||
}
|
||||
|
||||
const MapPropMaterialShape *propMatShp = ov5_021EFAB4(param1);
|
||||
const MapPropMaterialShape *propMatShp = AreaDataManager_GetMapPropMaterialShape(areaDataManager);
|
||||
u16 propMatShpIDsCount;
|
||||
|
||||
MapProp_GetMaterialShapeIDsCount(loadedProp->id, propMatShp, &propMatShpIDsCount);
|
||||
MapProp_GetMaterialShapeIDsCount(loadedProp->modelID, propMatShp, &propMatShpIDsCount);
|
||||
|
||||
if (loadedProp->applyRotation) {
|
||||
MTX_Rot33Vec(&rotationMatrix, &loadedProp->rotation);
|
||||
|
|
@ -342,7 +341,7 @@ void MapPropManager_Render2(MapPropManager *mapPropManager, UnkStruct_ov5_021EF7
|
|||
if (propMatShpIDsCount == 0) {
|
||||
Easy3D_DrawRenderObj(&loadedProp->renderObj, &loadedProp->position, &rotationMatrix, &loadedProp->scale);
|
||||
} else {
|
||||
MapPropManager_RenderUsing1Mat1Shp(loadedProp->model, &loadedProp->position, &rotationMatrix, &loadedProp->scale, propMatShp, loadedProp->id);
|
||||
MapPropManager_RenderUsing1Mat1Shp(loadedProp->model, &loadedProp->position, &rotationMatrix, &loadedProp->scale, propMatShp, loadedProp->modelID);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -62,15 +62,15 @@ void MapPropMaterialShape_Free(MapPropMaterialShape *propMatShp)
|
|||
Heap_FreeToHeap(propMatShp);
|
||||
}
|
||||
|
||||
void MapProp_GetMaterialShapeIDsCount(const int mapPropID, const MapPropMaterialShape *propMatShp, u16 *idsCount)
|
||||
void MapProp_GetMaterialShapeIDsCount(const int modelID, const MapPropMaterialShape *propMatShp, u16 *idsCount)
|
||||
{
|
||||
*idsCount = propMatShp->idsLocators[mapPropID].idsCount;
|
||||
*idsCount = propMatShp->idsLocators[modelID].idsCount;
|
||||
}
|
||||
|
||||
void MapProp_GetMaterialShapeIDsLocator(const int mapPropID, const MapPropMaterialShape *propMatShp, u16 *idsCount, u16 *idsIndex)
|
||||
void MapProp_GetMaterialShapeIDsLocator(const int modelID, const MapPropMaterialShape *propMatShp, u16 *idsCount, u16 *idsIndex)
|
||||
{
|
||||
*idsCount = propMatShp->idsLocators[mapPropID].idsCount;
|
||||
*idsIndex = propMatShp->idsLocators[mapPropID].idsIndex;
|
||||
*idsCount = propMatShp->idsLocators[modelID].idsCount;
|
||||
*idsIndex = propMatShp->idsLocators[modelID].idsIndex;
|
||||
}
|
||||
|
||||
MapPropMaterialShapeIDs const *MapPropMaterialShape_GetMaterialShapeIDsAt(const u16 index, const MapPropMaterialShape *propMatShp)
|
||||
|
|
|
|||
|
|
@ -7,10 +7,10 @@
|
|||
#include "struct_defs/struct_02055130.h"
|
||||
|
||||
#include "field/field_system.h"
|
||||
#include "overlay005/area_data.h"
|
||||
#include "overlay005/fieldmap.h"
|
||||
#include "overlay005/map_prop.h"
|
||||
#include "overlay005/ov5_021D37AC.h"
|
||||
#include "overlay005/ov5_021EF75C.h"
|
||||
#include "overlay005/struct_ov5_021D3CE4_decl.h"
|
||||
|
||||
#include "camera.h"
|
||||
|
|
@ -117,7 +117,7 @@ BOOL ov5_021D433C(FieldSystem *fieldSystem, UnkStruct_ov5_021D432C *param1)
|
|||
|
||||
v7 = ov5_021D3F94(fieldSystem->unk_50, v4);
|
||||
param1->unk_1E = v7;
|
||||
v8 = ov5_021EFAA0(fieldSystem->unk_30);
|
||||
v8 = AreaDataManager_GetMapPropTexture(fieldSystem->areaDataManager);
|
||||
|
||||
ov5_021D41C8(fieldSystem->unk_50, fieldSystem->unk_54, 1, v4, MapProp_GetRenderObj(v2), MapProp_GetModel(v2), v8, v7, 1, 0);
|
||||
} else {
|
||||
|
|
@ -274,7 +274,7 @@ BOOL ov5_021D453C(FieldSystem *fieldSystem, UnkStruct_ov5_021D432C *param1)
|
|||
|
||||
v7 = ov5_021D3F94(fieldSystem->unk_50, v4);
|
||||
param1->unk_1E = v7;
|
||||
v8 = ov5_021EFAA0(fieldSystem->unk_30);
|
||||
v8 = AreaDataManager_GetMapPropTexture(fieldSystem->areaDataManager);
|
||||
|
||||
ov5_021D41C8(fieldSystem->unk_50, fieldSystem->unk_54, 1, v4, MapProp_GetRenderObj(v2), MapProp_GetModel(v2), v8, v7, 1, 0);
|
||||
} else {
|
||||
|
|
@ -501,7 +501,7 @@ BOOL ov5_021D4858(FieldSystem *fieldSystem, UnkStruct_ov5_021D432C *param1, cons
|
|||
u8 v6;
|
||||
NNSG3dResTex *v7;
|
||||
|
||||
v7 = ov5_021EFAA0(fieldSystem->unk_30);
|
||||
v7 = AreaDataManager_GetMapPropTexture(fieldSystem->areaDataManager);
|
||||
ov5_021D41C8(fieldSystem->unk_50, fieldSystem->unk_54, 2, v4, MapProp_GetRenderObj(v2), MapProp_GetModel(v2), v7, 1, 1, 1);
|
||||
} else {
|
||||
GF_ASSERT(FALSE);
|
||||
|
|
@ -613,7 +613,7 @@ BOOL ov5_021D4A24(FieldSystem *fieldSystem, UnkStruct_ov5_021D432C *param1, cons
|
|||
u8 v6;
|
||||
NNSG3dResTex *v7;
|
||||
|
||||
v7 = ov5_021EFAA0(fieldSystem->unk_30);
|
||||
v7 = AreaDataManager_GetMapPropTexture(fieldSystem->areaDataManager);
|
||||
ov5_021D41C8(fieldSystem->unk_50, fieldSystem->unk_54, 2, v4, MapProp_GetRenderObj(v2), MapProp_GetModel(v2), v7, 1, 1, 0);
|
||||
} else {
|
||||
GF_ASSERT(FALSE);
|
||||
|
|
@ -739,7 +739,7 @@ void ov5_021D4BF4(FieldSystem *fieldSystem, const int param1, const int param2,
|
|||
NNSG3dResTex *v7;
|
||||
|
||||
v6 = ov5_021D3F94(fieldSystem->unk_50, v3);
|
||||
v7 = ov5_021EFAA0(fieldSystem->unk_30);
|
||||
v7 = AreaDataManager_GetMapPropTexture(fieldSystem->areaDataManager);
|
||||
|
||||
ov5_021D41C8(fieldSystem->unk_50, fieldSystem->unk_54, param3, v3, MapProp_GetRenderObj(v1), MapProp_GetModel(v1), v7, v6, 1, 0);
|
||||
} else {
|
||||
|
|
|
|||
|
|
@ -3,6 +3,8 @@
|
|||
#include <nitro.h>
|
||||
#include <string.h>
|
||||
|
||||
#include "constants/narc.h"
|
||||
|
||||
#include "overlay005/ov5_021D5878.h"
|
||||
#include "overlay005/struct_ov5_021D52F4.h"
|
||||
#include "overlay005/struct_ov5_021D5894.h"
|
||||
|
|
@ -147,7 +149,7 @@ static u32 ov5_021D53D4(u32 param0, UnkStruct_ov5_021D52F4 **param1)
|
|||
char v7[256];
|
||||
UnkStruct_ov5_021D52F4 *v8;
|
||||
|
||||
v4 = LoadMemberFromNARC(176, param0, 0, 4, 0);
|
||||
v4 = LoadMemberFromNARC(NARC_INDEX_DATA__AREALIGHT, param0, 0, 4, 0);
|
||||
v3 = v4;
|
||||
v2 = 0;
|
||||
|
||||
|
|
|
|||
|
|
@ -6,16 +6,15 @@
|
|||
#include "constants/heap.h"
|
||||
|
||||
#include "field/field_system.h"
|
||||
#include "overlay005/area_data.h"
|
||||
#include "overlay005/bdhc.h"
|
||||
#include "overlay005/funcptr_ov5_021E9630.h"
|
||||
#include "overlay005/map_prop.h"
|
||||
#include "overlay005/ov5_021D521C.h"
|
||||
#include "overlay005/ov5_021EEAC8.h"
|
||||
#include "overlay005/ov5_021EF75C.h"
|
||||
#include "overlay005/struct_ov5_021D3CAC_decl.h"
|
||||
#include "overlay005/struct_ov5_021D5894.h"
|
||||
#include "overlay005/struct_ov5_021EEB48_decl.h"
|
||||
#include "overlay005/struct_ov5_021EF76C_decl.h"
|
||||
|
||||
#include "easy3d.h"
|
||||
#include "heap.h"
|
||||
|
|
@ -54,7 +53,7 @@ typedef struct {
|
|||
} UnkStruct_ov5_021E7814;
|
||||
|
||||
typedef void (*UnkFuncPtr_ov5_021FAE98)(UnkStruct_ov5_021E8F60 *, const int, const int, const int, const int, const int);
|
||||
typedef void (*UnkFuncPtr_ov5_021FAE98_1)(const u8, UnkStruct_ov5_021EF76C *const, const MapMatrix *, const int, const int, UnkStruct_ov5_021E8F60 *, UnkStruct_ov5_021E7814 *);
|
||||
typedef void (*UnkFuncPtr_ov5_021FAE98_1)(const u8, AreaDataManager *const, const MapMatrix *, const int, const int, UnkStruct_ov5_021E8F60 *, UnkStruct_ov5_021E7814 *);
|
||||
|
||||
typedef struct UnkStruct_ov5_021FAE98_t {
|
||||
UnkFuncPtr_ov5_021FAE98 unk_00;
|
||||
|
|
@ -100,7 +99,7 @@ typedef struct UnkStruct_ov5_021E8F60_t {
|
|||
u8 unk_A1;
|
||||
BOOL unk_A4;
|
||||
int unk_A8;
|
||||
UnkStruct_ov5_021EF76C *unk_AC;
|
||||
AreaDataManager *unk_AC;
|
||||
MapMatrix *unk_B0;
|
||||
int unk_B4;
|
||||
int unk_B8;
|
||||
|
|
@ -150,11 +149,11 @@ static void ov5_021E7AC4(UnkStruct_ov5_021E8F60 *param0);
|
|||
static void ov5_021E77E4(UnkStruct_ov5_021E8F60 *param0, const u8 param1);
|
||||
static BOOL ov5_021E80D0(UnkStruct_ov5_021E8F60 *param0, const int param1, const int param2, const u8 param3, const u8 param4, const u8 param5, const u8 param6);
|
||||
static void ov5_021E7BAC(NARC *param0, const int param1, UnkStruct_ov5_021E7BAC *param2);
|
||||
static void ov5_021E7C00(const u8 param0, UnkStruct_ov5_021EF76C *const param1, const MapMatrix *param2, const int param3, const int param4, UnkStruct_ov5_021E8F60 *param5, UnkStruct_ov5_021E7814 *param6);
|
||||
static void ov5_021E7CD4(const u8 param0, UnkStruct_ov5_021EF76C *const param1, const MapMatrix *param2, const int param3, const int param4, UnkStruct_ov5_021E8F60 *param5, UnkStruct_ov5_021E7814 *param6);
|
||||
static void ov5_021E7E28(const int param0, const u8 param1, UnkStruct_ov5_021EF76C *const param2, const MapMatrix *param3, const int param4, const int param5, const BOOL param6, const UnkStruct_ov5_021E8F60 *param7);
|
||||
static void ov5_021E7F1C(const int param0, const u8 param1, UnkStruct_ov5_021EF76C *const param2, const MapMatrix *param3, const int param4, const int param5, const BOOL param6, UnkStruct_ov5_021E8F60 *param7);
|
||||
static void ov5_021E7FF0(const int param0, const u8 param1, UnkStruct_ov5_021EF76C *const param2, const MapMatrix *param3, const int param4, const int param5, const BOOL param6, UnkStruct_ov5_021E8F60 *param7);
|
||||
static void ov5_021E7C00(const u8 param0, AreaDataManager *const param1, const MapMatrix *param2, const int param3, const int param4, UnkStruct_ov5_021E8F60 *param5, UnkStruct_ov5_021E7814 *param6);
|
||||
static void ov5_021E7CD4(const u8 param0, AreaDataManager *const param1, const MapMatrix *param2, const int param3, const int param4, UnkStruct_ov5_021E8F60 *param5, UnkStruct_ov5_021E7814 *param6);
|
||||
static void ov5_021E7E28(const int param0, const u8 param1, AreaDataManager *const param2, const MapMatrix *param3, const int param4, const int param5, const BOOL param6, const UnkStruct_ov5_021E8F60 *param7);
|
||||
static void ov5_021E7F1C(const int param0, const u8 param1, AreaDataManager *const param2, const MapMatrix *param3, const int param4, const int param5, const BOOL param6, UnkStruct_ov5_021E8F60 *param7);
|
||||
static void ov5_021E7FF0(const int param0, const u8 param1, AreaDataManager *const param2, const MapMatrix *param3, const int param4, const int param5, const BOOL param6, UnkStruct_ov5_021E8F60 *param7);
|
||||
static void ov5_021E86A0(const int param0, const u8 param1, UnkStruct_ov5_021E8F60 *param2);
|
||||
static void ov5_021E8668(const u8 param0, const u8 param1, const u8 param2, const u8 param3, UnkStruct_ov5_021E8F60 *param4);
|
||||
static void ov5_021E8614(const u8 param0, UnkStruct_ov5_021E8F60 *param1);
|
||||
|
|
@ -174,7 +173,7 @@ static void ov5_021E8D50(UnkStruct_ov5_021E8F60 *param0);
|
|||
static void ov5_021E8F90(const int param0, const int param1, const int param2, const int param3, UnkStruct_ov5_021E8F60 *param4);
|
||||
static void ov5_021E901C(const int param0, const int param1, const MapMatrix *param2, VecFx32 *param3);
|
||||
static void ov5_021E9A14(UnkStruct_ov5_021E8F60 *param0, const int param1, const int param2, const int param3, const int param4, const int param5);
|
||||
static void ov5_021E9B70(const int param0, const u8 param1, const UnkStruct_ov5_021EF76C *param2, const MapMatrix *param3, const int param4, const int param5, const BOOL param6, UnkStruct_ov5_021E8F60 *param7);
|
||||
static void ov5_021E9B70(const int param0, const u8 param1, const AreaDataManager *param2, const MapMatrix *param3, const int param4, const int param5, const BOOL param6, UnkStruct_ov5_021E8F60 *param7);
|
||||
static void ov5_021E9C40(const u8 param0, const UnkStruct_ov5_021E8F60 *param1, const UnkStruct_ov5_021D5894 *param2);
|
||||
|
||||
static const UnkStruct_ov5_021FAE98 Unk_ov5_021FAE98 = {
|
||||
|
|
@ -461,7 +460,7 @@ static void ov5_021E7BAC(NARC *param0, const int param1, UnkStruct_ov5_021E7BAC
|
|||
Heap_FreeToHeap(v0);
|
||||
}
|
||||
|
||||
static void ov5_021E7C00(const u8 param0, UnkStruct_ov5_021EF76C *const param1, const MapMatrix *param2, const int param3, const int param4, UnkStruct_ov5_021E8F60 *param5, UnkStruct_ov5_021E7814 *param6)
|
||||
static void ov5_021E7C00(const u8 param0, AreaDataManager *const param1, const MapMatrix *param2, const int param3, const int param4, UnkStruct_ov5_021E8F60 *param5, UnkStruct_ov5_021E7814 *param6)
|
||||
{
|
||||
int v0;
|
||||
u8 v1;
|
||||
|
|
@ -495,7 +494,7 @@ static void ov5_021E7C00(const u8 param0, UnkStruct_ov5_021EF76C *const param1,
|
|||
|
||||
{
|
||||
param6->unk_10.unk_00++;
|
||||
param6->unk_08 = ov5_021E976C(param5->unk_EC, v3.unk_04, ¶m6->unk_00[param0]->unk_800, &(param6->unk_00[param0]->unk_854), ov5_021EFA8C(param1), &(param6->unk_00[param0]->unk_864), ¶m6->unk_10.unk_00);
|
||||
param6->unk_08 = ov5_021E976C(param5->unk_EC, v3.unk_04, ¶m6->unk_00[param0]->unk_800, &(param6->unk_00[param0]->unk_854), AreaDataManager_GetMapTexture(param1), &(param6->unk_00[param0]->unk_864), ¶m6->unk_10.unk_00);
|
||||
}
|
||||
|
||||
{
|
||||
|
|
@ -504,7 +503,7 @@ static void ov5_021E7C00(const u8 param0, UnkStruct_ov5_021EF76C *const param1,
|
|||
}
|
||||
}
|
||||
|
||||
static void ov5_021E7CD4(const u8 param0, UnkStruct_ov5_021EF76C *const param1, const MapMatrix *param2, const int param3, const int param4, UnkStruct_ov5_021E8F60 *param5, UnkStruct_ov5_021E7814 *param6)
|
||||
static void ov5_021E7CD4(const u8 param0, AreaDataManager *const param1, const MapMatrix *param2, const int param3, const int param4, UnkStruct_ov5_021E8F60 *param5, UnkStruct_ov5_021E7814 *param6)
|
||||
{
|
||||
int v0;
|
||||
u8 v1;
|
||||
|
|
@ -536,11 +535,11 @@ static void ov5_021E7CD4(const u8 param0, UnkStruct_ov5_021EF76C *const param1,
|
|||
|
||||
{
|
||||
param6->unk_10.unk_00++;
|
||||
param6->unk_08 = ov5_021E976C(param5->unk_EC, v3.unk_04, ¶m6->unk_00[param0]->unk_800, &(param6->unk_00[param0]->unk_854), ov5_021EFA8C(param1), &(param6->unk_00[param0]->unk_864), ¶m6->unk_10.unk_00);
|
||||
param6->unk_08 = ov5_021E976C(param5->unk_EC, v3.unk_04, ¶m6->unk_00[param0]->unk_800, &(param6->unk_00[param0]->unk_854), AreaDataManager_GetMapTexture(param1), &(param6->unk_00[param0]->unk_864), ¶m6->unk_10.unk_00);
|
||||
}
|
||||
}
|
||||
|
||||
static void ov5_021E7D98(const u8 param0, const UnkStruct_ov5_021EF76C *param1, const MapMatrix *param2, const int param3, const int param4, UnkStruct_ov5_021E8F60 *param5, UnkStruct_ov5_021E7814 *param6)
|
||||
static void ov5_021E7D98(const u8 param0, const AreaDataManager *param1, const MapMatrix *param2, const int param3, const int param4, UnkStruct_ov5_021E8F60 *param5, UnkStruct_ov5_021E7814 *param6)
|
||||
{
|
||||
int v0;
|
||||
u8 v1;
|
||||
|
|
@ -566,11 +565,11 @@ static void ov5_021E7D98(const u8 param0, const UnkStruct_ov5_021EF76C *param1,
|
|||
|
||||
{
|
||||
param6->unk_10.unk_00++;
|
||||
param6->unk_08 = ov5_021E976C(param5->unk_EC, v3.unk_04, ¶m6->unk_00[param0]->unk_800, &(param6->unk_00[param0]->unk_854), ov5_021EFA8C(param1), &(param6->unk_00[param0]->unk_864), ¶m6->unk_10.unk_00);
|
||||
param6->unk_08 = ov5_021E976C(param5->unk_EC, v3.unk_04, ¶m6->unk_00[param0]->unk_800, &(param6->unk_00[param0]->unk_854), AreaDataManager_GetMapTexture(param1), &(param6->unk_00[param0]->unk_864), ¶m6->unk_10.unk_00);
|
||||
}
|
||||
}
|
||||
|
||||
static void ov5_021E7E28(const int param0, const u8 param1, UnkStruct_ov5_021EF76C *const param2, const MapMatrix *param3, const int param4, const int param5, const BOOL param6, const UnkStruct_ov5_021E8F60 *param7)
|
||||
static void ov5_021E7E28(const int param0, const u8 param1, AreaDataManager *const param2, const MapMatrix *param3, const int param4, const int param5, const BOOL param6, const UnkStruct_ov5_021E8F60 *param7)
|
||||
{
|
||||
int v0;
|
||||
NNSG3dResMdl *v1;
|
||||
|
|
@ -600,7 +599,7 @@ static void ov5_021E7E28(const int param0, const u8 param1, UnkStruct_ov5_021EF7
|
|||
}
|
||||
|
||||
{
|
||||
v1 = ov5_021E97AC(param7->unk_EC, v2.unk_04, ¶m7->unk_84[param1]->unk_800, &(param7->unk_84[param1]->unk_854), ov5_021EFA8C(param2));
|
||||
v1 = ov5_021E97AC(param7->unk_EC, v2.unk_04, ¶m7->unk_84[param1]->unk_800, &(param7->unk_84[param1]->unk_854), AreaDataManager_GetMapTexture(param2));
|
||||
|
||||
if (param6 == 1) {
|
||||
ov5_021D53A4(v1);
|
||||
|
|
@ -620,7 +619,7 @@ static void ov5_021E7E28(const int param0, const u8 param1, UnkStruct_ov5_021EF7
|
|||
}
|
||||
}
|
||||
|
||||
static void ov5_021E7F1C(const int param0, const u8 param1, UnkStruct_ov5_021EF76C *const param2, const MapMatrix *param3, const int param4, const int param5, const BOOL param6, UnkStruct_ov5_021E8F60 *param7)
|
||||
static void ov5_021E7F1C(const int param0, const u8 param1, AreaDataManager *const param2, const MapMatrix *param3, const int param4, const int param5, const BOOL param6, UnkStruct_ov5_021E8F60 *param7)
|
||||
{
|
||||
int v0;
|
||||
UnkStruct_ov5_021E7BAC v1;
|
||||
|
|
@ -648,7 +647,7 @@ static void ov5_021E7F1C(const int param0, const u8 param1, UnkStruct_ov5_021EF7
|
|||
}
|
||||
|
||||
{
|
||||
v2 = ov5_021E97AC(param7->unk_EC, v1.unk_04, ¶m7->unk_84[param1]->unk_800, &(param7->unk_84[param1]->unk_854), ov5_021EFA8C(param2));
|
||||
v2 = ov5_021E97AC(param7->unk_EC, v1.unk_04, ¶m7->unk_84[param1]->unk_800, &(param7->unk_84[param1]->unk_854), AreaDataManager_GetMapTexture(param2));
|
||||
|
||||
if (param6 == 1) {
|
||||
ov5_021D53A4(v2);
|
||||
|
|
@ -660,7 +659,7 @@ static void ov5_021E7F1C(const int param0, const u8 param1, UnkStruct_ov5_021EF7
|
|||
param7->unk_84[param1]->unk_860 = param0;
|
||||
}
|
||||
|
||||
static void ov5_021E7FF0(const int param0, const u8 param1, UnkStruct_ov5_021EF76C *const param2, const MapMatrix *param3, const int param4, const int param5, const BOOL param6, UnkStruct_ov5_021E8F60 *param7)
|
||||
static void ov5_021E7FF0(const int param0, const u8 param1, AreaDataManager *const param2, const MapMatrix *param3, const int param4, const int param5, const BOOL param6, UnkStruct_ov5_021E8F60 *param7)
|
||||
{
|
||||
int v0;
|
||||
UnkStruct_ov5_021E7BAC v1;
|
||||
|
|
@ -849,7 +848,7 @@ void ov5_021E8188(FieldSystem *fieldSystem, UnkStruct_ov5_021E8F60 *param1)
|
|||
NNSG3dResMdlSet *v5 = NNS_G3dGetMdlSet(v1->unk_00[v1->unk_22 - 1]->unk_854);
|
||||
NNSG3dResMdl *v6 = NNS_G3dGetMdlByIdx(v5, 0);
|
||||
|
||||
if (ov5_021EFAC0(param1->unk_AC) == 1) {
|
||||
if (AreaDataManager_IsOutdoorsLighting(param1->unk_AC) == 1) {
|
||||
ov5_021D53A4(v6);
|
||||
}
|
||||
}
|
||||
|
|
@ -1153,7 +1152,7 @@ static void ov5_021E89D0(const u8 param0, const UnkStruct_ov5_021E8F60 *param1,
|
|||
|
||||
if (param1->unk_84[param0]->unk_864 == 1) {
|
||||
if (param1->unk_84[param0]->unk_868 != NULL) {
|
||||
MapPropManager_Render(&v0, param1->unk_AC, ov5_021EFAC0(param1->unk_AC), param2, param1->unk_84[param0]->unk_868);
|
||||
MapPropManager_Render(&v0, param1->unk_AC, AreaDataManager_IsOutdoorsLighting(param1->unk_AC), param2, param1->unk_84[param0]->unk_868);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1444,7 +1443,7 @@ static void ov5_021E8E28(UnkStruct_ov5_021E8F60 *param0, const int param1, const
|
|||
param0->unk_84[v0]->bdhc = BDHC_New();
|
||||
|
||||
BDHC_MarkNotLoaded(param0->unk_84[v0]->bdhc);
|
||||
ov5_021E7E28(v1[v0], v0, param0->unk_AC, param0->unk_B0, param0->unk_B4, param0->unk_B8, ov5_021EFAC0(param0->unk_AC), param0);
|
||||
ov5_021E7E28(v1[v0], v0, param0->unk_AC, param0->unk_B0, param0->unk_B4, param0->unk_B8, AreaDataManager_IsOutdoorsLighting(param0->unk_AC), param0);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -1458,7 +1457,7 @@ static void ov5_021E8ECC(UnkStruct_ov5_021E8F60 *param0, const int param1, const
|
|||
|
||||
for (v0 = 0; v0 < 4; v0++) {
|
||||
param0->unk_84[v0]->bdhc = NULL;
|
||||
ov5_021E7F1C(v1[v0], v0, param0->unk_AC, param0->unk_B0, param0->unk_B4, param0->unk_B8, ov5_021EFAC0(param0->unk_AC), param0);
|
||||
ov5_021E7F1C(v1[v0], v0, param0->unk_AC, param0->unk_B0, param0->unk_B4, param0->unk_B8, AreaDataManager_IsOutdoorsLighting(param0->unk_AC), param0);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -1532,7 +1531,7 @@ static void ov5_021E901C(const int param0, const int param1, const MapMatrix *pa
|
|||
param3->z += v1 * 32 * 16 * FX32_ONE;
|
||||
}
|
||||
|
||||
UnkStruct_ov5_021E8F60 *ov5_021E9084(MapMatrix *param0, UnkStruct_ov5_021EF76C *param1, UnkStruct_ov5_021D3CAC *param2, const int param3)
|
||||
UnkStruct_ov5_021E8F60 *ov5_021E9084(MapMatrix *param0, AreaDataManager *param1, UnkStruct_ov5_021D3CAC *param2, const int param3)
|
||||
{
|
||||
UnkStruct_ov5_021E8F60 *v0;
|
||||
BOOL v1;
|
||||
|
|
@ -1979,7 +1978,7 @@ NARC *ov5_021E9828(UnkStruct_ov5_021E8F60 *param0)
|
|||
return param0->unk_EC;
|
||||
}
|
||||
|
||||
UnkStruct_ov5_021E8F60 *ov5_021E9830(MapMatrix *param0, UnkStruct_ov5_021EF76C *param1, NARC *param2)
|
||||
UnkStruct_ov5_021E8F60 *ov5_021E9830(MapMatrix *param0, AreaDataManager *param1, NARC *param2)
|
||||
{
|
||||
UnkStruct_ov5_021E8F60 *v0;
|
||||
BOOL v1;
|
||||
|
|
@ -2010,7 +2009,7 @@ UnkStruct_ov5_021E8F60 *ov5_021E9830(MapMatrix *param0, UnkStruct_ov5_021EF76C *
|
|||
return v0;
|
||||
}
|
||||
|
||||
void ov5_021E98C8(UnkStruct_ov5_021E8F60 *param0, MapMatrix *param1, UnkStruct_ov5_021EF76C *param2, NARC *param3)
|
||||
void ov5_021E98C8(UnkStruct_ov5_021E8F60 *param0, MapMatrix *param1, AreaDataManager *param2, NARC *param3)
|
||||
{
|
||||
BOOL v0;
|
||||
|
||||
|
|
@ -2086,7 +2085,7 @@ static void ov5_021E9A14(UnkStruct_ov5_021E8F60 *param0, const int param1, const
|
|||
|
||||
for (v0 = 0; v0 < 4; v0++) {
|
||||
param0->unk_84[v0]->bdhc = NULL;
|
||||
ov5_021E9B70(v1[v0], v0, param0->unk_AC, param0->unk_B0, param0->unk_B4, param0->unk_B8, ov5_021EFAC0(param0->unk_AC), param0);
|
||||
ov5_021E9B70(v1[v0], v0, param0->unk_AC, param0->unk_B0, param0->unk_B4, param0->unk_B8, AreaDataManager_IsOutdoorsLighting(param0->unk_AC), param0);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -2105,11 +2104,11 @@ void ov5_021E9AAC(UnkStruct_ov5_021E8F60 *param0, const int param1, const int pa
|
|||
void ov5_021E9B10(UnkStruct_ov5_021E8F60 *param0, int param1, int param2)
|
||||
{
|
||||
param0->unk_84[param1]->bdhc = NULL;
|
||||
ov5_021E9B70(param2, param1, param0->unk_AC, param0->unk_B0, param0->unk_B4, param0->unk_B8, ov5_021EFAC0(param0->unk_AC), param0);
|
||||
ov5_021E9B70(param2, param1, param0->unk_AC, param0->unk_B0, param0->unk_B4, param0->unk_B8, AreaDataManager_IsOutdoorsLighting(param0->unk_AC), param0);
|
||||
param0->unk_84[param1]->unk_864 = 0;
|
||||
}
|
||||
|
||||
static void ov5_021E9B70(const int param0, const u8 param1, const UnkStruct_ov5_021EF76C *param2, const MapMatrix *param3, const int param4, const int param5, const BOOL param6, UnkStruct_ov5_021E8F60 *param7)
|
||||
static void ov5_021E9B70(const int param0, const u8 param1, const AreaDataManager *param2, const MapMatrix *param3, const int param4, const int param5, const BOOL param6, UnkStruct_ov5_021E8F60 *param7)
|
||||
{
|
||||
int v0, v1;
|
||||
UnkStruct_ov5_021E7BAC v2;
|
||||
|
|
@ -2126,7 +2125,7 @@ static void ov5_021E9B70(const int param0, const u8 param1, const UnkStruct_ov5_
|
|||
NARC_Seek(param7->unk_EC, v1);
|
||||
|
||||
DC_FlushRange((void *)param7->unk_84[param1]->unk_854, v2.unk_04);
|
||||
v3 = ov5_021E97AC(param7->unk_EC, v2.unk_04, ¶m7->unk_84[param1]->unk_800, &(param7->unk_84[param1]->unk_854), ov5_021EFA8C(param2));
|
||||
v3 = ov5_021E97AC(param7->unk_EC, v2.unk_04, ¶m7->unk_84[param1]->unk_800, &(param7->unk_84[param1]->unk_854), AreaDataManager_GetMapTexture(param2));
|
||||
|
||||
if (param6 == 1) {
|
||||
ov5_021D53A4(v3);
|
||||
|
|
@ -2185,7 +2184,7 @@ void ov5_021E9CD8(UnkStruct_ov5_021E8F60 *param0)
|
|||
}
|
||||
}
|
||||
|
||||
void ov5_021E9D3C(MapMatrix *param0, UnkStruct_ov5_021EF76C *param1, UnkStruct_ov5_021E8F60 *param2, UnkStruct_ov5_021E8F60 *param3, const int param4, const int param5)
|
||||
void ov5_021E9D3C(MapMatrix *param0, AreaDataManager *param1, UnkStruct_ov5_021E8F60 *param2, UnkStruct_ov5_021E8F60 *param3, const int param4, const int param5)
|
||||
{
|
||||
int v0;
|
||||
int v1[4];
|
||||
|
|
@ -2238,7 +2237,7 @@ void ov5_021E9D3C(MapMatrix *param0, UnkStruct_ov5_021EF76C *param1, UnkStruct_o
|
|||
}
|
||||
|
||||
for (v0 = 0; v0 < 4; v0++) {
|
||||
ov5_021E7FF0(v1[v0], v0, param3->unk_AC, param3->unk_B0, param3->unk_B4, param3->unk_B8, ov5_021EFAC0(param3->unk_AC), param3);
|
||||
ov5_021E7FF0(v1[v0], v0, param3->unk_AC, param3->unk_B0, param3->unk_B4, param3->unk_B8, AreaDataManager_IsOutdoorsLighting(param3->unk_AC), param3);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -2399,7 +2398,7 @@ void ov5_021EA174(FieldSystem *fieldSystem, UnkStruct_ov5_021E8F60 *param1)
|
|||
NNSG3dResMdlSet *v5 = NNS_G3dGetMdlSet(v1->unk_00[v1->unk_22 - 1]->unk_854);
|
||||
NNSG3dResMdl *v6 = NNS_G3dGetMdlByIdx(v5, 0);
|
||||
|
||||
if (ov5_021EFAC0(param1->unk_AC) == 1) {
|
||||
if (AreaDataManager_IsOutdoorsLighting(param1->unk_AC) == 1) {
|
||||
ov5_021D53A4(v6);
|
||||
}
|
||||
}
|
||||
|
|
@ -2452,7 +2451,7 @@ void ov5_021EA174(FieldSystem *fieldSystem, UnkStruct_ov5_021E8F60 *param1)
|
|||
}
|
||||
}
|
||||
|
||||
void ov5_021EA540(UnkStruct_ov5_021E8F60 *param0, MapMatrix *param1, UnkStruct_ov5_021EF76C *param2)
|
||||
void ov5_021EA540(UnkStruct_ov5_021E8F60 *param0, MapMatrix *param1, AreaDataManager *param2)
|
||||
{
|
||||
param0->unk_AC = param2;
|
||||
param0->unk_B0 = param1;
|
||||
|
|
@ -2487,7 +2486,7 @@ void ov5_021EA5E0(UnkStruct_ov5_021E8F60 *param0, int param1, int param2)
|
|||
MI_CpuFillFast(param0->unk_84[param1]->unk_00, 0xffffffff, 2 * 32 * 32);
|
||||
|
||||
BDHC_MarkNotLoaded(param0->unk_84[param1]->bdhc);
|
||||
ov5_021E7E28(param2, param1, param0->unk_AC, param0->unk_B0, param0->unk_B4, param0->unk_B8, ov5_021EFAC0(param0->unk_AC), param0);
|
||||
ov5_021E7E28(param2, param1, param0->unk_AC, param0->unk_B0, param0->unk_B4, param0->unk_B8, AreaDataManager_IsOutdoorsLighting(param0->unk_AC), param0);
|
||||
}
|
||||
|
||||
void ov5_021EA678(UnkStruct_ov5_021E8F60 *param0, int param1, int param2, int param3)
|
||||
|
|
|
|||
|
|
@ -1,299 +0,0 @@
|
|||
#include "overlay005/ov5_021EF75C.h"
|
||||
|
||||
#include <nitro.h>
|
||||
#include <string.h>
|
||||
|
||||
#include "overlay005/map_prop_material_shape.h"
|
||||
#include "overlay005/ov5_021D37AC.h"
|
||||
#include "overlay005/struct_ov5_021D3CAC_decl.h"
|
||||
|
||||
#include "easy3d.h"
|
||||
#include "heap.h"
|
||||
#include "narc.h"
|
||||
|
||||
typedef struct {
|
||||
int unk_00;
|
||||
UnkStruct_ov5_021D3CAC *unk_04;
|
||||
u16 unk_08;
|
||||
int unk_0C;
|
||||
} UnkStruct_ov5_021EF7A0;
|
||||
|
||||
typedef struct {
|
||||
u16 unk_00;
|
||||
u16 unk_02;
|
||||
u16 unk_04;
|
||||
u16 unk_06;
|
||||
} UnkStruct_ov5_021EF76C_sub1;
|
||||
|
||||
typedef struct UnkStruct_ov5_021EF76C_t {
|
||||
int unk_00;
|
||||
NNSG3dResFileHeader *unk_04[768];
|
||||
void *unk_C04;
|
||||
void *unk_C08;
|
||||
NNSG3dResTex *unk_C0C;
|
||||
NNSG3dResTex *unk_C10;
|
||||
MapPropMaterialShape *unk_C14;
|
||||
UnkStruct_ov5_021EF76C_sub1 unk_C18;
|
||||
UnkStruct_ov5_021EF7A0 *unk_C20;
|
||||
u16 *unk_C24;
|
||||
} UnkStruct_ov5_021EF76C;
|
||||
|
||||
static const GXRgb Unk_ov5_021FF588[8] = {
|
||||
GX_RGB(0, 0, 0),
|
||||
GX_RGB(4, 4, 4),
|
||||
GX_RGB(4, 4, 4),
|
||||
GX_RGB(4, 4, 4),
|
||||
GX_RGB(4, 4, 4),
|
||||
GX_RGB(4, 4, 4),
|
||||
GX_RGB(4, 4, 4),
|
||||
GX_RGB(4, 4, 4)
|
||||
};
|
||||
|
||||
static const GXRgb Unk_ov5_021FF598[8] = {
|
||||
GX_RGB(4, 4, 4),
|
||||
GX_RGB(4, 4, 4),
|
||||
GX_RGB(4, 4, 4),
|
||||
GX_RGB(4, 4, 4),
|
||||
GX_RGB(4, 4, 4),
|
||||
GX_RGB(4, 4, 4),
|
||||
GX_RGB(4, 4, 4),
|
||||
GX_RGB(4, 4, 4)
|
||||
};
|
||||
|
||||
static void ov5_021EF75C(void *param0, NNSG3dResTex *param1)
|
||||
{
|
||||
u8 *v0;
|
||||
u32 v1;
|
||||
|
||||
v0 = (u8 *)param1 + param1->texInfo.ofsTex;
|
||||
v1 = (u32)(v0 - (u8 *)param0);
|
||||
|
||||
Heap_ReallocFromHeap(param0, v1);
|
||||
}
|
||||
|
||||
UnkStruct_ov5_021EF76C *ov5_021EF76C(const int param0, UnkStruct_ov5_021D3CAC *param1)
|
||||
{
|
||||
UnkStruct_ov5_021EF76C *v0;
|
||||
|
||||
v0 = Heap_AllocFromHeap(4, sizeof(UnkStruct_ov5_021EF76C));
|
||||
|
||||
v0->unk_C20 = Heap_AllocFromHeapAtEnd(4, sizeof(UnkStruct_ov5_021EF7A0));
|
||||
v0->unk_C20->unk_00 = param0;
|
||||
v0->unk_C20->unk_04 = param1;
|
||||
v0->unk_C20->unk_0C = 0;
|
||||
|
||||
return v0;
|
||||
}
|
||||
|
||||
void ov5_021EF7A0(UnkStruct_ov5_021EF76C *param0)
|
||||
{
|
||||
NARC *v0;
|
||||
UnkStruct_ov5_021EF7A0 *v1 = param0->unk_C20;
|
||||
|
||||
NARC_ReadWholeMemberByIndexPair(¶m0->unk_C18, NARC_INDEX_FIELDDATA__AREADATA__AREA_DATA, v1->unk_00);
|
||||
|
||||
param0->unk_C24 = NARC_AllocAndReadWholeMemberByIndexPair(NARC_INDEX_FIELDDATA__AREADATA__AREA_BUILD_MODEL__AREA_BUILD, param0->unk_C18.unk_00, 4);
|
||||
v1->unk_08 = param0->unk_C24[0];
|
||||
|
||||
GF_ASSERT(v1->unk_08 < 768);
|
||||
|
||||
param0->unk_C0C = NULL;
|
||||
param0->unk_C04 = NARC_AllocAndReadWholeMemberByIndexPair(NARC_INDEX_FIELDDATA__AREADATA__AREA_MAP_TEX__MAP_TEX_SET, param0->unk_C18.unk_02, 4);
|
||||
param0->unk_C08 = NARC_AllocAndReadWholeMemberByIndexPair(NARC_INDEX_FIELDDATA__AREADATA__AREA_BUILD_MODEL__AREABM_TEXSET, param0->unk_C18.unk_00, 4);
|
||||
param0->unk_C0C = NNS_G3dGetTex((NNSG3dResFileHeader *)param0->unk_C04);
|
||||
|
||||
if (v1->unk_08 != 0) {
|
||||
param0->unk_C10 = NNS_G3dGetTex((NNSG3dResFileHeader *)param0->unk_C08);
|
||||
} else {
|
||||
param0->unk_C10 = NULL;
|
||||
}
|
||||
|
||||
{
|
||||
BOOL v2;
|
||||
|
||||
v2 = Easy3D_UploadTextureToVRAM(param0->unk_C0C);
|
||||
GF_ASSERT(v2);
|
||||
}
|
||||
|
||||
ov5_021EF75C(param0->unk_C04, param0->unk_C0C);
|
||||
|
||||
if (param0->unk_C10 != NULL) {
|
||||
BOOL v3;
|
||||
|
||||
v3 = Easy3D_UploadTextureToVRAM(param0->unk_C10);
|
||||
GF_ASSERT(v3);
|
||||
|
||||
ov5_021EF75C(param0->unk_C08, param0->unk_C10);
|
||||
}
|
||||
|
||||
{
|
||||
int v4;
|
||||
|
||||
for (v4 = 0; v4 < 768; v4++) {
|
||||
param0->unk_04[v4] = NULL;
|
||||
}
|
||||
|
||||
param0->unk_C14 = NULL;
|
||||
}
|
||||
|
||||
v0 = NARC_ctor(NARC_INDEX_FIELDDATA__BUILD_MODEL__BUILD_MODEL, 4);
|
||||
|
||||
{
|
||||
int v5;
|
||||
u16 v6;
|
||||
int v7;
|
||||
|
||||
v7 = ov5_021D3F84(v1->unk_04);
|
||||
|
||||
for (v5 = 0; v5 < v1->unk_08; v5++) {
|
||||
v6 = param0->unk_C24[v5 + 1];
|
||||
|
||||
GF_ASSERT(param0->unk_04[v6] == NULL);
|
||||
param0->unk_04[v6] = NARC_AllocAndReadWholeMember(v0, v6, 4);
|
||||
|
||||
{
|
||||
NNSG3dResMdl *v8;
|
||||
|
||||
if (v6 < v7) {
|
||||
v8 = NNS_G3dGetMdlByIdx(NNS_G3dGetMdlSet(param0->unk_04[v6]), 0);
|
||||
ov5_021D3A50(v6, v8, param0->unk_C10, v1->unk_04);
|
||||
}
|
||||
}
|
||||
|
||||
{
|
||||
BOOL v9;
|
||||
|
||||
v9 = Easy3D_BindTextureToResource(param0->unk_04[v6], param0->unk_C10);
|
||||
GF_ASSERT(v9);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (param0->unk_04[0] == NULL) {
|
||||
BOOL v10;
|
||||
NNSG3dResTex *v11;
|
||||
|
||||
param0->unk_04[0] = NARC_AllocAndReadWholeMember(v0, 0, 4);
|
||||
|
||||
v11 = NNS_G3dGetTex(
|
||||
(NNSG3dResFileHeader *)param0->unk_04[0]);
|
||||
|
||||
if (v11 != NULL) {
|
||||
v10 = Easy3D_UploadTextureToVRAM(v11);
|
||||
GF_ASSERT(v10);
|
||||
|
||||
v10 = Easy3D_BindTextureToResource(param0->unk_04[0], v11);
|
||||
GF_ASSERT(v10);
|
||||
}
|
||||
}
|
||||
|
||||
NARC_dtor(v0);
|
||||
G3X_EdgeMarking(1);
|
||||
|
||||
if (ov5_021EFAC0(param0) == 0) {
|
||||
G3X_SetEdgeColorTable(Unk_ov5_021FF588);
|
||||
} else {
|
||||
G3X_SetEdgeColorTable(Unk_ov5_021FF598);
|
||||
}
|
||||
|
||||
{
|
||||
char v12[256];
|
||||
|
||||
param0->unk_C14 = MapPropMaterialShape_Alloc();
|
||||
sprintf(v12, "fielddata/build_model/build_model_matshp.dat");
|
||||
MapPropMaterialShape_Load(v12, param0->unk_C14);
|
||||
}
|
||||
|
||||
Heap_FreeToHeap(param0->unk_C20);
|
||||
param0->unk_C20 = NULL;
|
||||
}
|
||||
|
||||
NNSG3dResFileHeader **ov5_021EF9E8(const int param0, UnkStruct_ov5_021EF76C *const param1)
|
||||
{
|
||||
GF_ASSERT(param1 != NULL);
|
||||
|
||||
if (param1->unk_04[param0] == NULL) {
|
||||
GF_ASSERT(param1->unk_04[0] != NULL);
|
||||
|
||||
return &(param1->unk_04[0]);
|
||||
}
|
||||
|
||||
return &(param1->unk_04[param0]);
|
||||
}
|
||||
|
||||
void ov5_021EFA10(UnkStruct_ov5_021EF76C **param0)
|
||||
{
|
||||
int v0;
|
||||
|
||||
if ((*param0)->unk_C14 != NULL) {
|
||||
MapPropMaterialShape_Free((*param0)->unk_C14);
|
||||
}
|
||||
|
||||
for (v0 = 0; v0 < 768; v0++) {
|
||||
if ((*param0)->unk_04[v0] != NULL) {
|
||||
Heap_FreeToHeap((*param0)->unk_04[v0]);
|
||||
}
|
||||
}
|
||||
|
||||
Heap_FreeToHeap((*param0)->unk_C24);
|
||||
Heap_FreeToHeap((*param0)->unk_C04);
|
||||
|
||||
(*param0)->unk_C04 = NULL;
|
||||
Heap_FreeToHeap((*param0)->unk_C08);
|
||||
|
||||
(*param0)->unk_C08 = NULL;
|
||||
Heap_FreeToHeap(*param0);
|
||||
|
||||
(*param0) = NULL;
|
||||
}
|
||||
|
||||
NNSG3dResTex *ov5_021EFA8C(const UnkStruct_ov5_021EF76C *param0)
|
||||
{
|
||||
GF_ASSERT(param0 != NULL);
|
||||
return param0->unk_C0C;
|
||||
}
|
||||
|
||||
NNSG3dResTex *ov5_021EFAA0(const UnkStruct_ov5_021EF76C *param0)
|
||||
{
|
||||
GF_ASSERT(param0 != NULL);
|
||||
return param0->unk_C10;
|
||||
}
|
||||
|
||||
const MapPropMaterialShape *ov5_021EFAB4(const UnkStruct_ov5_021EF76C *param0)
|
||||
{
|
||||
return param0->unk_C14;
|
||||
}
|
||||
|
||||
BOOL ov5_021EFAC0(const UnkStruct_ov5_021EF76C *param0)
|
||||
{
|
||||
if ((param0->unk_C18.unk_06 == 0) || (param0->unk_C18.unk_06 == 3)) {
|
||||
return 1;
|
||||
} else {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
u8 ov5_021EFAD8(const UnkStruct_ov5_021EF76C *param0)
|
||||
{
|
||||
u8 v0;
|
||||
|
||||
v0 = param0->unk_C18.unk_06;
|
||||
return v0;
|
||||
}
|
||||
|
||||
int ov5_021EFAE8(const UnkStruct_ov5_021EF76C *param0, const int param1)
|
||||
{
|
||||
int v0;
|
||||
|
||||
v0 = param0->unk_C24[param1];
|
||||
return v0;
|
||||
}
|
||||
|
||||
BOOL ov5_021EFAF8(const UnkStruct_ov5_021EF76C *param0, const int param1)
|
||||
{
|
||||
if (param0->unk_04[param1] == NULL) {
|
||||
return 0;
|
||||
} else {
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
|
@ -6,8 +6,8 @@
|
|||
#include "struct_decls/struct_02029894_decl.h"
|
||||
|
||||
#include "field/field_system.h"
|
||||
#include "overlay005/area_data.h"
|
||||
#include "overlay005/map_prop.h"
|
||||
#include "overlay005/ov5_021EF75C.h"
|
||||
#include "overlay023/ov23_02241F74.h"
|
||||
|
||||
#include "field_comm_manager.h"
|
||||
|
|
@ -52,9 +52,9 @@ void ov5_021F0824(FieldSystem *fieldSystem)
|
|||
|
||||
v9.x += (v7 * FX32_ONE * 8);
|
||||
v9.z += (v8 * FX32_ONE * 8);
|
||||
v10 = ov5_021EFAE8(fieldSystem->unk_30, v1);
|
||||
v10 = AreaDataManager_GetMapPropModelID(fieldSystem->areaDataManager, v1);
|
||||
|
||||
MapPropManager_LoadOne(fieldSystem->mapPropManager, fieldSystem->unk_30, v10, &v9, NULL, fieldSystem->unk_50);
|
||||
MapPropManager_LoadOne(fieldSystem->mapPropManager, fieldSystem->areaDataManager, v10, &v9, NULL, fieldSystem->unk_50);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -159,8 +159,8 @@ static void ov5_021F8480(UnkStruct_ov5_021F8480 *param0, const u32 param1)
|
|||
if (v2->unk_00 == 0) {
|
||||
v2->unk_00 = 1;
|
||||
v2->unk_04 = v4;
|
||||
v2->unk_02 = MapPropManager_LoadOne(fieldSystem->mapPropManager, fieldSystem->unk_30, v4, &v5->unk_04, &v3, fieldSystem->unk_50);
|
||||
v2->unk_08 = MapPropManager_FindLoadedPropById(fieldSystem->mapPropManager, v4);
|
||||
v2->unk_02 = MapPropManager_LoadOne(fieldSystem->mapPropManager, fieldSystem->areaDataManager, v4, &v5->unk_04, &v3, fieldSystem->unk_50);
|
||||
v2->unk_08 = MapPropManager_FindLoadedPropByModelID(fieldSystem->mapPropManager, v4);
|
||||
break;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -9,9 +9,9 @@
|
|||
#include "struct_decls/struct_02061AB4_decl.h"
|
||||
|
||||
#include "field/field_system.h"
|
||||
#include "overlay005/area_data.h"
|
||||
#include "overlay005/map_prop.h"
|
||||
#include "overlay005/ov5_021D37AC.h"
|
||||
#include "overlay005/ov5_021EF75C.h"
|
||||
#include "overlay006/struct_ov6_02242AF0.h"
|
||||
|
||||
#include "field_system.h"
|
||||
|
|
@ -106,7 +106,7 @@ void ov6_02242AF0(FieldSystem *fieldSystem)
|
|||
break;
|
||||
}
|
||||
|
||||
MapPropManager_LoadOne(fieldSystem->mapPropManager, fieldSystem->unk_30, 475, &v2, NULL, fieldSystem->unk_50);
|
||||
MapPropManager_LoadOne(fieldSystem->mapPropManager, fieldSystem->areaDataManager, 475, &v2, NULL, fieldSystem->unk_50);
|
||||
}
|
||||
|
||||
void ov6_02242B58(FieldSystem *fieldSystem, const u16 param1, const u16 param2)
|
||||
|
|
@ -208,12 +208,12 @@ static BOOL ov6_02242C5C(FieldTask *taskMan)
|
|||
MapProp *v4;
|
||||
NNSG3dRenderObj *v5;
|
||||
|
||||
v4 = MapPropManager_FindLoadedPropById(fieldSystem->mapPropManager, MAP_PROP_ID_UNK_475);
|
||||
v4 = MapPropManager_FindLoadedPropByModelID(fieldSystem->mapPropManager, MAP_PROP_MODEL_ID_UNK_475);
|
||||
v5 = MapProp_GetRenderObj(v4);
|
||||
v3 = ov5_021EF9E8(475, fieldSystem->unk_30);
|
||||
v3 = AreaDataManager_GetMapPropModelFile(MAP_PROP_MODEL_ID_UNK_475, fieldSystem->areaDataManager);
|
||||
v2 = NNS_G3dGetMdlByIdx(NNS_G3dGetMdlSet(*v3), 0);
|
||||
|
||||
ov5_021D41C8(fieldSystem->unk_50, fieldSystem->unk_54, 16, 475, v5, v2, ov5_021EFAA0(fieldSystem->unk_30), 1, -1, 0);
|
||||
ov5_021D41C8(fieldSystem->unk_50, fieldSystem->unk_54, 16, 475, v5, v2, AreaDataManager_GetMapPropTexture(fieldSystem->areaDataManager), 1, -1, 0);
|
||||
ov5_021D4250(fieldSystem->unk_54, 16, 0);
|
||||
}
|
||||
(v1->unk_05)++;
|
||||
|
|
@ -235,7 +235,7 @@ static BOOL ov6_02242C5C(FieldTask *taskMan)
|
|||
MapProp *v6;
|
||||
VecFx32 v7;
|
||||
|
||||
v6 = MapPropManager_FindLoadedPropById(fieldSystem->mapPropManager, MAP_PROP_ID_UNK_475);
|
||||
v6 = MapPropManager_FindLoadedPropByModelID(fieldSystem->mapPropManager, MAP_PROP_MODEL_ID_UNK_475);
|
||||
v7 = MapProp_GetPosition(v6);
|
||||
|
||||
if (v1->unk_00(fieldSystem, v1, &v1->unk_0C, &v7)) {
|
||||
|
|
|
|||
|
|
@ -3,10 +3,12 @@
|
|||
#include <nitro.h>
|
||||
#include <string.h>
|
||||
|
||||
#include "constants/map_prop.h"
|
||||
|
||||
#include "field/field_system.h"
|
||||
#include "overlay005/area_data.h"
|
||||
#include "overlay005/map_prop.h"
|
||||
#include "overlay005/ov5_021D37AC.h"
|
||||
#include "overlay005/ov5_021EF75C.h"
|
||||
|
||||
#include "field_task.h"
|
||||
#include "heap.h"
|
||||
|
|
@ -82,18 +84,18 @@ static BOOL ov6_02246C9C(FieldTask *param0)
|
|||
NNSG3dRenderObj *v7;
|
||||
BOOL v8;
|
||||
|
||||
v3 = ov5_021EF9E8(517, fieldSystem->unk_30);
|
||||
v5 = ov5_021EF9E8(124, fieldSystem->unk_30);
|
||||
v3 = AreaDataManager_GetMapPropModelFile(MAP_PROP_MODEL_ID_UNK_517, fieldSystem->areaDataManager);
|
||||
v5 = AreaDataManager_GetMapPropModelFile(MAP_PROP_MODEL_ID_UNK_124, fieldSystem->areaDataManager);
|
||||
v2 = NNS_G3dGetMdlByIdx(NNS_G3dGetMdlSet(*v3), 0);
|
||||
v4 = NNS_G3dGetMdlByIdx(NNS_G3dGetMdlSet(*v5), 0);
|
||||
|
||||
ov5_021D41C8(fieldSystem->unk_50, fieldSystem->unk_54, 0x10, 517, NULL, v2, ov5_021EFAA0(fieldSystem->unk_30), 1, 1, 0);
|
||||
ov5_021D41C8(fieldSystem->unk_50, fieldSystem->unk_54, 0x10, 517, NULL, v2, AreaDataManager_GetMapPropTexture(fieldSystem->areaDataManager), 1, 1, 0);
|
||||
|
||||
v8 = sub_020552B4(fieldSystem, 124, &v6, NULL);
|
||||
GF_ASSERT(v8);
|
||||
v7 = MapProp_GetRenderObj(v6);
|
||||
|
||||
ov5_021D41C8(fieldSystem->unk_50, fieldSystem->unk_54, 0x20, 124, v7, v4, ov5_021EFAA0(fieldSystem->unk_30), 1, 1, 0);
|
||||
ov5_021D41C8(fieldSystem->unk_50, fieldSystem->unk_54, 0x20, 124, v7, v4, AreaDataManager_GetMapPropTexture(fieldSystem->areaDataManager), 1, 1, 0);
|
||||
}
|
||||
(v1->unk_0F)++;
|
||||
break;
|
||||
|
|
@ -109,7 +111,7 @@ static BOOL ov6_02246C9C(FieldTask *param0)
|
|||
|
||||
Sound_PlayEffect(1534);
|
||||
|
||||
v1->unk_10[v1->unk_0D] = MapPropManager_LoadOne(fieldSystem->mapPropManager, fieldSystem->unk_30, 517, &v11, &v12, fieldSystem->unk_50);
|
||||
v1->unk_10[v1->unk_0D] = MapPropManager_LoadOne(fieldSystem->mapPropManager, fieldSystem->areaDataManager, 517, &v11, &v12, fieldSystem->unk_50);
|
||||
|
||||
v9 = MapPropManager_GetLoadedPropSafely(fieldSystem->mapPropManager, v1->unk_10[v1->unk_0D]);
|
||||
v10 = MapProp_GetRenderObj(v9);
|
||||
|
|
|
|||
|
|
@ -3,10 +3,12 @@
|
|||
#include <nitro.h>
|
||||
#include <string.h>
|
||||
|
||||
#include "constants/map_prop.h"
|
||||
|
||||
#include "field/field_system.h"
|
||||
#include "overlay005/area_data.h"
|
||||
#include "overlay005/map_prop.h"
|
||||
#include "overlay005/ov5_021D37AC.h"
|
||||
#include "overlay005/ov5_021EF75C.h"
|
||||
|
||||
#include "field_task.h"
|
||||
#include "heap.h"
|
||||
|
|
@ -54,14 +56,14 @@ static BOOL ov6_02246F40(FieldTask *param0)
|
|||
NNSG3dRenderObj *v5;
|
||||
BOOL v6;
|
||||
|
||||
v3 = ov5_021EF9E8(498, fieldSystem->unk_30);
|
||||
v3 = AreaDataManager_GetMapPropModelFile(MAP_PROP_MODEL_ID_UNK_498, fieldSystem->areaDataManager);
|
||||
v2 = NNS_G3dGetMdlByIdx(NNS_G3dGetMdlSet(*v3), 0);
|
||||
|
||||
v6 = sub_020552B4(fieldSystem, 498, &v4, NULL);
|
||||
GF_ASSERT(v6);
|
||||
v5 = MapProp_GetRenderObj(v4);
|
||||
|
||||
ov5_021D41C8(fieldSystem->unk_50, fieldSystem->unk_54, 0x1, 498, v5, v2, ov5_021EFAA0(fieldSystem->unk_30), 2, v1->unk_00, 0);
|
||||
ov5_021D41C8(fieldSystem->unk_50, fieldSystem->unk_54, 0x1, 498, v5, v2, AreaDataManager_GetMapPropTexture(fieldSystem->areaDataManager), 2, v1->unk_00, 0);
|
||||
}
|
||||
(v1->unk_02)++;
|
||||
break;
|
||||
|
|
|
|||
|
|
@ -6,9 +6,9 @@
|
|||
#include "struct_defs/struct_02055130.h"
|
||||
|
||||
#include "field/field_system.h"
|
||||
#include "overlay005/area_data.h"
|
||||
#include "overlay005/map_prop.h"
|
||||
#include "overlay005/ov5_021D37AC.h"
|
||||
#include "overlay005/ov5_021EF75C.h"
|
||||
|
||||
#include "unk_02054D00.h"
|
||||
|
||||
|
|
@ -25,7 +25,7 @@ void ov6_02247078(FieldSystem *fieldSystem, const u8 param1)
|
|||
if (v0) {
|
||||
NNSG3dResTex *v5;
|
||||
|
||||
v5 = ov5_021EFAA0(fieldSystem->unk_30);
|
||||
v5 = AreaDataManager_GetMapPropTexture(fieldSystem->areaDataManager);
|
||||
ov5_021D41C8(fieldSystem->unk_50, fieldSystem->unk_54, param1, v3, MapProp_GetRenderObj(v1), MapProp_GetModel(v1), v5, 2, 1, 0);
|
||||
} else {
|
||||
GF_ASSERT(0);
|
||||
|
|
|
|||
|
|
@ -3,10 +3,12 @@
|
|||
#include <nitro.h>
|
||||
#include <string.h>
|
||||
|
||||
#include "constants/map_prop.h"
|
||||
|
||||
#include "field/field_system.h"
|
||||
#include "overlay005/area_data.h"
|
||||
#include "overlay005/map_prop.h"
|
||||
#include "overlay005/ov5_021D37AC.h"
|
||||
#include "overlay005/ov5_021EF75C.h"
|
||||
|
||||
#include "field_task.h"
|
||||
#include "heap.h"
|
||||
|
|
@ -76,10 +78,10 @@ static BOOL ov6_02247DAC(FieldTask *param0)
|
|||
NNSG3dResFileHeader **v3;
|
||||
NNSG3dRenderObj *v4;
|
||||
|
||||
v3 = ov5_021EF9E8(517, fieldSystem->unk_30);
|
||||
v3 = AreaDataManager_GetMapPropModelFile(MAP_PROP_MODEL_ID_UNK_517, fieldSystem->areaDataManager);
|
||||
v2 = NNS_G3dGetMdlByIdx(NNS_G3dGetMdlSet(*v3), 0);
|
||||
|
||||
ov5_021D41C8(fieldSystem->unk_50, fieldSystem->unk_54, 0x10, 517, NULL, v2, ov5_021EFAA0(fieldSystem->unk_30), 1, 1, 0);
|
||||
ov5_021D41C8(fieldSystem->unk_50, fieldSystem->unk_54, 0x10, 517, NULL, v2, AreaDataManager_GetMapPropTexture(fieldSystem->areaDataManager), 1, 1, 0);
|
||||
}
|
||||
(v1->unk_0F)++;
|
||||
break;
|
||||
|
|
@ -93,7 +95,7 @@ static BOOL ov6_02247DAC(FieldTask *param0)
|
|||
v7.y = v1->unk_00.y + Unk_ov6_022498E4[v1->unk_0D].y;
|
||||
v7.z = v1->unk_00.z + Unk_ov6_022498E4[v1->unk_0D].z;
|
||||
|
||||
v1->unk_10[v1->unk_0D] = MapPropManager_LoadOne(fieldSystem->mapPropManager, fieldSystem->unk_30, 517, &v7, &v8, fieldSystem->unk_50);
|
||||
v1->unk_10[v1->unk_0D] = MapPropManager_LoadOne(fieldSystem->mapPropManager, fieldSystem->areaDataManager, 517, &v7, &v8, fieldSystem->unk_50);
|
||||
v5 = MapPropManager_GetLoadedPropSafely(fieldSystem->mapPropManager, v1->unk_10[v1->unk_0D]);
|
||||
v6 = MapProp_GetRenderObj(v5);
|
||||
ov5_021D4220(fieldSystem->unk_54, 0x10, v1->unk_0D, v6);
|
||||
|
|
|
|||
|
|
@ -430,7 +430,7 @@ static BOOL ov8_02249A94(FieldTask *taskMan)
|
|||
v5 = ov5_021D3DA0(3, fieldSystem->unk_50);
|
||||
|
||||
if (ov5_021D3F70(v3) && ov5_021D3F70(v4) && ov5_021D3F70(v5)) {
|
||||
v0 = MapPropManager_FindLoadedPropById(fieldSystem->mapPropManager, MAP_PROP_ID_UNK_242);
|
||||
v0 = MapPropManager_FindLoadedPropByModelID(fieldSystem->mapPropManager, MAP_PROP_MODEL_ID_UNK_242);
|
||||
|
||||
{
|
||||
VecFx32 v6;
|
||||
|
|
@ -481,7 +481,7 @@ static BOOL ov8_02249B74(FieldTask *taskMan)
|
|||
v5 = ov5_021D3DA0(3, fieldSystem->unk_50);
|
||||
|
||||
if (ov5_021D3F70(v3) && ov5_021D3F70(v4) && ov5_021D3F70(v5)) {
|
||||
v0 = MapPropManager_FindLoadedPropById(fieldSystem->mapPropManager, MAP_PROP_ID_UNK_242);
|
||||
v0 = MapPropManager_FindLoadedPropByModelID(fieldSystem->mapPropManager, MAP_PROP_MODEL_ID_UNK_242);
|
||||
{
|
||||
VecFx32 v6;
|
||||
|
||||
|
|
@ -501,7 +501,7 @@ static BOOL ov8_02249B74(FieldTask *taskMan)
|
|||
}
|
||||
} break;
|
||||
case 2:
|
||||
v0 = MapPropManager_FindLoadedPropById(fieldSystem->mapPropManager, MAP_PROP_ID_UNK_242);
|
||||
v0 = MapPropManager_FindLoadedPropByModelID(fieldSystem->mapPropManager, MAP_PROP_MODEL_ID_UNK_242);
|
||||
|
||||
{
|
||||
VecFx32 v7;
|
||||
|
|
@ -518,7 +518,7 @@ static BOOL ov8_02249B74(FieldTask *taskMan)
|
|||
}
|
||||
break;
|
||||
case 3:
|
||||
v0 = MapPropManager_FindLoadedPropById(fieldSystem->mapPropManager, MAP_PROP_ID_UNK_242);
|
||||
v0 = MapPropManager_FindLoadedPropByModelID(fieldSystem->mapPropManager, MAP_PROP_MODEL_ID_UNK_242);
|
||||
|
||||
{
|
||||
VecFx32 v8;
|
||||
|
|
@ -568,7 +568,7 @@ static BOOL ov8_02249CD8(FieldTask *taskMan)
|
|||
v5 = ov5_021D3DA0(3, fieldSystem->unk_50);
|
||||
|
||||
if (ov5_021D3F70(v3) && ov5_021D3F70(v4) && ov5_021D3F70(v5)) {
|
||||
v0 = MapPropManager_FindLoadedPropById(fieldSystem->mapPropManager, MAP_PROP_ID_UNK_242);
|
||||
v0 = MapPropManager_FindLoadedPropByModelID(fieldSystem->mapPropManager, MAP_PROP_MODEL_ID_UNK_242);
|
||||
|
||||
{
|
||||
VecFx32 v6;
|
||||
|
|
@ -613,7 +613,7 @@ void ov8_02249DBC(FieldSystem *fieldSystem)
|
|||
|
||||
{
|
||||
VecFx32 v9 = { FX32_ONE * 16 * 16, 0, FX32_ONE * 16 * 16 };
|
||||
MapPropManager_LoadOne(fieldSystem->mapPropManager, fieldSystem->unk_30, 242, &v9, NULL, fieldSystem->unk_50);
|
||||
MapPropManager_LoadOne(fieldSystem->mapPropManager, fieldSystem->areaDataManager, 242, &v9, NULL, fieldSystem->unk_50);
|
||||
}
|
||||
|
||||
ov5_021EF2CC(0, 1, 2, 25, 38, (FX32_ONE * 16 * 0), fieldSystem->unk_A0);
|
||||
|
|
@ -651,7 +651,7 @@ void ov8_02249DBC(FieldSystem *fieldSystem)
|
|||
v6 = 0;
|
||||
}
|
||||
|
||||
v1 = MapPropManager_FindLoadedPropById(fieldSystem->mapPropManager, MAP_PROP_ID_UNK_242);
|
||||
v1 = MapPropManager_FindLoadedPropByModelID(fieldSystem->mapPropManager, MAP_PROP_MODEL_ID_UNK_242);
|
||||
|
||||
{
|
||||
VecFx32 v10;
|
||||
|
|
@ -784,7 +784,7 @@ static BOOL ov8_0224A018(FieldTask *taskMan)
|
|||
(v2->unk_00)++;
|
||||
break;
|
||||
case 1: {
|
||||
v0 = MapPropManager_FindLoadedPropById(fieldSystem->mapPropManager, MAP_PROP_ID_UNK_258);
|
||||
v0 = MapPropManager_FindLoadedPropByModelID(fieldSystem->mapPropManager, MAP_PROP_MODEL_ID_UNK_258);
|
||||
|
||||
{
|
||||
VecFx32 v3;
|
||||
|
|
@ -830,7 +830,7 @@ static BOOL ov8_0224A0E8(FieldTask *taskMan)
|
|||
(v2->unk_00)++;
|
||||
break;
|
||||
case 1: {
|
||||
v0 = MapPropManager_FindLoadedPropById(fieldSystem->mapPropManager, MAP_PROP_ID_UNK_258);
|
||||
v0 = MapPropManager_FindLoadedPropByModelID(fieldSystem->mapPropManager, MAP_PROP_MODEL_ID_UNK_258);
|
||||
|
||||
{
|
||||
VecFx32 v3;
|
||||
|
|
@ -1584,13 +1584,13 @@ void ov8_0224A8C8(FieldSystem *fieldSystem)
|
|||
VecFx32 v3 = { FX32_ONE * (16 * 16), 0, FX32_ONE * (16 * 16) };
|
||||
|
||||
v3.y = (FX32_ONE * 16) * 10;
|
||||
v0->unk_04 = MapPropManager_LoadOne(fieldSystem->mapPropManager, fieldSystem->unk_30, 300, &v3, NULL, fieldSystem->unk_50);
|
||||
v0->unk_04 = MapPropManager_LoadOne(fieldSystem->mapPropManager, fieldSystem->areaDataManager, 300, &v3, NULL, fieldSystem->unk_50);
|
||||
|
||||
v3.y = (FX32_ONE * 16) * 10 * 2;
|
||||
v0->unk_08 = MapPropManager_LoadOne(fieldSystem->mapPropManager, fieldSystem->unk_30, 301, &v3, NULL, fieldSystem->unk_50);
|
||||
v0->unk_08 = MapPropManager_LoadOne(fieldSystem->mapPropManager, fieldSystem->areaDataManager, 301, &v3, NULL, fieldSystem->unk_50);
|
||||
|
||||
v3.y = (FX32_ONE * 16) * 10 * 3;
|
||||
v0->unk_0C = MapPropManager_LoadOne(fieldSystem->mapPropManager, fieldSystem->unk_30, 302, &v3, NULL, fieldSystem->unk_50);
|
||||
v0->unk_0C = MapPropManager_LoadOne(fieldSystem->mapPropManager, fieldSystem->areaDataManager, 302, &v3, NULL, fieldSystem->unk_50);
|
||||
}
|
||||
|
||||
{
|
||||
|
|
@ -1617,7 +1617,7 @@ void ov8_0224A8C8(FieldSystem *fieldSystem)
|
|||
v4.x += (FX32_ONE * 8);
|
||||
v4.z += (FX32_ONE * 8);
|
||||
|
||||
v0->unk_28[v5] = MapPropManager_LoadOne(fieldSystem->mapPropManager, fieldSystem->unk_30, Unk_ov8_0224CB68[v5].unk_00, &v4, NULL, fieldSystem->unk_50);
|
||||
v0->unk_28[v5] = MapPropManager_LoadOne(fieldSystem->mapPropManager, fieldSystem->areaDataManager, Unk_ov8_0224CB68[v5].unk_00, &v4, NULL, fieldSystem->unk_50);
|
||||
v0->unk_88[v5] = Unk_ov8_0224CB68[v5].unk_00;
|
||||
}
|
||||
}
|
||||
|
|
@ -2123,7 +2123,7 @@ void ov8_0224ABD4(FieldSystem *fieldSystem)
|
|||
ov8_0224AB64(&(v7[v5]), v2->unk_00, &v4);
|
||||
}
|
||||
|
||||
v0->unk_04[v5] = MapPropManager_LoadOne(fieldSystem->mapPropManager, fieldSystem->unk_30, v7[v5].unk_00, &v3, &v4, fieldSystem->unk_50);
|
||||
v0->unk_04[v5] = MapPropManager_LoadOne(fieldSystem->mapPropManager, fieldSystem->areaDataManager, v7[v5].unk_00, &v3, &v4, fieldSystem->unk_50);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -2452,9 +2452,9 @@ void ov8_0224B020(FieldSystem *fieldSystem)
|
|||
v4->unk_0C = *v5;
|
||||
|
||||
v4->unk_10 = MapPropManager_LoadOne(
|
||||
fieldSystem->mapPropManager, fieldSystem->unk_30, *v5, v6, &v7, fieldSystem->unk_50);
|
||||
fieldSystem->mapPropManager, fieldSystem->areaDataManager, *v5, v6, &v7, fieldSystem->unk_50);
|
||||
|
||||
v4->unk_14 = MapPropManager_FindLoadedPropById(fieldSystem->mapPropManager, *v5);
|
||||
v4->unk_14 = MapPropManager_FindLoadedPropByModelID(fieldSystem->mapPropManager, *v5);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -15,6 +15,7 @@
|
|||
|
||||
#include "field/field_system.h"
|
||||
#include "field/field_system_sub2_t.h"
|
||||
#include "overlay005/area_data.h"
|
||||
#include "overlay005/fieldmap.h"
|
||||
#include "overlay005/map_object_anim_cmd.h"
|
||||
#include "overlay005/ov5_021D57BC.h"
|
||||
|
|
@ -28,7 +29,6 @@
|
|||
#include "overlay005/struct_ov5_021DF47C_decl.h"
|
||||
#include "overlay005/struct_ov5_021E8F60_decl.h"
|
||||
#include "overlay005/struct_ov5_021ED0A4.h"
|
||||
#include "overlay005/struct_ov5_021EF76C_decl.h"
|
||||
#include "overlay005/struct_ov5_02201C58.h"
|
||||
#include "overlay009/struct_ov9_02249FF4.h"
|
||||
#include "overlay009/struct_ov9_0224F6EC_decl.h"
|
||||
|
|
@ -371,7 +371,7 @@ typedef struct {
|
|||
u32 unk_08;
|
||||
NARC *unk_0C;
|
||||
MapMatrix *unk_10;
|
||||
UnkStruct_ov5_021EF76C *unk_14;
|
||||
AreaDataManager *unk_14;
|
||||
UnkStruct_ov5_021E8F60 *unk_18;
|
||||
} UnkStruct_ov9_0224C8E8;
|
||||
|
||||
|
|
@ -576,7 +576,7 @@ typedef struct {
|
|||
int unk_0C;
|
||||
int unk_10[4];
|
||||
int unk_20;
|
||||
UnkStruct_ov5_021EF76C *unk_24;
|
||||
AreaDataManager *unk_24;
|
||||
UnkStruct_ov9_0224E0DC *unk_28;
|
||||
SysTask *unk_2C;
|
||||
} UnkStruct_ov9_0224CBD8;
|
||||
|
|
@ -4370,7 +4370,7 @@ static void ov9_0224C8E8(UnkStruct_ov9_02249B04 *param0)
|
|||
}
|
||||
|
||||
{
|
||||
v2->unk_14 = fieldSystem->unk_30;
|
||||
v2->unk_14 = fieldSystem->areaDataManager;
|
||||
}
|
||||
|
||||
{
|
||||
|
|
@ -4797,7 +4797,7 @@ static int ov9_0224CEBC(UnkStruct_ov9_02249B04 *param0, UnkStruct_ov9_0224CBD8 *
|
|||
}
|
||||
|
||||
if (v1->unk_14 == NULL) {
|
||||
v1->unk_14 = fieldSystem->unk_30;
|
||||
v1->unk_14 = fieldSystem->areaDataManager;
|
||||
}
|
||||
|
||||
if (v1->unk_04 == 0) {
|
||||
|
|
@ -4825,7 +4825,7 @@ static int ov9_0224CEBC(UnkStruct_ov9_02249B04 *param0, UnkStruct_ov9_0224CBD8 *
|
|||
{
|
||||
int v4 = 0, v5 = 0, v6 = 0;
|
||||
|
||||
ov5_021EA540(fieldSystem->unk_28, fieldSystem->mapMatrix, fieldSystem->unk_30);
|
||||
ov5_021EA540(fieldSystem->unk_28, fieldSystem->mapMatrix, fieldSystem->areaDataManager);
|
||||
ov9_02251094(v2->unk_00, &v4, &v5, &v6);
|
||||
ov5_021EA678(fieldSystem->unk_28, v4, v5, v6);
|
||||
ov5_021EA6A4(fieldSystem->unk_28, 1);
|
||||
|
|
|
|||
|
|
@ -1491,7 +1491,7 @@ static void ov23_0224C5B4(SysTask *param0, void *param1)
|
|||
v6.y = 0;
|
||||
v6.z = (v2) * (FX32_ONE * 16) + (FX32_ONE * 8);
|
||||
|
||||
Unk_ov23_022577AC->unk_12D5[v0] = MapPropManager_LoadOne(Unk_ov23_022577AC->fieldSystem->mapPropManager, Unk_ov23_022577AC->fieldSystem->unk_30, 429 + v3, &v6, NULL, Unk_ov23_022577AC->fieldSystem->unk_50);
|
||||
Unk_ov23_022577AC->unk_12D5[v0] = MapPropManager_LoadOne(Unk_ov23_022577AC->fieldSystem->mapPropManager, Unk_ov23_022577AC->fieldSystem->areaDataManager, 429 + v3, &v6, NULL, Unk_ov23_022577AC->fieldSystem->unk_50);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -2341,7 +2341,7 @@ static void ov23_0224D54C(UnkStruct_ov23_0224D54C *param0)
|
|||
v0 = MapProp_GetPosition(v1);
|
||||
|
||||
MapPropManager_InitOne(0, Unk_ov23_022577AC->fieldSystem->mapPropManager);
|
||||
MapPropManager_LoadOne(Unk_ov23_022577AC->fieldSystem->mapPropManager, Unk_ov23_022577AC->fieldSystem->unk_30, 317 + param0->unk_05, &v0, NULL, Unk_ov23_022577AC->fieldSystem->unk_50);
|
||||
MapPropManager_LoadOne(Unk_ov23_022577AC->fieldSystem->mapPropManager, Unk_ov23_022577AC->fieldSystem->areaDataManager, 317 + param0->unk_05, &v0, NULL, Unk_ov23_022577AC->fieldSystem->unk_50);
|
||||
}
|
||||
|
||||
static void ov23_0224D5A8(SysTask *param0, void *param1)
|
||||
|
|
|
|||
|
|
@ -8,10 +8,10 @@
|
|||
|
||||
#include "field/field_system.h"
|
||||
#include "field/field_system_sub2_t.h"
|
||||
#include "overlay005/area_data.h"
|
||||
#include "overlay005/map_prop.h"
|
||||
#include "overlay005/ov5_021D1A94.h"
|
||||
#include "overlay005/ov5_021EAFA4.h"
|
||||
#include "overlay005/ov5_021EF75C.h"
|
||||
#include "overlay005/struct_ov5_021D1BEC_decl.h"
|
||||
#include "overlay005/struct_ov5_021EB0E0_decl.h"
|
||||
#include "overlay006/struct_ov6_0223E6EC.h"
|
||||
|
|
@ -179,7 +179,7 @@ static void ov23_02254A14(FieldSystem *fieldSystem, const int param1, UnkStruct_
|
|||
v1.y = FX32_ONE;
|
||||
v1.z = (FX32_ONE * 16) * ((0 * 32) + 13) + ((FX32_ONE * 8) * v0->unk_1C);
|
||||
|
||||
v0->unk_10 = MapPropManager_LoadOne(fieldSystem->mapPropManager, fieldSystem->unk_30, ov23_02255E14(fieldSystem, param1), &v1, NULL, fieldSystem->unk_50);
|
||||
v0->unk_10 = MapPropManager_LoadOne(fieldSystem->mapPropManager, fieldSystem->areaDataManager, ov23_02255E14(fieldSystem, param1), &v1, NULL, fieldSystem->unk_50);
|
||||
v0->unk_00.unk_00 = 16;
|
||||
v0->unk_00.unk_04 = 13;
|
||||
v0->unk_00.unk_08 = 16 + (v0->unk_18 - 1);
|
||||
|
|
@ -1228,7 +1228,7 @@ static void ov23_02255D78(FieldSystem *fieldSystem, UnkStruct_ov23_02255BF4 *par
|
|||
v4.z = (FX32_ONE * 16) * (v5->unk_00.unk_04) + (FX32_ONE * 8) * v2;
|
||||
v4.y = FX32_ONE;
|
||||
|
||||
v5->unk_10 = MapPropManager_LoadOne(fieldSystem->mapPropManager, fieldSystem->unk_30, v0, &v4, NULL, fieldSystem->unk_50);
|
||||
v5->unk_10 = MapPropManager_LoadOne(fieldSystem->mapPropManager, fieldSystem->areaDataManager, v0, &v4, NULL, fieldSystem->unk_50);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -1261,7 +1261,7 @@ static const int ov23_02255E14(FieldSystem *fieldSystem, const int param1)
|
|||
int v0;
|
||||
|
||||
GF_ASSERT(param1 != 0);
|
||||
v0 = ov5_021EFAE8(fieldSystem->unk_30, param1);
|
||||
v0 = AreaDataManager_GetMapPropModelID(fieldSystem->areaDataManager, param1);
|
||||
|
||||
return v0;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -8,9 +8,9 @@
|
|||
|
||||
#include "field/field_system.h"
|
||||
#include "field/field_system_sub2_t.h"
|
||||
#include "overlay005/area_data.h"
|
||||
#include "overlay005/map_prop.h"
|
||||
#include "overlay005/ov5_021D37AC.h"
|
||||
#include "overlay005/ov5_021EF75C.h"
|
||||
#include "overlay005/struct_ov5_021D5894.h"
|
||||
|
||||
#include "camera.h"
|
||||
|
|
@ -311,14 +311,14 @@ static void sub_0206CBA0(FieldSystem *fieldSystem)
|
|||
MapProp *v6;
|
||||
NNSG3dRenderObj *v7;
|
||||
|
||||
v5 = ov5_021EF9E8(v2[v0], fieldSystem->unk_30);
|
||||
v5 = AreaDataManager_GetMapPropModelFile(v2[v0], fieldSystem->areaDataManager);
|
||||
v4 = NNS_G3dGetMdlByIdx(NNS_G3dGetMdlSet(*v5), 0);
|
||||
v1 = sub_020552B4(fieldSystem, v2[v0], &v6, NULL);
|
||||
|
||||
GF_ASSERT(v1);
|
||||
v7 = MapProp_GetRenderObj(v6);
|
||||
|
||||
ov5_021D41C8(fieldSystem->unk_50, fieldSystem->unk_54, v3[v0], v2[v0], v7, v4, ov5_021EFAA0(fieldSystem->unk_30), 1, 1, 0);
|
||||
ov5_021D41C8(fieldSystem->unk_50, fieldSystem->unk_54, v3[v0], v2[v0], v7, v4, AreaDataManager_GetMapPropTexture(fieldSystem->areaDataManager), 1, 1, 0);
|
||||
} else {
|
||||
GF_ASSERT(FALSE);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -136,8 +136,8 @@ void sub_0207160C(FieldSystem *fieldSystem)
|
|||
};
|
||||
|
||||
v6.y = v5;
|
||||
MapPropManager_LoadOne(fieldSystem->mapPropManager, fieldSystem->unk_30, MAP_PROP_ID_UNK_258, &v6, NULL, fieldSystem->unk_50);
|
||||
v1 = MapPropManager_FindLoadedPropById(fieldSystem->mapPropManager, MAP_PROP_ID_UNK_258);
|
||||
MapPropManager_LoadOne(fieldSystem->mapPropManager, fieldSystem->areaDataManager, MAP_PROP_MODEL_ID_UNK_258, &v6, NULL, fieldSystem->unk_50);
|
||||
v1 = MapPropManager_FindLoadedPropByModelID(fieldSystem->mapPropManager, MAP_PROP_MODEL_ID_UNK_258);
|
||||
} else {
|
||||
const int v7[2] = { 258, 502 };
|
||||
|
||||
|
|
@ -330,7 +330,7 @@ static BOOL sub_020718D8(FieldTask *taskMan)
|
|||
break;
|
||||
case 1: {
|
||||
if (v2->unk_08) {
|
||||
v0 = MapPropManager_FindLoadedPropById(fieldSystem->mapPropManager, MAP_PROP_ID_UNK_258);
|
||||
v0 = MapPropManager_FindLoadedPropByModelID(fieldSystem->mapPropManager, MAP_PROP_MODEL_ID_UNK_258);
|
||||
} else {
|
||||
const int v3[2] = { 258, 502 };
|
||||
BOOL v4 = sub_02055324(fieldSystem, v3, 2, &v0, NULL);
|
||||
|
|
@ -391,7 +391,7 @@ static BOOL sub_020719D8(FieldTask *taskMan)
|
|||
break;
|
||||
case 1: {
|
||||
if (v2->unk_08) {
|
||||
v0 = MapPropManager_FindLoadedPropById(fieldSystem->mapPropManager, MAP_PROP_ID_UNK_258);
|
||||
v0 = MapPropManager_FindLoadedPropByModelID(fieldSystem->mapPropManager, MAP_PROP_MODEL_ID_UNK_258);
|
||||
} else {
|
||||
const int v3[2] = { 258, 502 };
|
||||
BOOL v4 = sub_02055324(fieldSystem, v3, 2, &v0, NULL);
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user