// *********************************************** // GRAPHICS.H - 2d and 3d graphics operations // *********************************************** #ifndef _GRAPHICS_ #define _GRAPHICS_ // **** Global defines #include #define MoveModelTo(p,_x,_y,_z) \ (p)->Object_Coord.coord.t[0] = (_x), \ (p)->Object_Coord.coord.t[1] = (_y), \ (p)->Object_Coord.coord.t[2] = (_z), \ (p)->Object_Coord.flg = 0 #define MoveModelBy(p,_x,_y,_z) \ (p)->Object_Coord.coord.t[0] += (_x), \ (p)->Object_Coord.coord.t[1] += (_y), \ (p)->Object_Coord.coord.t[2] += (_z), \ (p)->Object_Coord.flg = 0 // **** Global variables and structures typedef struct { SVECTOR Orientation; GsDOBJ2 Object_Handler; GsCOORDINATE2 Object_Coord; } Model; // **** include this file here, AFTER model has been defined #include "useful.h" // **** public function prototypes void LoadTimData(u_long tMemAddress); void SetSpriteInfo(GsSPRITE *tSprite, u_long tMemAddress, long tX, long tY); void SetModelInfo(Model *tModel, long tX, long tY, long tZ, u_long MemAddress); void SetViewPoint(GsRVIEW2 *tView, long tProjDist, long tRz, long tFromX, long tFromY, long tFromZ, long tToX, long tToY, long tToZ, GsCOORDINATE2 *tRelative); void DrawModel(Model *tModel, GsOT *OTable, u_long tPriority); void DrawModel2(Model *tModel, GsOT *OTable, u_long tPriority); void RotateModel(Model*, long, long, long); void MoveModelForward(Model *tModel, long tX, long tY, long tZ); void ReturnMoveForward(Model *tModel, long tX, long tY, long tZ, long *tattX, long *tayyZ); #endif