From c11e2b3011a9f933091fa1b8803e8f40a7113469 Mon Sep 17 00:00:00 2001 From: ABelliqueux Date: Wed, 23 Jun 2021 19:38:16 +0200 Subject: [PATCH] Use lvl1 as default --- custom_types.h | 167 +++++++++++++++++++++++++------------------------ src/main.c | 4 +- 2 files changed, 87 insertions(+), 84 deletions(-) diff --git a/custom_types.h b/custom_types.h index 2a9a625..6eeba18 100644 --- a/custom_types.h +++ b/custom_types.h @@ -16,65 +16,66 @@ struct NODE; struct QUAD; typedef struct BODY { - VECTOR gForce; - VECTOR position; - SVECTOR velocity; - int mass; - int invMass; - VECTOR min; - VECTOR max; - int restitution; - } BODY; + VECTOR gForce; + VECTOR position; + SVECTOR velocity; + int mass; + int invMass; + VECTOR min; + VECTOR max; + int restitution; + } BODY; typedef struct VANIM { - int nframes; // number of frames e.g 20 - int nvert; // number of vertices e.g 21 - int cursor; // anim cursor - int lerpCursor; // anim cursor - int dir; // playback direction (1 or -1) - int interpolate; // use lerp to interpolate keyframes - SVECTOR data[]; // vertex pos as SVECTORs e.g 20 * 21 SVECTORS - } VANIM; + int nframes; // number of frames e.g 20 + int nvert; // number of vertices e.g 21 + int cursor; // anim cursor + int lerpCursor; // anim cursor + int dir; // playback direction (1 or -1) + int interpolate; // use lerp to interpolate keyframes + SVECTOR data[]; // vertex pos as SVECTORs e.g 20 * 21 SVECTORS + } VANIM; typedef struct PRIM { - VECTOR order; - int code; // Same as POL3/POL4 codes : Code (F3 = 1, FT3 = 2, G3 = 3, + VECTOR order; + int code; // Same as POL3/POL4 codes : Code (F3 = 1, FT3 = 2, G3 = 3, // GT3 = 4) Code (F4 = 5, FT4 = 6, G4 = 7, GT4 = 8) - } PRIM; + } PRIM; typedef struct MESH { - TMESH * tmesh; - PRIM * index; - TIM_IMAGE * tim; - unsigned long * tim_data; - MATRIX mat; - VECTOR pos; - SVECTOR rot; - short isRigidBody; - short isStaticBody; - short isPrism; - short isAnim; - short isActor; - short isLevel; - short isBG; - short isSprite; - long p; - long OTz; - BODY * body; - VANIM * anim; - struct NODE * node; - VECTOR pos2D; - } MESH; + TMESH * tmesh; + PRIM * index; + TIM_IMAGE * tim; + unsigned long * tim_data; + MATRIX mat; + VECTOR pos; + SVECTOR rot; + short isRigidBody; + short isStaticBody; + short isPrism; + short isAnim; + short isActor; + short isLevel; + short isBG; + short isSprite; + long p; + long OTz; + BODY * body; + VANIM * anim; + struct NODE * node; + VECTOR pos2D; + } MESH; typedef struct QUAD { - VECTOR v0, v1; - VECTOR v2, v3; - } QUAD; + VECTOR v0, v1; + VECTOR v2, v3; + } QUAD; typedef struct CAMPOS { - VECTOR pos; - SVECTOR rot; - } CAMPOS; + VECTOR pos; + SVECTOR rot; + } CAMPOS; + // Blender cam ~= PSX cam with these settings : // NTSC - 320x240, PAL 320x256, pixel ratio 1:1, @@ -83,48 +84,48 @@ typedef struct CAMPOS { // Lower values mean wider angle typedef struct CAMANGLE { - CAMPOS * campos; - TIM_IMAGE * BGtim; - unsigned long * tim_data; - QUAD bw, fw; - int index; - MESH * objects[]; - } CAMANGLE; + CAMPOS * campos; + TIM_IMAGE * BGtim; + unsigned long * tim_data; + QUAD bw, fw; + int index; + MESH * objects[]; + } CAMANGLE; typedef struct CAMPATH { - short len, cursor, pos; - VECTOR points[]; - } CAMPATH; + short len, cursor, pos; + VECTOR points[]; + } CAMPATH; typedef struct SIBLINGS { - int index; - struct NODE * list[]; - } SIBLINGS ; + int index; + struct NODE * list[]; + } SIBLINGS ; typedef struct CHILDREN { - int index; - MESH * list[]; - } CHILDREN ; + int index; + MESH * list[]; + } CHILDREN ; typedef struct NODE { - MESH * plane; - SIBLINGS * siblings; - CHILDREN * objects; - CHILDREN * rigidbodies; - } NODE; + MESH * plane; + SIBLINGS * siblings; + CHILDREN * objects; + CHILDREN * rigidbodies; + } NODE; typedef struct LEVEL { - CVECTOR * BGc; - MATRIX * cmat; - MATRIX * lgtmat; - MESH ** meshes; - int * meshes_length; - MESH * actorPtr; - MESH * levelPtr; - MESH * propPtr; - CAMANGLE * camPtr; - CAMPATH * camPath; - CAMANGLE ** camAngles; - NODE * curNode; - MESH * meshPlan; // This one is temporary - } LEVEL; + CVECTOR * BGc; + MATRIX * cmat; + MATRIX * lgtmat; + MESH ** meshes; + int * meshes_length; + MESH * actorPtr; + MESH * levelPtr; + MESH * propPtr; + CAMANGLE * camPtr; + CAMPATH * camPath; + CAMANGLE ** camAngles; + NODE * curNode; + MESH * meshPlan; // This one is temporary + } LEVEL; diff --git a/src/main.c b/src/main.c index 9c61c46..7244976 100644 --- a/src/main.c +++ b/src/main.c @@ -36,7 +36,9 @@ u_long overlaySize = 0; #include "../levels/level0.h" #include "../levels/level1.h" -volatile u_char level = 0; +//FIXME : Refresh BGc, lightmatrix on ovly upload... + +volatile u_char level = 1; // level 1 : 8003F05C -2147225508 // level 0 : 800AF744 -2146764988 // 80010000 -2147418112 -> -2147483648