Change folder structure
This commit is contained in:
parent
45bb2f9d32
commit
8657f7bfc2
16
Makefile
16
Makefile
@ -1,14 +1,14 @@
|
||||
TARGET = main
|
||||
TYPE = ps-exe
|
||||
|
||||
SRCS = main.c \
|
||||
pad.c \
|
||||
math.c \
|
||||
camera.c \
|
||||
physics.c \
|
||||
graphics.c \
|
||||
psx.c \
|
||||
space.c \
|
||||
SRCS = src/main.c \
|
||||
src/pad.c \
|
||||
src/math.c \
|
||||
src/camera.c \
|
||||
src/physics.c \
|
||||
src/graphics.c \
|
||||
src/psx.c \
|
||||
src/space.c \
|
||||
levels/level0.c \
|
||||
levels/level1.c \
|
||||
../common/crt0/crt0.s \
|
||||
|
@ -37,10 +37,13 @@ Real-time 3D / 8bpp background / 4bpp background
|
||||
You need to install [mkpsxiso](https://github.com/Lameguy64/mkpsxiso) and the [pcsx-redux emulator and Nugget+PsyQ SDK](https://github.com/ABelliqueux/nolibgs_hello_worlds#setting-up-the-sdk--modern-gcc--psyq-aka-nuggetpsyq) before
|
||||
you can build the engine. Put `mkpsxiso` and `pcsx-redux` in your $PATH and you should be good to go.
|
||||
|
||||
1. Clone this repo in `(...)/pcsx-redux/src/mips/`
|
||||
1. Clone this repo in `(...)/pcsx-redux/src/mips/` as a new project :
|
||||
```bash
|
||||
git clone https://github.com/ABelliqueux/3dcam-headers my-project
|
||||
```
|
||||
2. Navigate to that folder in a terminal :
|
||||
```bash
|
||||
cd /pcsx-redux/src/mips/3dcam-headers
|
||||
cd /pcsx-redux/src/mips/my-project
|
||||
```
|
||||
3. Type `./isotest.sh`. This should compile the example, build an iso with `mkpsxiso` and launch it with `pcsx-redux`.
|
||||
4. Install the [blender extension](https://github.com/ABelliqueux/blender_io_export_psx_mesh) to create your own levels.
|
||||
|
@ -1,4 +1,4 @@
|
||||
BOOT=cdrom:\SCES_003.90;1
|
||||
BOOT=cdrom:\SCES_313.37;1
|
||||
TCB=4
|
||||
EVENT=10
|
||||
STACK=801FFFF0
|
||||
STACK=801FFFF0
|
||||
|
@ -1,22 +1,22 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<iso_project image_name="OverlayExample.bin" cue_sheet="OverlayExample.cue" no_xa="0">
|
||||
<track type="data">
|
||||
<identifiers
|
||||
system = "PLAYSTATION"
|
||||
application = "PLAYSTATION"
|
||||
volume = "MYDISC"
|
||||
volume_set = "MYDISC"
|
||||
publisher = "JABY"
|
||||
data_preparer = "MKPSXISO"
|
||||
copyright = "COPYLEFT"
|
||||
/>
|
||||
<license file="LICENSEE.DAT"/>
|
||||
<directory_tree>
|
||||
<file name="system.cnf" type="data" source="config/OverlayExample.cnf"/>
|
||||
<file name="SCES_003.90" type="data" source="main.ps-exe"/>
|
||||
<file name="LEVEL0.bin" type="data" source="Overlay.lvl0" />
|
||||
<file name="LEVEL1.bin" type="data" source="Overlay.lvl1" />
|
||||
<dummy sectors="1024"/>
|
||||
</directory_tree>
|
||||
</track>
|
||||
<track type="data">
|
||||
<identifiers
|
||||
system = "PLAYSTATION"
|
||||
application = "PLAYSTATION"
|
||||
volume = "MYDISC"
|
||||
volume_set = "MYDISC"
|
||||
publisher = "SCHNAPPY"
|
||||
data_preparer = "MKPSXISO"
|
||||
copyright = "COPYLEFT"
|
||||
/>
|
||||
<!--<license file="LICENSEE.DAT"/>-->
|
||||
<directory_tree>
|
||||
<file name="system.cnf" type="data" source="config/OverlayExample.cnf"/>
|
||||
<file name="SCES_313.37" type="data" source="main.ps-exe"/>
|
||||
<file name="LEVEL0.bin" type="data" source="Overlay.lvl0" />
|
||||
<file name="LEVEL1.bin" type="data" source="Overlay.lvl1" />
|
||||
<dummy sectors="1024"/>
|
||||
</directory_tree>
|
||||
</track>
|
||||
</iso_project>
|
||||
|
166
custom_types.h
166
custom_types.h
@ -16,66 +16,65 @@ 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,
|
||||
@ -84,47 +83,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 {
|
||||
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;
|
||||
|
30
include/camera.h
Normal file
30
include/camera.h
Normal file
@ -0,0 +1,30 @@
|
||||
#pragma once
|
||||
#include <sys/types.h>
|
||||
#include <libgte.h>
|
||||
|
||||
// Camera modes
|
||||
#define ACTOR 0
|
||||
#define ROTATE 1
|
||||
#define FIXED 2
|
||||
#define TRACK 3
|
||||
#define FLYCAM 4
|
||||
#define FOLLOW 5
|
||||
|
||||
typedef struct{
|
||||
int x, xv; // x: current value += xv : new value
|
||||
int y, yv; // x,y,z, vx, vy, vz are in PSX units (ONE == 4096)
|
||||
int z, zv;
|
||||
int pan, panv;
|
||||
int tilt, tiltv;
|
||||
int rol;
|
||||
VECTOR pos;
|
||||
SVECTOR rot;
|
||||
SVECTOR dvs;
|
||||
MATRIX mat;
|
||||
} CAMERA;
|
||||
|
||||
void getCameraXZ(int * x, int * z, int actorX, int actorZ, int angle, int distance);
|
||||
void getCameraXZY(int * x, int * z, int * y, int actorX, int actorZ, int actorY, int angle, int angleX, int distance);
|
||||
void getCameraZY( int * z, int * y, int actorZ, int actorY, int angleX, int distance);
|
||||
void applyCamera(CAMERA * cam);
|
||||
void setCameraPos(CAMERA * camera, VECTOR pos, SVECTOR rot);
|
52
include/defines.h
Normal file
52
include/defines.h
Normal file
@ -0,0 +1,52 @@
|
||||
#define VMODE 0 // 0 == NTSC, 1 == PAL
|
||||
#define VSYNC 0
|
||||
#define SCREENXRES 320
|
||||
#define SCREENYRES 240
|
||||
#define CENTERX SCREENXRES/2
|
||||
#define CENTERY SCREENYRES/2
|
||||
#define FOV CENTERX
|
||||
#define CLEAR_COLOR_R 0
|
||||
#define CLEAR_COLOR_G 0
|
||||
#define CLEAR_COLOR_B 0
|
||||
|
||||
// Debug Font
|
||||
#define FNT_VRAM_X 960
|
||||
#define FNT_VRAM_Y 256
|
||||
#define FNT_SCR_X 16
|
||||
#define FNT_SCR_Y 192
|
||||
#define FNT_SCR_W 240
|
||||
#define FNT_SCR_H 32
|
||||
#define FNT_SCR_BG 0
|
||||
#define FNT_SCR_MAX_CHAR 256
|
||||
|
||||
// Ordering table
|
||||
#define OT2LEN 8
|
||||
#define OTLEN 768
|
||||
#define PRIMBUFFLEN 4096 * sizeof(POLY_GT4) // Maximum number of POLY_GT3 primitives
|
||||
|
||||
// Fog
|
||||
#define FOG_NEAR 1300
|
||||
#define FOG_FAR 1600
|
||||
|
||||
// Physics
|
||||
#define GRAVITY 10
|
||||
#define SCALE 4
|
||||
|
||||
// Pad codes defines
|
||||
// Applied on PADL
|
||||
#define PadSelect ( 1 )
|
||||
#define PadStart ( 1 << 3 )
|
||||
|
||||
// Up, Right, Down, Left will be used on PADL (left side of pad )and PADR (right side of pad)
|
||||
#define PadUp ( 1 << 4 )
|
||||
#define PadRight ( 1 << 5 )
|
||||
#define PadDown ( 1 << 6 )
|
||||
#define PadLeft ( 1 << 7 )
|
||||
#define PadR3 ( 1 << 2 )
|
||||
#define PadL3 ( 1 << 1 )
|
||||
|
||||
// Triggers applied on PADR
|
||||
#define PadShldL1 ( 1 << 2 )
|
||||
#define PadShldL2 ( 1 )
|
||||
#define PadShldR1 ( 1 << 3 )
|
||||
#define PadShldR2 ( 1 << 1 )
|
9
include/graphics.h
Normal file
9
include/graphics.h
Normal file
@ -0,0 +1,9 @@
|
||||
#pragma once
|
||||
#include "../include/camera.h"
|
||||
#include "../include/physics.h"
|
||||
#include "../include/defines.h"
|
||||
|
||||
// Drawing
|
||||
void transformMesh(CAMERA * camera, MESH * meshes);
|
||||
void drawPoly(MESH * mesh, long * Flag, int atime, int * camMode, char ** nextpri, u_long * ot, char * db, DRAWENV * draw);
|
||||
void drawBG(CAMANGLE * camPtr, char ** nextpri, u_long * otdisc, char * db);
|
27
include/macros.h
Normal file
27
include/macros.h
Normal file
@ -0,0 +1,27 @@
|
||||
// MACROS
|
||||
// swap(x, y, buffer)
|
||||
#define SWAP(a,b,c) {(c)=(a); (a)=(b); (b)=(c);}
|
||||
|
||||
// dotproduct of two vectors
|
||||
#define dotProduct(v0, v1) \
|
||||
(v0).vx * (v1).vx + \
|
||||
(v0).vy * (v1).vy + \
|
||||
(v0).vz * (v1).vz
|
||||
|
||||
// min value
|
||||
#define min(a,b) \
|
||||
(a)-(b)>0?(b):(a)
|
||||
// max
|
||||
#define max(a,b) \
|
||||
(a)-(b)>0?(a):(b)
|
||||
|
||||
// substract vector
|
||||
#define subVector(v0, v1) \
|
||||
(v0).vx - (v1).vx, \
|
||||
(v0).vy - (v1).vy, \
|
||||
(v0).vz - (v1).vz
|
||||
|
||||
#define normalizeVector(v) \
|
||||
((v)->vx << 12) >> 8, \
|
||||
((v)->vy << 12) >> 8, \
|
||||
((v)->vz << 12) >> 8
|
35
include/math.h
Normal file
35
include/math.h
Normal file
@ -0,0 +1,35 @@
|
||||
#pragma once
|
||||
|
||||
#include <stddef.h>
|
||||
#include <stdint.h>
|
||||
#include <libgte.h>
|
||||
#include "../include/macros.h"
|
||||
|
||||
// Precalculated arctan values
|
||||
#include "../src/atan.c"
|
||||
|
||||
// fixed point math
|
||||
int32_t dMul(int32_t a, int32_t b);
|
||||
uint32_t lerpU(uint32_t start, uint32_t dest, unsigned pos);
|
||||
int32_t lerpS(int32_t start, int32_t dest, unsigned pos);
|
||||
int32_t lerpD(int32_t start, int32_t dest, int32_t pos);
|
||||
long long lerpL(long long start, long long dest, long long pos);
|
||||
|
||||
// Sin/Cos Table
|
||||
void generateTable(void);
|
||||
int ncos(u_int t);
|
||||
int nsin(u_int t);
|
||||
|
||||
// Atan table
|
||||
long long patan(long x, long y);
|
||||
|
||||
// Sqrt
|
||||
u_int psqrt(u_int n);
|
||||
|
||||
// Lerps
|
||||
int lerp(int start, int end, int factor); // FIXME : not working as it should
|
||||
SVECTOR SVlerp(SVECTOR start, SVECTOR end, int factor); // FIXME
|
||||
long long easeIn(long long i);
|
||||
int easeOut(int i);
|
||||
//~ int easeInOut(int i, int div);
|
||||
VECTOR getVectorTo(VECTOR actor, VECTOR target);
|
32
include/pad.h
Normal file
32
include/pad.h
Normal file
@ -0,0 +1,32 @@
|
||||
#pragma once
|
||||
|
||||
// Structure for storing processed controller data
|
||||
typedef struct
|
||||
{
|
||||
int xpos, ypos; // Stored position for sprite(s)
|
||||
int xpos2, ypos2; // controlled by this controller.
|
||||
unsigned char status; // These 8 values are obtained
|
||||
unsigned char type; // directly from the controller
|
||||
unsigned char button1; // buffer we installed with InitPAD.
|
||||
unsigned char button2;
|
||||
unsigned char analog0;
|
||||
unsigned char analog1;
|
||||
unsigned char analog2;
|
||||
unsigned char analog3;
|
||||
} Controller_Data;
|
||||
|
||||
// All-purpose controller data buffer
|
||||
typedef struct
|
||||
{
|
||||
unsigned char pad[34]; // 8-bytes w/o Multi-Tap, 34-bytes w/Multi-Tap
|
||||
} Controller_Buffer;
|
||||
|
||||
// Structure for RAW hardware-based light gun position values
|
||||
typedef struct
|
||||
{
|
||||
unsigned short v_count; // Y-axis (vertical scan counter)
|
||||
unsigned short h_count; // H-axis (horizontal pixel clock value)
|
||||
} Gun_Position;
|
||||
|
||||
void get_digital_direction( Controller_Data *c, int buttondata );
|
||||
void read_controller( Controller_Data *c, unsigned char *buf, int port );
|
19
include/pcdrv.h
Normal file
19
include/pcdrv.h
Normal file
@ -0,0 +1,19 @@
|
||||
#pragma once
|
||||
#include <sys/types.h>
|
||||
#include <stdio.h>
|
||||
|
||||
#define OPEN 0
|
||||
#define CLOSE 1
|
||||
#define SEEK 2
|
||||
#define READ 3
|
||||
#define WRITE 4
|
||||
#define CREATE 5
|
||||
#define LOAD 6
|
||||
|
||||
int waitForSIODone( int * flag );
|
||||
void PCload( u_long * loadAddress, u_short * flagAddress, const char * filename );
|
||||
int PCopen(const char * filename, int attributes );
|
||||
int PCcreate(const char * filename, int attributes );
|
||||
int PCclose( int fd );
|
||||
int PCseek( int fd, int offset, int accessMode );
|
||||
int PCread( int fd, int len, char * buffer );
|
15
include/physics.h
Normal file
15
include/physics.h
Normal file
@ -0,0 +1,15 @@
|
||||
#pragma once
|
||||
#include <sys/types.h>
|
||||
#include <libgte.h>
|
||||
#include <libgpu.h>
|
||||
#include "../include/defines.h"
|
||||
#include "../include/macros.h"
|
||||
#include "../custom_types.h"
|
||||
|
||||
short checkLineW( VECTOR * pointA, VECTOR * pointB, MESH * mesh );
|
||||
short checkLineS( VECTOR * pointA, VECTOR * pointB, MESH * mesh );
|
||||
VECTOR getIntCollision(BODY one, BODY two);
|
||||
VECTOR getExtCollision(BODY one, BODY two);
|
||||
void ResolveCollision( BODY * one, BODY * two );
|
||||
VECTOR angularMom(BODY body);
|
||||
void applyAcceleration(BODY * actor);
|
21
include/psx.h
Normal file
21
include/psx.h
Normal file
@ -0,0 +1,21 @@
|
||||
#pragma once
|
||||
#include <sys/types.h>
|
||||
#include <stdio.h>
|
||||
#include <libgte.h>
|
||||
#include <libetc.h>
|
||||
#include <libgpu.h>
|
||||
#include <libapi.h>
|
||||
#include <libcd.h>
|
||||
#include "../include/defines.h"
|
||||
#include "../custom_types.h"
|
||||
|
||||
// PSX setup
|
||||
void init(DISPENV disp[2], DRAWENV draw[2], short db, MATRIX * cmat, CVECTOR * BG, VECTOR * BK );
|
||||
void ScrRst(void);
|
||||
void display(DISPENV * disp, DRAWENV * draw, u_long * otdisc, char * primbuff, char ** nextprim, char * db);
|
||||
|
||||
// Utils
|
||||
void LvlPtrSet( LEVEL * curLevel, LEVEL * level );
|
||||
int LoadLevelCD(const char*const LevelName, u_long * LoadAddress);
|
||||
void SwitchLevel( LEVEL * curLevel, LEVEL * loadLevel);
|
||||
void LoadTexture(u_long * tim, TIM_IMAGE * tparam);
|
9
include/space.h
Normal file
9
include/space.h
Normal file
@ -0,0 +1,9 @@
|
||||
#pragma once
|
||||
#include <sys/types.h>
|
||||
#include <libgte.h>
|
||||
#include <libgpu.h>
|
||||
#include "../include/defines.h"
|
||||
|
||||
int cliptest3(short * v1);
|
||||
void worldToScreen( VECTOR * worldPos, VECTOR * screenPos );
|
||||
void screenToWorld( VECTOR * screenPos, VECTOR * worldPos );
|
11346
levels/level0.c
11346
levels/level0.c
File diff suppressed because it is too large
Load Diff
367
levels/level0.h
367
levels/level0.h
@ -4,17 +4,9 @@
|
||||
|
||||
extern LEVEL level0;
|
||||
|
||||
extern CAMPOS level0_camPos_camPath;
|
||||
extern CVECTOR level0_BGc;;
|
||||
|
||||
extern CAMPOS level0_camPos_camPath_001;
|
||||
|
||||
extern CAMPOS level0_camPos_camPath_002;
|
||||
|
||||
extern CAMPOS level0_camPos_camPath_003;
|
||||
|
||||
extern CAMPOS level0_camPos_camPath_004;
|
||||
|
||||
extern CAMPOS level0_camPos_camPath_005;
|
||||
extern CAMPOS level0_camPos_Camera;
|
||||
|
||||
extern CAMPATH level0_camPath;
|
||||
|
||||
@ -26,8 +18,6 @@ extern SVECTOR modelCube_mesh[];
|
||||
|
||||
extern SVECTOR level0_modelCube_normal[];
|
||||
|
||||
extern SVECTOR level0_modelCube_uv[];
|
||||
|
||||
extern CVECTOR level0_modelCube_color[];
|
||||
|
||||
extern PRIM level0_modelCube_index[];
|
||||
@ -36,355 +26,37 @@ extern BODY level0_modelCube_body;
|
||||
|
||||
extern TMESH level0_modelCube;
|
||||
|
||||
extern unsigned long _binary_TIM_cat_tim_start[];
|
||||
|
||||
extern unsigned long _binary_TIM_cat_tim_end[];
|
||||
|
||||
extern unsigned long _binary_TIM_cat_tim_length;
|
||||
|
||||
extern TIM_IMAGE level0_tim_cat;
|
||||
|
||||
extern MESH level0_meshCube;
|
||||
|
||||
extern SVECTOR modelCylindre_mesh[];
|
||||
extern SVECTOR modelPlane_mesh[];
|
||||
|
||||
extern SVECTOR level0_modelCylindre_normal[];
|
||||
extern SVECTOR level0_modelPlane_normal[];
|
||||
|
||||
extern SVECTOR level0_modelCylindre_uv[];
|
||||
extern CVECTOR level0_modelPlane_color[];
|
||||
|
||||
extern CVECTOR level0_modelCylindre_color[];
|
||||
extern PRIM level0_modelPlane_index[];
|
||||
|
||||
extern PRIM level0_modelCylindre_index[];
|
||||
extern BODY level0_modelPlane_body;
|
||||
|
||||
extern VANIM level0_modelCylindre_anim;
|
||||
extern TMESH level0_modelPlane;
|
||||
|
||||
extern BODY level0_modelCylindre_body;
|
||||
extern MESH level0_meshPlane;
|
||||
|
||||
extern TMESH level0_modelCylindre;
|
||||
|
||||
extern unsigned long _binary_TIM_home_tim_start[];
|
||||
|
||||
extern unsigned long _binary_TIM_home_tim_end[];
|
||||
|
||||
extern unsigned long _binary_TIM_home_tim_length;
|
||||
|
||||
extern TIM_IMAGE level0_tim_home;
|
||||
|
||||
extern MESH level0_meshCylindre;
|
||||
|
||||
extern SVECTOR modelgnd_mesh[];
|
||||
|
||||
extern SVECTOR level0_modelgnd_normal[];
|
||||
|
||||
extern SVECTOR level0_modelgnd_uv[];
|
||||
|
||||
extern CVECTOR level0_modelgnd_color[];
|
||||
|
||||
extern PRIM level0_modelgnd_index[];
|
||||
|
||||
extern BODY level0_modelgnd_body;
|
||||
|
||||
extern TMESH level0_modelgnd;
|
||||
|
||||
extern MESH level0_meshgnd;
|
||||
|
||||
extern SVECTOR modelgnd_001_mesh[];
|
||||
|
||||
extern SVECTOR level0_modelgnd_001_normal[];
|
||||
|
||||
extern SVECTOR level0_modelgnd_001_uv[];
|
||||
|
||||
extern CVECTOR level0_modelgnd_001_color[];
|
||||
|
||||
extern PRIM level0_modelgnd_001_index[];
|
||||
|
||||
extern BODY level0_modelgnd_001_body;
|
||||
|
||||
extern TMESH level0_modelgnd_001;
|
||||
|
||||
extern MESH level0_meshgnd_001;
|
||||
|
||||
extern SVECTOR modelgnd_003_mesh[];
|
||||
|
||||
extern SVECTOR level0_modelgnd_003_normal[];
|
||||
|
||||
extern SVECTOR level0_modelgnd_003_uv[];
|
||||
|
||||
extern CVECTOR level0_modelgnd_003_color[];
|
||||
|
||||
extern PRIM level0_modelgnd_003_index[];
|
||||
|
||||
extern BODY level0_modelgnd_003_body;
|
||||
|
||||
extern TMESH level0_modelgnd_003;
|
||||
|
||||
extern MESH level0_meshgnd_003;
|
||||
|
||||
extern SVECTOR modelgnd_002_mesh[];
|
||||
|
||||
extern SVECTOR level0_modelgnd_002_normal[];
|
||||
|
||||
extern SVECTOR level0_modelgnd_002_uv[];
|
||||
|
||||
extern CVECTOR level0_modelgnd_002_color[];
|
||||
|
||||
extern PRIM level0_modelgnd_002_index[];
|
||||
|
||||
extern BODY level0_modelgnd_002_body;
|
||||
|
||||
extern TMESH level0_modelgnd_002;
|
||||
|
||||
extern MESH level0_meshgnd_002;
|
||||
|
||||
extern SVECTOR modelLara_mesh[];
|
||||
|
||||
extern SVECTOR level0_modelLara_normal[];
|
||||
|
||||
extern SVECTOR level0_modelLara_uv[];
|
||||
|
||||
extern CVECTOR level0_modelLara_color[];
|
||||
|
||||
extern PRIM level0_modelLara_index[];
|
||||
|
||||
extern BODY level0_modelLara_body;
|
||||
|
||||
extern TMESH level0_modelLara;
|
||||
|
||||
extern unsigned long _binary_TIM_lara_tim_start[];
|
||||
|
||||
extern unsigned long _binary_TIM_lara_tim_end[];
|
||||
|
||||
extern unsigned long _binary_TIM_lara_tim_length;
|
||||
|
||||
extern TIM_IMAGE level0_tim_lara;
|
||||
|
||||
extern MESH level0_meshLara;
|
||||
|
||||
extern SVECTOR modelobject_mesh[];
|
||||
|
||||
extern SVECTOR level0_modelobject_normal[];
|
||||
|
||||
extern SVECTOR level0_modelobject_uv[];
|
||||
|
||||
extern CVECTOR level0_modelobject_color[];
|
||||
|
||||
extern PRIM level0_modelobject_index[];
|
||||
|
||||
extern BODY level0_modelobject_body;
|
||||
|
||||
extern TMESH level0_modelobject;
|
||||
|
||||
extern MESH level0_meshobject;
|
||||
|
||||
extern SVECTOR modelPlan_mesh[];
|
||||
|
||||
extern SVECTOR level0_modelPlan_normal[];
|
||||
|
||||
extern SVECTOR level0_modelPlan_uv[];
|
||||
|
||||
extern CVECTOR level0_modelPlan_color[];
|
||||
|
||||
extern PRIM level0_modelPlan_index[];
|
||||
|
||||
extern BODY level0_modelPlan_body;
|
||||
|
||||
extern TMESH level0_modelPlan;
|
||||
|
||||
extern MESH level0_meshPlan;
|
||||
|
||||
extern SVECTOR modelSphere_mesh[];
|
||||
|
||||
extern SVECTOR level0_modelSphere_normal[];
|
||||
|
||||
extern SVECTOR level0_modelSphere_uv[];
|
||||
|
||||
extern CVECTOR level0_modelSphere_color[];
|
||||
|
||||
extern PRIM level0_modelSphere_index[];
|
||||
|
||||
extern BODY level0_modelSphere_body;
|
||||
|
||||
extern TMESH level0_modelSphere;
|
||||
|
||||
extern MESH level0_meshSphere;
|
||||
|
||||
extern SVECTOR modelSphere_001_mesh[];
|
||||
|
||||
extern SVECTOR level0_modelSphere_001_normal[];
|
||||
|
||||
extern SVECTOR level0_modelSphere_001_uv[];
|
||||
|
||||
extern CVECTOR level0_modelSphere_001_color[];
|
||||
|
||||
extern PRIM level0_modelSphere_001_index[];
|
||||
|
||||
extern BODY level0_modelSphere_001_body;
|
||||
|
||||
extern TMESH level0_modelSphere_001;
|
||||
|
||||
extern MESH level0_meshSphere_001;
|
||||
|
||||
extern SVECTOR modelwall_mesh[];
|
||||
|
||||
extern SVECTOR level0_modelwall_normal[];
|
||||
|
||||
extern SVECTOR level0_modelwall_uv[];
|
||||
|
||||
extern CVECTOR level0_modelwall_color[];
|
||||
|
||||
extern PRIM level0_modelwall_index[];
|
||||
|
||||
extern BODY level0_modelwall_body;
|
||||
|
||||
extern TMESH level0_modelwall;
|
||||
|
||||
extern MESH level0_meshwall;
|
||||
|
||||
extern SVECTOR modelwall_001_mesh[];
|
||||
|
||||
extern SVECTOR level0_modelwall_001_normal[];
|
||||
|
||||
extern SVECTOR level0_modelwall_001_uv[];
|
||||
|
||||
extern CVECTOR level0_modelwall_001_color[];
|
||||
|
||||
extern PRIM level0_modelwall_001_index[];
|
||||
|
||||
extern BODY level0_modelwall_001_body;
|
||||
|
||||
extern TMESH level0_modelwall_001;
|
||||
|
||||
extern MESH level0_meshwall_001;
|
||||
|
||||
extern SVECTOR modelwall_002_mesh[];
|
||||
|
||||
extern SVECTOR level0_modelwall_002_normal[];
|
||||
|
||||
extern SVECTOR level0_modelwall_002_uv[];
|
||||
|
||||
extern CVECTOR level0_modelwall_002_color[];
|
||||
|
||||
extern PRIM level0_modelwall_002_index[];
|
||||
|
||||
extern BODY level0_modelwall_002_body;
|
||||
|
||||
extern TMESH level0_modelwall_002;
|
||||
|
||||
extern MESH level0_meshwall_002;
|
||||
|
||||
extern SVECTOR modelwall_003_mesh[];
|
||||
|
||||
extern SVECTOR level0_modelwall_003_normal[];
|
||||
|
||||
extern SVECTOR level0_modelwall_003_uv[];
|
||||
|
||||
extern CVECTOR level0_modelwall_003_color[];
|
||||
|
||||
extern PRIM level0_modelwall_003_index[];
|
||||
|
||||
extern BODY level0_modelwall_003_body;
|
||||
|
||||
extern TMESH level0_modelwall_003;
|
||||
|
||||
extern MESH level0_meshwall_003;
|
||||
|
||||
extern MESH * level0_meshes[15];
|
||||
extern MESH * level0_meshes[2];
|
||||
|
||||
extern int level0_meshes_length;
|
||||
|
||||
extern unsigned long _binary_TIM_bg_camPath_tim_start[];
|
||||
extern CAMANGLE level0_camAngle_Camera;
|
||||
|
||||
extern unsigned long _binary_TIM_bg_camPath_tim_end[];
|
||||
extern CAMANGLE * level0_camAngles[0];
|
||||
|
||||
extern unsigned long _binary_TIM_bg_camPath_tim_length;
|
||||
extern SIBLINGS level0_nodePlane_siblings;
|
||||
|
||||
extern TIM_IMAGE tim_bg_camPath;
|
||||
extern CHILDREN level0_nodePlane_objects;
|
||||
|
||||
extern CAMANGLE level0_camAngle_camPath;
|
||||
extern CHILDREN level0_nodePlane_rigidbodies;
|
||||
|
||||
extern unsigned long _binary_TIM_bg_camPath_001_tim_start[];
|
||||
|
||||
extern unsigned long _binary_TIM_bg_camPath_001_tim_end[];
|
||||
|
||||
extern unsigned long _binary_TIM_bg_camPath_001_tim_length;
|
||||
|
||||
extern TIM_IMAGE tim_bg_camPath_001;
|
||||
|
||||
extern CAMANGLE level0_camAngle_camPath_001;
|
||||
|
||||
extern unsigned long _binary_TIM_bg_camPath_002_tim_start[];
|
||||
|
||||
extern unsigned long _binary_TIM_bg_camPath_002_tim_end[];
|
||||
|
||||
extern unsigned long _binary_TIM_bg_camPath_002_tim_length;
|
||||
|
||||
extern TIM_IMAGE tim_bg_camPath_002;
|
||||
|
||||
extern CAMANGLE level0_camAngle_camPath_002;
|
||||
|
||||
extern unsigned long _binary_TIM_bg_camPath_003_tim_start[];
|
||||
|
||||
extern unsigned long _binary_TIM_bg_camPath_003_tim_end[];
|
||||
|
||||
extern unsigned long _binary_TIM_bg_camPath_003_tim_length;
|
||||
|
||||
extern TIM_IMAGE tim_bg_camPath_003;
|
||||
|
||||
extern CAMANGLE level0_camAngle_camPath_003;
|
||||
|
||||
extern unsigned long _binary_TIM_bg_camPath_004_tim_start[];
|
||||
|
||||
extern unsigned long _binary_TIM_bg_camPath_004_tim_end[];
|
||||
|
||||
extern unsigned long _binary_TIM_bg_camPath_004_tim_length;
|
||||
|
||||
extern TIM_IMAGE tim_bg_camPath_004;
|
||||
|
||||
extern CAMANGLE level0_camAngle_camPath_004;
|
||||
|
||||
extern unsigned long _binary_TIM_bg_camPath_005_tim_start[];
|
||||
|
||||
extern unsigned long _binary_TIM_bg_camPath_005_tim_end[];
|
||||
|
||||
extern unsigned long _binary_TIM_bg_camPath_005_tim_length;
|
||||
|
||||
extern TIM_IMAGE tim_bg_camPath_005;
|
||||
|
||||
extern CAMANGLE level0_camAngle_camPath_005;
|
||||
|
||||
extern CAMANGLE * level0_camAngles[6];
|
||||
|
||||
extern SIBLINGS level0_nodegnd_siblings;
|
||||
|
||||
extern CHILDREN level0_nodegnd_objects;
|
||||
|
||||
extern CHILDREN level0_nodegnd_rigidbodies;
|
||||
|
||||
extern NODE level0_nodegnd;
|
||||
|
||||
extern SIBLINGS level0_nodegnd_001_siblings;
|
||||
|
||||
extern CHILDREN level0_nodegnd_001_objects;
|
||||
|
||||
extern CHILDREN level0_nodegnd_001_rigidbodies;
|
||||
|
||||
extern NODE level0_nodegnd_001;
|
||||
|
||||
extern SIBLINGS level0_nodegnd_002_siblings;
|
||||
|
||||
extern CHILDREN level0_nodegnd_002_objects;
|
||||
|
||||
extern CHILDREN level0_nodegnd_002_rigidbodies;
|
||||
|
||||
extern NODE level0_nodegnd_002;
|
||||
|
||||
extern SIBLINGS level0_nodegnd_003_siblings;
|
||||
|
||||
extern CHILDREN level0_nodegnd_003_objects;
|
||||
|
||||
extern CHILDREN level0_nodegnd_003_rigidbodies;
|
||||
|
||||
extern NODE level0_nodegnd_003;
|
||||
extern NODE level0_nodePlane;
|
||||
|
||||
extern MESH * level0_actorPtr;
|
||||
|
||||
@ -396,10 +68,5 @@ extern CAMANGLE * level0_camPtr;
|
||||
|
||||
extern NODE * level0_curNode;
|
||||
|
||||
extern NODE level0_nodegnd;
|
||||
extern NODE level0_nodePlane;
|
||||
|
||||
extern NODE level0_nodegnd_001;
|
||||
|
||||
extern NODE level0_nodegnd_002;
|
||||
|
||||
extern NODE level0_nodegnd_003;
|
||||
|
10991
levels/level1.c
10991
levels/level1.c
File diff suppressed because it is too large
Load Diff
347
levels/level1.h
347
levels/level1.h
@ -1,347 +0,0 @@
|
||||
#pragma once
|
||||
|
||||
#include "../custom_types.h"
|
||||
|
||||
extern LEVEL level1;
|
||||
|
||||
extern CAMPOS level1_camPos_camPath;
|
||||
|
||||
extern CAMPOS level1_camPos_camPath_001;
|
||||
|
||||
extern CAMPOS level1_camPos_camPath_002;
|
||||
|
||||
extern CAMPOS level1_camPos_camPath_003;
|
||||
|
||||
extern CAMPOS level1_camPos_camPath_004;
|
||||
|
||||
extern CAMPOS level1_camPos_camPath_005;
|
||||
|
||||
extern CAMPATH level1_camPath;
|
||||
|
||||
extern MATRIX level1_lgtmat;
|
||||
|
||||
extern MATRIX level1_cmat;
|
||||
|
||||
extern SVECTOR modelCube_mesh[];
|
||||
|
||||
extern SVECTOR level1_modelCube_normal[];
|
||||
|
||||
extern SVECTOR level1_modelCube_uv[];
|
||||
|
||||
extern CVECTOR level1_modelCube_color[];
|
||||
|
||||
extern PRIM level1_modelCube_index[];
|
||||
|
||||
extern BODY level1_modelCube_body;
|
||||
|
||||
extern TMESH level1_modelCube;
|
||||
|
||||
extern unsigned long _binary_TIM_cat_tim_start[];
|
||||
|
||||
extern unsigned long _binary_TIM_cat_tim_end[];
|
||||
|
||||
extern unsigned long _binary_TIM_cat_tim_length;
|
||||
|
||||
extern TIM_IMAGE level1_tim_cat;
|
||||
|
||||
extern MESH level1_meshCube;
|
||||
|
||||
extern SVECTOR modelCylindre_mesh[];
|
||||
|
||||
extern SVECTOR level1_modelCylindre_normal[];
|
||||
|
||||
extern SVECTOR level1_modelCylindre_uv[];
|
||||
|
||||
extern CVECTOR level1_modelCylindre_color[];
|
||||
|
||||
extern PRIM level1_modelCylindre_index[];
|
||||
|
||||
extern VANIM level1_modelCylindre_anim;
|
||||
|
||||
extern BODY level1_modelCylindre_body;
|
||||
|
||||
extern TMESH level1_modelCylindre;
|
||||
|
||||
extern unsigned long _binary_TIM_home_tim_start[];
|
||||
|
||||
extern unsigned long _binary_TIM_home_tim_end[];
|
||||
|
||||
extern unsigned long _binary_TIM_home_tim_length;
|
||||
|
||||
extern TIM_IMAGE level1_tim_home;
|
||||
|
||||
extern MESH level1_meshCylindre;
|
||||
|
||||
extern SVECTOR modelgnd_mesh[];
|
||||
|
||||
extern SVECTOR level1_modelgnd_normal[];
|
||||
|
||||
extern SVECTOR level1_modelgnd_uv[];
|
||||
|
||||
extern CVECTOR level1_modelgnd_color[];
|
||||
|
||||
extern PRIM level1_modelgnd_index[];
|
||||
|
||||
extern BODY level1_modelgnd_body;
|
||||
|
||||
extern TMESH level1_modelgnd;
|
||||
|
||||
extern MESH level1_meshgnd;
|
||||
|
||||
extern SVECTOR modelgnd_001_mesh[];
|
||||
|
||||
extern SVECTOR level1_modelgnd_001_normal[];
|
||||
|
||||
extern SVECTOR level1_modelgnd_001_uv[];
|
||||
|
||||
extern CVECTOR level1_modelgnd_001_color[];
|
||||
|
||||
extern PRIM level1_modelgnd_001_index[];
|
||||
|
||||
extern BODY level1_modelgnd_001_body;
|
||||
|
||||
extern TMESH level1_modelgnd_001;
|
||||
|
||||
extern MESH level1_meshgnd_001;
|
||||
|
||||
extern SVECTOR modelgnd_003_mesh[];
|
||||
|
||||
extern SVECTOR level1_modelgnd_003_normal[];
|
||||
|
||||
extern SVECTOR level1_modelgnd_003_uv[];
|
||||
|
||||
extern CVECTOR level1_modelgnd_003_color[];
|
||||
|
||||
extern PRIM level1_modelgnd_003_index[];
|
||||
|
||||
extern BODY level1_modelgnd_003_body;
|
||||
|
||||
extern TMESH level1_modelgnd_003;
|
||||
|
||||
extern MESH level1_meshgnd_003;
|
||||
|
||||
extern SVECTOR modelgnd_002_mesh[];
|
||||
|
||||
extern SVECTOR level1_modelgnd_002_normal[];
|
||||
|
||||
extern SVECTOR level1_modelgnd_002_uv[];
|
||||
|
||||
extern CVECTOR level1_modelgnd_002_color[];
|
||||
|
||||
extern PRIM level1_modelgnd_002_index[];
|
||||
|
||||
extern BODY level1_modelgnd_002_body;
|
||||
|
||||
extern TMESH level1_modelgnd_002;
|
||||
|
||||
extern MESH level1_meshgnd_002;
|
||||
|
||||
extern SVECTOR modelLara_mesh[];
|
||||
|
||||
extern SVECTOR level1_modelLara_normal[];
|
||||
|
||||
extern SVECTOR level1_modelLara_uv[];
|
||||
|
||||
extern CVECTOR level1_modelLara_color[];
|
||||
|
||||
extern PRIM level1_modelLara_index[];
|
||||
|
||||
extern BODY level1_modelLara_body;
|
||||
|
||||
extern TMESH level1_modelLara;
|
||||
|
||||
extern unsigned long _binary_TIM_lara_tim_start[];
|
||||
|
||||
extern unsigned long _binary_TIM_lara_tim_end[];
|
||||
|
||||
extern unsigned long _binary_TIM_lara_tim_length;
|
||||
|
||||
extern TIM_IMAGE level1_tim_lara;
|
||||
|
||||
extern MESH level1_meshLara;
|
||||
|
||||
extern SVECTOR modelobject_mesh[];
|
||||
|
||||
extern SVECTOR level1_modelobject_normal[];
|
||||
|
||||
extern SVECTOR level1_modelobject_uv[];
|
||||
|
||||
extern CVECTOR level1_modelobject_color[];
|
||||
|
||||
extern PRIM level1_modelobject_index[];
|
||||
|
||||
extern BODY level1_modelobject_body;
|
||||
|
||||
extern TMESH level1_modelobject;
|
||||
|
||||
extern MESH level1_meshobject;
|
||||
|
||||
extern SVECTOR modelPlan_mesh[];
|
||||
|
||||
extern SVECTOR level1_modelPlan_normal[];
|
||||
|
||||
extern SVECTOR level1_modelPlan_uv[];
|
||||
|
||||
extern CVECTOR level1_modelPlan_color[];
|
||||
|
||||
extern PRIM level1_modelPlan_index[];
|
||||
|
||||
extern BODY level1_modelPlan_body;
|
||||
|
||||
extern TMESH level1_modelPlan;
|
||||
|
||||
extern MESH level1_meshPlan;
|
||||
|
||||
extern SVECTOR modelSphere_mesh[];
|
||||
|
||||
extern SVECTOR level1_modelSphere_normal[];
|
||||
|
||||
extern SVECTOR level1_modelSphere_uv[];
|
||||
|
||||
extern CVECTOR level1_modelSphere_color[];
|
||||
|
||||
extern PRIM level1_modelSphere_index[];
|
||||
|
||||
extern BODY level1_modelSphere_body;
|
||||
|
||||
extern TMESH level1_modelSphere;
|
||||
|
||||
extern MESH level1_meshSphere;
|
||||
|
||||
extern SVECTOR modelSphere_001_mesh[];
|
||||
|
||||
extern SVECTOR level1_modelSphere_001_normal[];
|
||||
|
||||
extern SVECTOR level1_modelSphere_001_uv[];
|
||||
|
||||
extern CVECTOR level1_modelSphere_001_color[];
|
||||
|
||||
extern PRIM level1_modelSphere_001_index[];
|
||||
|
||||
extern BODY level1_modelSphere_001_body;
|
||||
|
||||
extern TMESH level1_modelSphere_001;
|
||||
|
||||
extern MESH level1_meshSphere_001;
|
||||
|
||||
extern SVECTOR modelwall_mesh[];
|
||||
|
||||
extern SVECTOR level1_modelwall_normal[];
|
||||
|
||||
extern SVECTOR level1_modelwall_uv[];
|
||||
|
||||
extern CVECTOR level1_modelwall_color[];
|
||||
|
||||
extern PRIM level1_modelwall_index[];
|
||||
|
||||
extern BODY level1_modelwall_body;
|
||||
|
||||
extern TMESH level1_modelwall;
|
||||
|
||||
extern MESH level1_meshwall;
|
||||
|
||||
extern SVECTOR modelwall_001_mesh[];
|
||||
|
||||
extern SVECTOR level1_modelwall_001_normal[];
|
||||
|
||||
extern SVECTOR level1_modelwall_001_uv[];
|
||||
|
||||
extern CVECTOR level1_modelwall_001_color[];
|
||||
|
||||
extern PRIM level1_modelwall_001_index[];
|
||||
|
||||
extern BODY level1_modelwall_001_body;
|
||||
|
||||
extern TMESH level1_modelwall_001;
|
||||
|
||||
extern MESH level1_meshwall_001;
|
||||
|
||||
extern SVECTOR modelwall_002_mesh[];
|
||||
|
||||
extern SVECTOR level1_modelwall_002_normal[];
|
||||
|
||||
extern SVECTOR level1_modelwall_002_uv[];
|
||||
|
||||
extern CVECTOR level1_modelwall_002_color[];
|
||||
|
||||
extern PRIM level1_modelwall_002_index[];
|
||||
|
||||
extern BODY level1_modelwall_002_body;
|
||||
|
||||
extern TMESH level1_modelwall_002;
|
||||
|
||||
extern MESH level1_meshwall_002;
|
||||
|
||||
extern SVECTOR modelwall_003_mesh[];
|
||||
|
||||
extern SVECTOR level1_modelwall_003_normal[];
|
||||
|
||||
extern SVECTOR level1_modelwall_003_uv[];
|
||||
|
||||
extern CVECTOR level1_modelwall_003_color[];
|
||||
|
||||
extern PRIM level1_modelwall_003_index[];
|
||||
|
||||
extern BODY level1_modelwall_003_body;
|
||||
|
||||
extern TMESH level1_modelwall_003;
|
||||
|
||||
extern MESH level1_meshwall_003;
|
||||
|
||||
extern MESH * level1_meshes[15];
|
||||
|
||||
extern int level1_meshes_length;
|
||||
|
||||
extern CAMANGLE level1_camAngle_camPath_001;
|
||||
|
||||
extern CAMANGLE * level1_camAngles[0];
|
||||
|
||||
extern SIBLINGS level1_nodegnd_siblings;
|
||||
|
||||
extern CHILDREN level1_nodegnd_objects;
|
||||
|
||||
extern CHILDREN level1_nodegnd_rigidbodies;
|
||||
|
||||
extern NODE level1_nodegnd;
|
||||
|
||||
extern SIBLINGS level1_nodegnd_001_siblings;
|
||||
|
||||
extern CHILDREN level1_nodegnd_001_objects;
|
||||
|
||||
extern CHILDREN level1_nodegnd_001_rigidbodies;
|
||||
|
||||
extern NODE level1_nodegnd_001;
|
||||
|
||||
extern SIBLINGS level1_nodegnd_002_siblings;
|
||||
|
||||
extern CHILDREN level1_nodegnd_002_objects;
|
||||
|
||||
extern CHILDREN level1_nodegnd_002_rigidbodies;
|
||||
|
||||
extern NODE level1_nodegnd_002;
|
||||
|
||||
extern SIBLINGS level1_nodegnd_003_siblings;
|
||||
|
||||
extern CHILDREN level1_nodegnd_003_objects;
|
||||
|
||||
extern CHILDREN level1_nodegnd_003_rigidbodies;
|
||||
|
||||
extern NODE level1_nodegnd_003;
|
||||
|
||||
extern MESH * level1_actorPtr;
|
||||
|
||||
extern MESH * level1_levelPtr;
|
||||
|
||||
extern MESH * level1_propPtr;
|
||||
|
||||
extern CAMANGLE * level1_camPtr;
|
||||
|
||||
extern NODE * level1_curNode;
|
||||
|
||||
extern NODE level1_nodegnd;
|
||||
|
||||
extern NODE level1_nodegnd_001;
|
||||
|
||||
extern NODE level1_nodegnd_002;
|
||||
|
||||
extern NODE level1_nodegnd_003;
|
272
src/atan.c
Normal file
272
src/atan.c
Normal file
@ -0,0 +1,272 @@
|
||||
// Arctan base table
|
||||
static int AtanBaseTable[8] = {
|
||||
0x0000,
|
||||
-0x4000,
|
||||
-0xFFFF,
|
||||
0xC000,
|
||||
-0x8000,
|
||||
0x4000,
|
||||
0x8000,
|
||||
-0xC000,
|
||||
};
|
||||
|
||||
// Arctan angle table
|
||||
static short AtanAngleTable[0x802] = {
|
||||
0x0000, 0x0005, 0x000A, 0x000F, 0x0014, 0x0019, 0x001F, 0x0024,
|
||||
0x0029, 0x002E, 0x0033, 0x0038, 0x003D, 0x0042, 0x0047, 0x004C,
|
||||
0x0051, 0x0057, 0x005C, 0x0061, 0x0066, 0x006B, 0x0070, 0x0075,
|
||||
0x007A, 0x007F, 0x0084, 0x008A, 0x008F, 0x0094, 0x0099, 0x009E,
|
||||
0x00A3, 0x00A8, 0x00AD, 0x00B2, 0x00B7, 0x00BC, 0x00C2, 0x00C7,
|
||||
0x00CC, 0x00D1, 0x00D6, 0x00DB, 0x00E0, 0x00E5, 0x00EA, 0x00EF,
|
||||
0x00F4, 0x00FA, 0x00FF, 0x0104, 0x0109, 0x010E, 0x0113, 0x0118,
|
||||
0x011D, 0x0122, 0x0127, 0x012C, 0x0131, 0x0137, 0x013C, 0x0141,
|
||||
0x0146, 0x014B, 0x0150, 0x0155, 0x015A, 0x015F, 0x0164, 0x0169,
|
||||
0x016F, 0x0174, 0x0179, 0x017E, 0x0183, 0x0188, 0x018D, 0x0192,
|
||||
0x0197, 0x019C, 0x01A1, 0x01A6, 0x01AC, 0x01B1, 0x01B6, 0x01BB,
|
||||
0x01C0, 0x01C5, 0x01CA, 0x01CF, 0x01D4, 0x01D9, 0x01DE, 0x01E3,
|
||||
0x01E9, 0x01EE, 0x01F3, 0x01F8, 0x01FD, 0x0202, 0x0207, 0x020C,
|
||||
0x0211, 0x0216, 0x021B, 0x0220, 0x0226, 0x022B, 0x0230, 0x0235,
|
||||
0x023A, 0x023F, 0x0244, 0x0249, 0x024E, 0x0253, 0x0258, 0x025D,
|
||||
0x0262, 0x0268, 0x026D, 0x0272, 0x0277, 0x027C, 0x0281, 0x0286,
|
||||
0x028B, 0x0290, 0x0295, 0x029A, 0x029F, 0x02A4, 0x02A9, 0x02AF,
|
||||
0x02B4, 0x02B9, 0x02BE, 0x02C3, 0x02C8, 0x02CD, 0x02D2, 0x02D7,
|
||||
0x02DC, 0x02E1, 0x02E6, 0x02EB, 0x02F0, 0x02F6, 0x02FB, 0x0300,
|
||||
0x0305, 0x030A, 0x030F, 0x0314, 0x0319, 0x031E, 0x0323, 0x0328,
|
||||
0x032D, 0x0332, 0x0337, 0x033C, 0x0341, 0x0347, 0x034C, 0x0351,
|
||||
0x0356, 0x035B, 0x0360, 0x0365, 0x036A, 0x036F, 0x0374, 0x0379,
|
||||
0x037E, 0x0383, 0x0388, 0x038D, 0x0392, 0x0397, 0x039C, 0x03A2,
|
||||
0x03A7, 0x03AC, 0x03B1, 0x03B6, 0x03BB, 0x03C0, 0x03C5, 0x03CA,
|
||||
0x03CF, 0x03D4, 0x03D9, 0x03DE, 0x03E3, 0x03E8, 0x03ED, 0x03F2,
|
||||
0x03F7, 0x03FC, 0x0401, 0x0407, 0x040C, 0x0411, 0x0416, 0x041B,
|
||||
0x0420, 0x0425, 0x042A, 0x042F, 0x0434, 0x0439, 0x043E, 0x0443,
|
||||
0x0448, 0x044D, 0x0452, 0x0457, 0x045C, 0x0461, 0x0466, 0x046B,
|
||||
0x0470, 0x0475, 0x047A, 0x047F, 0x0484, 0x0489, 0x048E, 0x0494,
|
||||
0x0499, 0x049E, 0x04A3, 0x04A8, 0x04AD, 0x04B2, 0x04B7, 0x04BC,
|
||||
0x04C1, 0x04C6, 0x04CB, 0x04D0, 0x04D5, 0x04DA, 0x04DF, 0x04E4,
|
||||
0x04E9, 0x04EE, 0x04F3, 0x04F8, 0x04FD, 0x0502, 0x0507, 0x050C,
|
||||
0x0511, 0x0516, 0x051B, 0x0520, 0x0525, 0x052A, 0x052F, 0x0534,
|
||||
0x0539, 0x053E, 0x0543, 0x0548, 0x054D, 0x0552, 0x0557, 0x055C,
|
||||
0x0561, 0x0566, 0x056B, 0x0570, 0x0575, 0x057A, 0x057F, 0x0584,
|
||||
0x0589, 0x058E, 0x0593, 0x0598, 0x059D, 0x05A2, 0x05A7, 0x05AC,
|
||||
0x05B1, 0x05B6, 0x05BB, 0x05C0, 0x05C5, 0x05CA, 0x05CF, 0x05D4,
|
||||
0x05D9, 0x05DE, 0x05E3, 0x05E8, 0x05ED, 0x05F2, 0x05F7, 0x05FC,
|
||||
0x0601, 0x0606, 0x060B, 0x0610, 0x0615, 0x061A, 0x061F, 0x0624,
|
||||
0x0629, 0x062E, 0x0633, 0x0638, 0x063D, 0x0642, 0x0647, 0x064C,
|
||||
0x0651, 0x0656, 0x065B, 0x0660, 0x0665, 0x066A, 0x066E, 0x0673,
|
||||
0x0678, 0x067D, 0x0682, 0x0687, 0x068C, 0x0691, 0x0696, 0x069B,
|
||||
0x06A0, 0x06A5, 0x06AA, 0x06AF, 0x06B4, 0x06B9, 0x06BE, 0x06C3,
|
||||
0x06C8, 0x06CD, 0x06D2, 0x06D7, 0x06DC, 0x06E1, 0x06E5, 0x06EA,
|
||||
0x06EF, 0x06F4, 0x06F9, 0x06FE, 0x0703, 0x0708, 0x070D, 0x0712,
|
||||
0x0717, 0x071C, 0x0721, 0x0726, 0x072B, 0x0730, 0x0735, 0x0739,
|
||||
0x073E, 0x0743, 0x0748, 0x074D, 0x0752, 0x0757, 0x075C, 0x0761,
|
||||
0x0766, 0x076B, 0x0770, 0x0775, 0x077A, 0x077E, 0x0783, 0x0788,
|
||||
0x078D, 0x0792, 0x0797, 0x079C, 0x07A1, 0x07A6, 0x07AB, 0x07B0,
|
||||
0x07B5, 0x07B9, 0x07BE, 0x07C3, 0x07C8, 0x07CD, 0x07D2, 0x07D7,
|
||||
0x07DC, 0x07E1, 0x07E6, 0x07EB, 0x07EF, 0x07F4, 0x07F9, 0x07FE,
|
||||
0x0803, 0x0808, 0x080D, 0x0812, 0x0817, 0x081C, 0x0820, 0x0825,
|
||||
0x082A, 0x082F, 0x0834, 0x0839, 0x083E, 0x0843, 0x0848, 0x084C,
|
||||
0x0851, 0x0856, 0x085B, 0x0860, 0x0865, 0x086A, 0x086F, 0x0873,
|
||||
0x0878, 0x087D, 0x0882, 0x0887, 0x088C, 0x0891, 0x0896, 0x089A,
|
||||
0x089F, 0x08A4, 0x08A9, 0x08AE, 0x08B3, 0x08B8, 0x08BD, 0x08C1,
|
||||
0x08C6, 0x08CB, 0x08D0, 0x08D5, 0x08DA, 0x08DF, 0x08E3, 0x08E8,
|
||||
0x08ED, 0x08F2, 0x08F7, 0x08FC, 0x0901, 0x0905, 0x090A, 0x090F,
|
||||
0x0914, 0x0919, 0x091E, 0x0922, 0x0927, 0x092C, 0x0931, 0x0936,
|
||||
0x093B, 0x093F, 0x0944, 0x0949, 0x094E, 0x0953, 0x0958, 0x095C,
|
||||
0x0961, 0x0966, 0x096B, 0x0970, 0x0975, 0x0979, 0x097E, 0x0983,
|
||||
0x0988, 0x098D, 0x0992, 0x0996, 0x099B, 0x09A0, 0x09A5, 0x09AA,
|
||||
0x09AE, 0x09B3, 0x09B8, 0x09BD, 0x09C2, 0x09C6, 0x09CB, 0x09D0,
|
||||
0x09D5, 0x09DA, 0x09DE, 0x09E3, 0x09E8, 0x09ED, 0x09F2, 0x09F6,
|
||||
0x09FB, 0x0A00, 0x0A05, 0x0A0A, 0x0A0E, 0x0A13, 0x0A18, 0x0A1D,
|
||||
0x0A22, 0x0A26, 0x0A2B, 0x0A30, 0x0A35, 0x0A39, 0x0A3E, 0x0A43,
|
||||
0x0A48, 0x0A4D, 0x0A51, 0x0A56, 0x0A5B, 0x0A60, 0x0A64, 0x0A69,
|
||||
0x0A6E, 0x0A73, 0x0A77, 0x0A7C, 0x0A81, 0x0A86, 0x0A8B, 0x0A8F,
|
||||
0x0A94, 0x0A99, 0x0A9E, 0x0AA2, 0x0AA7, 0x0AAC, 0x0AB1, 0x0AB5,
|
||||
0x0ABA, 0x0ABF, 0x0AC4, 0x0AC8, 0x0ACD, 0x0AD2, 0x0AD7, 0x0ADB,
|
||||
0x0AE0, 0x0AE5, 0x0AE9, 0x0AEE, 0x0AF3, 0x0AF8, 0x0AFC, 0x0B01,
|
||||
0x0B06, 0x0B0B, 0x0B0F, 0x0B14, 0x0B19, 0x0B1E, 0x0B22, 0x0B27,
|
||||
0x0B2C, 0x0B30, 0x0B35, 0x0B3A, 0x0B3F, 0x0B43, 0x0B48, 0x0B4D,
|
||||
0x0B51, 0x0B56, 0x0B5B, 0x0B60, 0x0B64, 0x0B69, 0x0B6E, 0x0B72,
|
||||
0x0B77, 0x0B7C, 0x0B80, 0x0B85, 0x0B8A, 0x0B8F, 0x0B93, 0x0B98,
|
||||
0x0B9D, 0x0BA1, 0x0BA6, 0x0BAB, 0x0BAF, 0x0BB4, 0x0BB9, 0x0BBD,
|
||||
0x0BC2, 0x0BC7, 0x0BCB, 0x0BD0, 0x0BD5, 0x0BD9, 0x0BDE, 0x0BE3,
|
||||
0x0BE7, 0x0BEC, 0x0BF1, 0x0BF5, 0x0BFA, 0x0BFF, 0x0C03, 0x0C08,
|
||||
0x0C0D, 0x0C11, 0x0C16, 0x0C1B, 0x0C1F, 0x0C24, 0x0C29, 0x0C2D,
|
||||
0x0C32, 0x0C37, 0x0C3B, 0x0C40, 0x0C45, 0x0C49, 0x0C4E, 0x0C53,
|
||||
0x0C57, 0x0C5C, 0x0C60, 0x0C65, 0x0C6A, 0x0C6E, 0x0C73, 0x0C78,
|
||||
0x0C7C, 0x0C81, 0x0C86, 0x0C8A, 0x0C8F, 0x0C93, 0x0C98, 0x0C9D,
|
||||
0x0CA1, 0x0CA6, 0x0CAB, 0x0CAF, 0x0CB4, 0x0CB8, 0x0CBD, 0x0CC2,
|
||||
0x0CC6, 0x0CCB, 0x0CCF, 0x0CD4, 0x0CD9, 0x0CDD, 0x0CE2, 0x0CE6,
|
||||
0x0CEB, 0x0CF0, 0x0CF4, 0x0CF9, 0x0CFD, 0x0D02, 0x0D07, 0x0D0B,
|
||||
0x0D10, 0x0D14, 0x0D19, 0x0D1E, 0x0D22, 0x0D27, 0x0D2B, 0x0D30,
|
||||
0x0D34, 0x0D39, 0x0D3E, 0x0D42, 0x0D47, 0x0D4B, 0x0D50, 0x0D54,
|
||||
0x0D59, 0x0D5E, 0x0D62, 0x0D67, 0x0D6B, 0x0D70, 0x0D74, 0x0D79,
|
||||
0x0D7D, 0x0D82, 0x0D87, 0x0D8B, 0x0D90, 0x0D94, 0x0D99, 0x0D9D,
|
||||
0x0DA2, 0x0DA6, 0x0DAB, 0x0DAF, 0x0DB4, 0x0DB9, 0x0DBD, 0x0DC2,
|
||||
0x0DC6, 0x0DCB, 0x0DCF, 0x0DD4, 0x0DD8, 0x0DDD, 0x0DE1, 0x0DE6,
|
||||
0x0DEA, 0x0DEF, 0x0DF3, 0x0DF8, 0x0DFC, 0x0E01, 0x0E05, 0x0E0A,
|
||||
0x0E0F, 0x0E13, 0x0E18, 0x0E1C, 0x0E21, 0x0E25, 0x0E2A, 0x0E2E,
|
||||
0x0E33, 0x0E37, 0x0E3C, 0x0E40, 0x0E45, 0x0E49, 0x0E4E, 0x0E52,
|
||||
0x0E56, 0x0E5B, 0x0E5F, 0x0E64, 0x0E68, 0x0E6D, 0x0E71, 0x0E76,
|
||||
0x0E7A, 0x0E7F, 0x0E83, 0x0E88, 0x0E8C, 0x0E91, 0x0E95, 0x0E9A,
|
||||
0x0E9E, 0x0EA3, 0x0EA7, 0x0EAC, 0x0EB0, 0x0EB4, 0x0EB9, 0x0EBD,
|
||||
0x0EC2, 0x0EC6, 0x0ECB, 0x0ECF, 0x0ED4, 0x0ED8, 0x0EDC, 0x0EE1,
|
||||
0x0EE5, 0x0EEA, 0x0EEE, 0x0EF3, 0x0EF7, 0x0EFC, 0x0F00, 0x0F04,
|
||||
0x0F09, 0x0F0D, 0x0F12, 0x0F16, 0x0F1B, 0x0F1F, 0x0F23, 0x0F28,
|
||||
0x0F2C, 0x0F31, 0x0F35, 0x0F3A, 0x0F3E, 0x0F42, 0x0F47, 0x0F4B,
|
||||
0x0F50, 0x0F54, 0x0F58, 0x0F5D, 0x0F61, 0x0F66, 0x0F6A, 0x0F6E,
|
||||
0x0F73, 0x0F77, 0x0F7C, 0x0F80, 0x0F84, 0x0F89, 0x0F8D, 0x0F91,
|
||||
0x0F96, 0x0F9A, 0x0F9F, 0x0FA3, 0x0FA7, 0x0FAC, 0x0FB0, 0x0FB5,
|
||||
0x0FB9, 0x0FBD, 0x0FC2, 0x0FC6, 0x0FCA, 0x0FCF, 0x0FD3, 0x0FD7,
|
||||
0x0FDC, 0x0FE0, 0x0FE5, 0x0FE9, 0x0FED, 0x0FF2, 0x0FF6, 0x0FFA,
|
||||
0x0FFF, 0x1003, 0x1007, 0x100C, 0x1010, 0x1014, 0x1019, 0x101D,
|
||||
0x1021, 0x1026, 0x102A, 0x102E, 0x1033, 0x1037, 0x103B, 0x1040,
|
||||
0x1044, 0x1048, 0x104D, 0x1051, 0x1055, 0x105A, 0x105E, 0x1062,
|
||||
0x1067, 0x106B, 0x106F, 0x1073, 0x1078, 0x107C, 0x1080, 0x1085,
|
||||
0x1089, 0x108D, 0x1092, 0x1096, 0x109A, 0x109E, 0x10A3, 0x10A7,
|
||||
0x10AB, 0x10B0, 0x10B4, 0x10B8, 0x10BC, 0x10C1, 0x10C5, 0x10C9,
|
||||
0x10CE, 0x10D2, 0x10D6, 0x10DA, 0x10DF, 0x10E3, 0x10E7, 0x10EB,
|
||||
0x10F0, 0x10F4, 0x10F8, 0x10FD, 0x1101, 0x1105, 0x1109, 0x110E,
|
||||
0x1112, 0x1116, 0x111A, 0x111F, 0x1123, 0x1127, 0x112B, 0x1130,
|
||||
0x1134, 0x1138, 0x113C, 0x1140, 0x1145, 0x1149, 0x114D, 0x1151,
|
||||
0x1156, 0x115A, 0x115E, 0x1162, 0x1166, 0x116B, 0x116F, 0x1173,
|
||||
0x1177, 0x117C, 0x1180, 0x1184, 0x1188, 0x118C, 0x1191, 0x1195,
|
||||
0x1199, 0x119D, 0x11A1, 0x11A6, 0x11AA, 0x11AE, 0x11B2, 0x11B6,
|
||||
0x11BB, 0x11BF, 0x11C3, 0x11C7, 0x11CB, 0x11CF, 0x11D4, 0x11D8,
|
||||
0x11DC, 0x11E0, 0x11E4, 0x11E9, 0x11ED, 0x11F1, 0x11F5, 0x11F9,
|
||||
0x11FD, 0x1202, 0x1206, 0x120A, 0x120E, 0x1212, 0x1216, 0x121A,
|
||||
0x121F, 0x1223, 0x1227, 0x122B, 0x122F, 0x1233, 0x1237, 0x123C,
|
||||
0x1240, 0x1244, 0x1248, 0x124C, 0x1250, 0x1254, 0x1259, 0x125D,
|
||||
0x1261, 0x1265, 0x1269, 0x126D, 0x1271, 0x1275, 0x127A, 0x127E,
|
||||
0x1282, 0x1286, 0x128A, 0x128E, 0x1292, 0x1296, 0x129A, 0x129F,
|
||||
0x12A3, 0x12A7, 0x12AB, 0x12AF, 0x12B3, 0x12B7, 0x12BB, 0x12BF,
|
||||
0x12C3, 0x12C7, 0x12CC, 0x12D0, 0x12D4, 0x12D8, 0x12DC, 0x12E0,
|
||||
0x12E4, 0x12E8, 0x12EC, 0x12F0, 0x12F4, 0x12F8, 0x12FC, 0x1301,
|
||||
0x1305, 0x1309, 0x130D, 0x1311, 0x1315, 0x1319, 0x131D, 0x1321,
|
||||
0x1325, 0x1329, 0x132D, 0x1331, 0x1335, 0x1339, 0x133D, 0x1341,
|
||||
0x1345, 0x1349, 0x134D, 0x1351, 0x1355, 0x135A, 0x135E, 0x1362,
|
||||
0x1366, 0x136A, 0x136E, 0x1372, 0x1376, 0x137A, |