FITD/FitdLib/common.h

252 lines
4.5 KiB
C

#ifndef _COMMON_H_
#define _COMMON_H_
#include "config.h"
#ifdef USE_IMGUI
#include "imgui.h"
#endif
//////////////// GAME SPECIFIC DEFINES
#define NUM_MAX_CAMERA_IN_ROOM 20
//#define NUM_MAX_OBJ 300
#define NUM_MAX_OBJECT 50
#define NUM_MAX_TEXT 40
#define NUM_MAX_MESSAGE 5
// 250
#define NUM_MAX_TEXT_ENTRY 1000
//////////////////
enum enumCVars
{
SAMPLE_PAGE,
BODY_FLAMME,
MAX_WEIGHT_LOADABLE,
TEXTE_CREDITS,
SAMPLE_TONNERRE,
INTRO_DETECTIVE,
INTRO_HERITIERE,
WORLD_NUM_PERSO,
CHOOSE_PERSO,
SAMPLE_CHOC,
SAMPLE_PLOUF,
REVERSE_OBJECT,
KILLED_SORCERER,
LIGHT_OBJECT,
FOG_FLAG,
DEAD_PERSO,
JET_SARBACANE,
TIR_CANON,
JET_SCALPEL,
POIVRE,
DORTOIR,
EXT_JACK,
NUM_MATRICE_PROTECT_1,
NUM_MATRICE_PROTECT_2,
NUM_PERSO,
TYPE_INVENTAIRE,
PROLOGUE,
POIGNARD,
MATRICE_FORME,
MATRICE_COULEUR,
UNKNOWN_CVAR // for table padding, shouldn't be called !
};
typedef enum enumCVars enumCVars;
extern int AITD1KnownCVars[];
extern int AITD2KnownCVars[];
extern int* currentCVarTable;
int getCVarsIdx(enumCVars);
int getCVarsIdx(int);
//////////////////////
#define SAMPLE_PAGE 0
#define BODY_FLAMME 1
#define MAX_WEIGHT_LOADABLE 2
#define TEXTE_CREDITS 3
#define SAMPLE_TONNERRE 4
#define INTRO_DETECTIVE 5
#define INTRO_HERITIERE 6
#define WORLD_NUM_PERSO 7
#define CHOOSE_PERSO 8
#define SAMPLE_CHOC 9
#define SAMPLE_PLOUF 10
#define REVERSE_OBJECT 11
#define KILLED_SORCERER 12
#define LIGHT_OBJECT 13
#define FOG_FLAG 14
#define DEAD_PERSO 15
//////////////////
#if !AITD_UE4
typedef unsigned char uint8;
typedef unsigned short uint16;
typedef unsigned long uint32;
#ifndef UNIX
typedef unsigned int uint;
#endif
typedef signed char int8;
typedef signed short int16;
typedef signed long int32;
#endif
typedef unsigned char U8;
typedef unsigned short U16;
typedef unsigned long U32;
typedef signed char S8;
typedef signed short S16;
typedef signed long S32;
#define TYPE_MASK 0x1D1
#define ANIM_ONCE 0
#define ANIM_REPEAT 1
#define ANIM_UNINTERRUPTABLE 2
#define ANIM_RESET 4
#include "room.h"
#include "vars.h"
#include "main.h"
#include "fileAccess.h"
#include "screen.h"
#include "videoMode.h"
#include "pak.h"
#include "unpack.h"
#include "tatou.h"
#include "threadCode.h"
#include "renderer.h"
#include "input.h"
#include "version.h"
#include "cosTable.h"
#include "hqr.h"
#include "gameTime.h"
#include "font.h"
#include "aitdBox.h"
#include "save.h"
#include "anim.h"
#include "animAction.h"
#include "actorList.h"
#include "mainLoop.h"
#include "inventory.h"
#include "startupMenu.h"
#include "systemMenu.h"
#include "floor.h"
#include "object.h"
#include "zv.h"
#include "music.h"
#include "fmopl.h"
#include "main.h"
#include "sequence.h"
#include "palette.h"
// include game specific stuff
#include "AITD1.h"
#include "AITD2.h"
#include "AITD3.h"
#include "JACK.h"
// debugger
#ifdef FITD_DEBUGGER
#include "debugger.h"
#endif
// scripting
#include "track.h"
#include "life.h"
#include "evalVar.h"
#include "osystem.h"
////
//typedef unsigned char byte;
#ifdef UNIX
#define FORCEINLINE static inline
#else
#ifdef WIN32
#define FORCEINLINE __forceinline
#else
#define FORCEINLINE inline
#endif
#endif
FORCEINLINE u8 READ_LE_U8(void *ptr)
{
return *(u8*)ptr;
}
FORCEINLINE s8 READ_LE_S8(void *ptr)
{
return *(s8*)ptr;
}
FORCEINLINE u16 READ_LE_U16(void *ptr)
{
#ifdef MACOSX
return (((u8*)ptr)[1]<<8)|((u8*)ptr)[0];
#else
return *(u16*)ptr;
#endif
}
FORCEINLINE s16 READ_LE_S16(void *ptr)
{
return (s16)READ_LE_U16(ptr);
}
FORCEINLINE u16 READ_BE_U16(void *ptr)
{
#ifdef MACOSX
return *(u16*)ptr;
#else
return (((u8*)ptr)[0]<<8)|((u8*)ptr)[1];
#endif
}
FORCEINLINE s16 READ_BE_S16(void *ptr)
{
return (s16)READ_BE_U16(ptr);
}
FORCEINLINE u32 READ_LE_U32(void *ptr)
{
#ifdef MACOSX
return (((u8*)ptr)[3]<<24)|(((u8*)ptr)[2]<<16)|(((u8*)ptr)[1]<<8)|((u8*)ptr)[0];
#else
return *(u32*)ptr;
#endif
}
FORCEINLINE s32 READ_LE_S32(void *ptr)
{
return (s32)READ_LE_U32(ptr);
}
FORCEINLINE u32 READ_BE_U32(void *ptr)
{
#ifdef MACOSX
return *(u32*)ptr;
#else
return (((u8*)ptr)[3]<<24)|(((u8*)ptr)[2]<<16)|(((u8*)ptr)[1]<<8)|((u8*)ptr)[0];
#endif
}
FORCEINLINE s32 READ_BE_S32(void *ptr)
{
return (s32)READ_LE_U32(ptr);
}
#endif