Compare commits
2 Commits
2efb6374e6
...
9a1cd9b755
Author | SHA1 | Date |
---|---|---|
Jarrod Doyle | 9a1cd9b755 | |
Jarrod Doyle | e7bf306211 |
|
@ -16,4 +16,18 @@ struct Vec4<T> {
|
||||||
T y;
|
T y;
|
||||||
T z;
|
T z;
|
||||||
T w;
|
T w;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct Plane {
|
||||||
|
float x;
|
||||||
|
float y;
|
||||||
|
float z;
|
||||||
|
float d;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct DPlane {
|
||||||
|
double x;
|
||||||
|
double y;
|
||||||
|
double z;
|
||||||
|
double d;
|
||||||
};
|
};
|
|
@ -25,8 +25,10 @@
|
||||||
#include "db_files/chunks/FILE_TYPE.hexpat"
|
#include "db_files/chunks/FILE_TYPE.hexpat"
|
||||||
#include "db_files/chunks/FLOW_TEX.hexpat"
|
#include "db_files/chunks/FLOW_TEX.hexpat"
|
||||||
#include "db_files/chunks/FOGZONEVAR.hexpat"
|
#include "db_files/chunks/FOGZONEVAR.hexpat"
|
||||||
|
#include "db_files/chunks/HotRegions.hexpat"
|
||||||
#include "db_files/chunks/MAPISRC.hexpat"
|
#include "db_files/chunks/MAPISRC.hexpat"
|
||||||
#include "db_files/chunks/Mission_GameSysEAX.hexpat"
|
#include "db_files/chunks/Mission_GameSysEAX.hexpat"
|
||||||
|
#include "db_files/chunks/MultiBrush.hexpat"
|
||||||
#include "db_files/chunks/RENDPARAMS.hexpat"
|
#include "db_files/chunks/RENDPARAMS.hexpat"
|
||||||
#include "db_files/chunks/ROOM_DB.hexpat"
|
#include "db_files/chunks/ROOM_DB.hexpat"
|
||||||
#include "db_files/chunks/ROOM_EAX.hexpat"
|
#include "db_files/chunks/ROOM_EAX.hexpat"
|
||||||
|
|
|
@ -1,53 +1,5 @@
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
struct Version {
|
|
||||||
u32 major;
|
|
||||||
u32 minor;
|
|
||||||
};
|
|
||||||
|
|
||||||
struct FileHeader {
|
|
||||||
u32 toc_offset;
|
|
||||||
Version version;
|
|
||||||
padding[256];
|
|
||||||
u32 deadbeef;
|
|
||||||
};
|
|
||||||
|
|
||||||
struct TOCEntry {
|
|
||||||
char name[12];
|
|
||||||
u32 offset;
|
|
||||||
u32 size;
|
|
||||||
};
|
|
||||||
|
|
||||||
struct TableOfContents {
|
|
||||||
u32 item_count;
|
|
||||||
TOCEntry items[item_count];
|
|
||||||
};
|
|
||||||
|
|
||||||
struct ChunkHeader {
|
|
||||||
char name[12];
|
|
||||||
Version version;
|
|
||||||
padding[4];
|
|
||||||
};
|
|
||||||
|
|
||||||
struct Chunk<T> {
|
|
||||||
ChunkHeader header;
|
|
||||||
T data;
|
|
||||||
};
|
|
||||||
|
|
||||||
struct Plane {
|
|
||||||
float x;
|
|
||||||
float y;
|
|
||||||
float z;
|
|
||||||
float d;
|
|
||||||
};
|
|
||||||
|
|
||||||
struct DPlane {
|
|
||||||
double x;
|
|
||||||
double y;
|
|
||||||
double z;
|
|
||||||
double d;
|
|
||||||
};
|
|
||||||
|
|
||||||
namespace NameNum {
|
namespace NameNum {
|
||||||
struct Tag {
|
struct Tag {
|
||||||
s32 value;
|
s32 value;
|
||||||
|
|
|
@ -1,9 +1,9 @@
|
||||||
|
#pragma once
|
||||||
|
|
||||||
#include <std/string.pat>
|
#include <std/string.pat>
|
||||||
#include <std/io.pat>
|
#include <std/io.pat>
|
||||||
|
|
||||||
#include "FileBase.hexpat"
|
#include "db_files/FileBase.pat"
|
||||||
#include "lgtypes.hexpat"
|
|
||||||
|
|
||||||
#include "db_files/AllChunks.pat"
|
#include "db_files/AllChunks.pat"
|
||||||
|
|
||||||
FileHeader file_header @ 0x0;
|
FileHeader file_header @ 0x0;
|
||||||
|
@ -40,10 +40,10 @@ Chunk<FileType> file_type @ get_offset(toc, "FILE_TYPE");
|
||||||
Chunk<FlowTex> flow_tex @ get_offset(toc, "FLOW_TEX");
|
Chunk<FlowTex> flow_tex @ get_offset(toc, "FLOW_TEX");
|
||||||
Chunk<FogZoneVar> fog_zone_var @ get_offset(toc, "FOGZONEVAR");
|
Chunk<FogZoneVar> fog_zone_var @ get_offset(toc, "FOGZONEVAR");
|
||||||
Chunk<AccousticsProperty> gamesys_eax @ get_offset(toc, "GameSysEAX");
|
Chunk<AccousticsProperty> gamesys_eax @ get_offset(toc, "GameSysEAX");
|
||||||
Chunk<NameNum> hot_regions @ get_offset(toc, "HotRegions");
|
Chunk<HotRegions> hot_regions @ get_offset(toc, "HotRegions");
|
||||||
Chunk<MapISrc> map_i_src @ get_offset(toc, "MAPISRC");
|
Chunk<MapISrc> map_i_src @ get_offset(toc, "MAPISRC");
|
||||||
Chunk<AccousticsProperty> mission_eax @ get_offset(toc, "MissionEAX");
|
Chunk<AccousticsProperty> mission_eax @ get_offset(toc, "MissionEAX");
|
||||||
Chunk<NameNum> multibrush @ get_offset(toc, "MultiBrush");
|
Chunk<MultiBrush> multibrush @ get_offset(toc, "MultiBrush");
|
||||||
Chunk<RendParams> rend_params @ get_offset(toc, "RENDPARAMS");
|
Chunk<RendParams> rend_params @ get_offset(toc, "RENDPARAMS");
|
||||||
Chunk<RoomDb> room_db @ get_offset(toc, "ROOM_DB");
|
Chunk<RoomDb> room_db @ get_offset(toc, "ROOM_DB");
|
||||||
Chunk<RoomEax> room_eax @ get_offset(toc, "ROOM_EAX");
|
Chunk<RoomEax> room_eax @ get_offset(toc, "ROOM_EAX");
|
||||||
|
|
|
@ -0,0 +1,48 @@
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
struct Version {
|
||||||
|
u32 major;
|
||||||
|
u32 minor;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct FileHeader {
|
||||||
|
u32 toc_offset;
|
||||||
|
Version version;
|
||||||
|
padding[256];
|
||||||
|
u32 deadbeef;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct TOCEntry {
|
||||||
|
char name[12];
|
||||||
|
u32 offset;
|
||||||
|
u32 size;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct TableOfContents {
|
||||||
|
u32 item_count;
|
||||||
|
TOCEntry items[item_count];
|
||||||
|
};
|
||||||
|
|
||||||
|
struct ChunkHeader {
|
||||||
|
char name[12];
|
||||||
|
Version version;
|
||||||
|
padding[4];
|
||||||
|
};
|
||||||
|
|
||||||
|
struct Chunk<T> {
|
||||||
|
ChunkHeader header;
|
||||||
|
T data;
|
||||||
|
};
|
||||||
|
|
||||||
|
fn get_toc_entry(TableOfContents toc, str entry_name) {
|
||||||
|
for (u32 i = 0, i < toc.item_count, i = i + 1) {
|
||||||
|
if (std::string::starts_with(toc.items[i].name, entry_name)) {
|
||||||
|
return toc.items[i];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
fn get_offset(TableOfContents toc, str entry_name) {
|
||||||
|
TOCEntry entry = get_toc_entry(toc, entry_name);
|
||||||
|
return entry.offset;
|
||||||
|
};
|
|
@ -1,14 +0,0 @@
|
||||||
#pragma once
|
|
||||||
|
|
||||||
fn get_toc_entry(TableOfContents toc, str entry_name) {
|
|
||||||
for (u32 i = 0, i < toc.item_count, i = i + 1) {
|
|
||||||
if (std::string::starts_with(toc.items[i].name, entry_name)) {
|
|
||||||
return toc.items[i];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
fn get_offset(TableOfContents toc, str entry_name) {
|
|
||||||
TOCEntry entry = get_toc_entry(toc, entry_name);
|
|
||||||
return entry.offset;
|
|
||||||
};
|
|
|
@ -1,7 +1,6 @@
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include "Common.hexpat"
|
#include "Common.hexpat"
|
||||||
#include "lgtypes.hexpat"
|
|
||||||
|
|
||||||
namespace AiRoomDb {
|
namespace AiRoomDb {
|
||||||
struct Cell {
|
struct Cell {
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include "lgtypes.hexpat"
|
#include "Common.hexpat"
|
||||||
|
|
||||||
using Br;
|
using Br;
|
||||||
using Grid;
|
using Grid;
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include "lgtypes.hexpat"
|
#include "Common.hexpat"
|
||||||
|
|
||||||
struct CellMotionPortal {
|
struct CellMotionPortal {
|
||||||
Vec3<float> center;
|
Vec3<float> center;
|
||||||
|
|
|
@ -1,5 +1,7 @@
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
|
#include "Common.hexpat"
|
||||||
|
|
||||||
struct CelObjVar {
|
struct CelObjVar {
|
||||||
bool enable_object;
|
bool enable_object;
|
||||||
padding[3];
|
padding[3];
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include "lgtypes.hexpat"
|
#include "Common.hexpat"
|
||||||
|
#include "db_files/Common.hexpat"
|
||||||
|
|
||||||
using ColorSettings;
|
using ColorSettings;
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,7 @@
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
|
#include "Common.hexpat"
|
||||||
|
|
||||||
struct DistantArtVar {
|
struct DistantArtVar {
|
||||||
bool enable_distant_art;
|
bool enable_distant_art;
|
||||||
padding[3];
|
padding[3];
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include "lgtypes.hexpat"
|
#include "Common.hexpat"
|
||||||
|
|
||||||
struct FogZone {
|
struct FogZone {
|
||||||
padding[1];
|
padding[1];
|
||||||
|
|
|
@ -0,0 +1,7 @@
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include "db_files/Common.hexpat"
|
||||||
|
|
||||||
|
struct HotRegions {
|
||||||
|
NameNum::Table name_num;
|
||||||
|
};
|
|
@ -0,0 +1,7 @@
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include "db_files/Common.hexpat"
|
||||||
|
|
||||||
|
struct MultiBrush {
|
||||||
|
NameNum::Table name_num;
|
||||||
|
};
|
|
@ -1,6 +1,6 @@
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include "lgtypes.hexpat"
|
#include "Common.hexpat"
|
||||||
|
|
||||||
enum SunlightMode : s32 {
|
enum SunlightMode : s32 {
|
||||||
SingleUnshadowed = 0x0,
|
SingleUnshadowed = 0x0,
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include "lgtypes.hexpat"
|
#include "Common.hexpat"
|
||||||
|
|
||||||
struct RoomPortal {
|
struct RoomPortal {
|
||||||
s32 id;
|
s32 id;
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include "lgtypes.hexpat"
|
#include "Common.hexpat"
|
||||||
|
#include "db_files/Common.hexpat"
|
||||||
|
|
||||||
struct SkyObjVar {
|
struct SkyObjVar {
|
||||||
bool enable_new_sky;
|
bool enable_new_sky;
|
||||||
|
|
|
@ -1,5 +1,7 @@
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
|
#include "Common.hexpat"
|
||||||
|
|
||||||
struct RGBA {
|
struct RGBA {
|
||||||
Vec3<u8> rgb;
|
Vec3<u8> rgb;
|
||||||
padding[1];
|
padding[1];
|
||||||
|
|
|
@ -1,5 +1,7 @@
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
|
#include "Common.hexpat"
|
||||||
|
|
||||||
enum Precipitation : u32 {
|
enum Precipitation : u32 {
|
||||||
Snow = 0x0,
|
Snow = 0x0,
|
||||||
Rain = 0x1,
|
Rain = 0x1,
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
#include <std/math.pat>
|
#include <std/math.pat>
|
||||||
#include <std/core.pat>
|
#include <std/core.pat>
|
||||||
#include <std/io.pat>
|
#include <std/io.pat>
|
||||||
#include "FileBase.hexpat"
|
#include "Common.hexpat"
|
||||||
|
|
||||||
using WrHeader;
|
using WrHeader;
|
||||||
using WrCell;
|
using WrCell;
|
||||||
|
|
Loading…
Reference in New Issue