First real upload of the files used for developing
git-svn-id: https://clonekeenplus.svn.sourceforge.net/svnroot/clonekeenplus/cgenius/trunk@5 4df4b0f3-56ce-47cb-b001-ed939b7d65a6
This commit is contained in:
@@ -0,0 +1,125 @@
|
||||
|
||||
#define MAX_COMMANDS 8
|
||||
#define MAX_SOUND_LENGTH 1024
|
||||
#define MAX_SOUNDS 50
|
||||
#define MAX_STRING_LENGTH 256
|
||||
|
||||
|
||||
#define OPT_FULLYAUTOMATIC 0
|
||||
#define OPT_SUPERPOGO 1
|
||||
#define OPT_ALLOWPKING 2
|
||||
#define OPT_CHEATS 3
|
||||
#define OPT_TWOBUTTON 4
|
||||
#define OPT_KEYCARDSTACK 5
|
||||
#define OPT_ANALOGJOYSTICK 6
|
||||
|
||||
#define NUM_OPTIONS 7
|
||||
|
||||
#define OPT_MEAN 7 // This isn't part of the options menu anymore
|
||||
|
||||
#define MAX_NUMBER_OF_FILES 100
|
||||
|
||||
typedef struct stOption
|
||||
{
|
||||
char *name;
|
||||
char value;
|
||||
} stOption;
|
||||
|
||||
typedef struct stDisplay
|
||||
{
|
||||
unsigned int Width;
|
||||
unsigned int Height;
|
||||
unsigned short Depth;
|
||||
short Mode;
|
||||
short Fullscreen;
|
||||
short Filtermode;
|
||||
short Zoom;
|
||||
unsigned short FrameSkip;
|
||||
} stDisplay;
|
||||
|
||||
typedef struct stDevice
|
||||
{
|
||||
SDL_Joystick *Joystick;
|
||||
SDL_Event Event;
|
||||
} stDevice;
|
||||
|
||||
typedef struct stLevelControl
|
||||
{
|
||||
// level control
|
||||
int command; // used to give a command to playgame_levelmanager()
|
||||
int chglevelto; // parameter to LVLC_CHANGE_LEVEL
|
||||
int tobonuslevel; // if 1 player will warp to bonus level on return to WM (for ep1)
|
||||
// data about current level
|
||||
int curlevel; // number of current level
|
||||
char success; // 1 if level was finished, 0 if he died
|
||||
char isfinallevel; // 1 if this is the final level
|
||||
char canexit; // 1 if player is allowed to use the exit door
|
||||
char gameovermode; // 1 if "Game Over" is displayed
|
||||
char dokeensleft; // 1 if we need to do the "Keens Left"
|
||||
char dark; // 1 if level is currently dark (lights are out)
|
||||
|
||||
int episode; // which episode we're playing (1-3)
|
||||
|
||||
// array of which levels have been completed (have "Done" tiles over them
|
||||
// on the world map)
|
||||
int levels_completed[MAX_LEVELS+1];
|
||||
|
||||
// exitXpos: the X pixel position (not <<CSFed) of the frame of the exit
|
||||
// door. when walking out the door, keen's sprite will not be drawn past
|
||||
// this point.
|
||||
unsigned int level_done, level_done_timer;
|
||||
unsigned int level_finished_by; // index of player that finished level
|
||||
unsigned int exitXpos;
|
||||
} stLevelControl;
|
||||
|
||||
|
||||
typedef struct stControl
|
||||
{
|
||||
short eseq; // see only the ending sequence
|
||||
short dtm; // go direct to map.
|
||||
short storyboard; // go to storyboard
|
||||
short skipstarting; // Skip Startmenu, Intro and Mainmenu.
|
||||
|
||||
stLevelControl levelcontrol;
|
||||
} stControl;
|
||||
|
||||
typedef struct stGameData
|
||||
{
|
||||
char DataDirectory[MAX_STRING_LENGTH];
|
||||
short Episode;
|
||||
char Name[MAX_STRING_LENGTH];
|
||||
char FileList[MAX_NUMBER_OF_FILES][MAX_STRING_LENGTH];
|
||||
} stGameData;
|
||||
|
||||
|
||||
typedef struct stResources
|
||||
{
|
||||
unsigned short GameSelected;
|
||||
} stResources;
|
||||
|
||||
typedef struct stJoyevent
|
||||
{
|
||||
unsigned short button;
|
||||
short axis;
|
||||
} stJoyevent;
|
||||
|
||||
typedef struct stCommand
|
||||
{
|
||||
char name[10];
|
||||
char description[80];
|
||||
|
||||
Uint8 eventtype;
|
||||
SDL_KeyboardEvent key;
|
||||
SDL_MouseMotionEvent motion;
|
||||
SDL_MouseButtonEvent button;
|
||||
SDL_JoyAxisEvent jaxis;
|
||||
SDL_JoyBallEvent jball;
|
||||
SDL_JoyHatEvent jhat;
|
||||
SDL_JoyButtonEvent jbutton;
|
||||
short state;
|
||||
} stCommand;
|
||||
|
||||
typedef struct stNewPlayer
|
||||
{
|
||||
stCommand Command;
|
||||
} stNewPlayer;
|
||||
@@ -0,0 +1,41 @@
|
||||
/*
|
||||
* enemyai.h
|
||||
*
|
||||
* Created on: 17.01.2009
|
||||
* Author: gerstrong
|
||||
*/
|
||||
|
||||
// .ai functions
|
||||
// ep1
|
||||
void yorp_ai(int o, stLevelControl levelcontrol);
|
||||
void garg_ai(int o, stCloneKeenPlus *pCKP);
|
||||
void vort_ai(int o, stCloneKeenPlus *pCKP, stLevelControl levelcontrol);
|
||||
void butler_ai(int o);
|
||||
void tank_ai(int o);
|
||||
void ray_ai(int o, stCloneKeenPlus *pCKP, stLevelControl levelcontrol);
|
||||
void door_ai(int o);
|
||||
void icechunk_ai(int o);
|
||||
void icebit_ai(int o);
|
||||
void teleporter_ai(int o, stLevelControl levelcontrol);
|
||||
void rope_ai(int o);
|
||||
// ep2
|
||||
void walker_ai(int o, stLevelControl levelcontrol);
|
||||
void tankep2_ai(int o, stCloneKeenPlus *pCKP);
|
||||
void platform_ai(int o, stLevelControl levelcontrol);
|
||||
void bear_ai(int o, stLevelControl levelcontrol, stCloneKeenPlus *pCKP);
|
||||
void se_ai(int o, stCloneKeenPlus *pCKP);
|
||||
void baby_ai(int o, stLevelControl levelcontrol);
|
||||
void explosion_ai(int o);
|
||||
void earthchunk_ai(int o);
|
||||
// ep3
|
||||
void foob_ai(int o, stCloneKeenPlus *pCKP);
|
||||
void ninja_ai(int o, stCloneKeenPlus *pCKP);
|
||||
void meep_ai(int o, stLevelControl levelcontrol);
|
||||
void sndwave_ai(int o, stCloneKeenPlus *pCKP);
|
||||
void mother_ai(int o, stLevelControl levelcontrol);
|
||||
void fireball_ai(int o, stCloneKeenPlus *pCKP);
|
||||
void ballandjack_ai(int o, stCloneKeenPlus *pCKP);
|
||||
void platvert_ai(int o);
|
||||
void nessie_ai(int o);
|
||||
|
||||
void gamedo_enemyai(stCloneKeenPlus *pCKP);
|
||||
@@ -0,0 +1,11 @@
|
||||
/*
|
||||
* eseq_ep1.h
|
||||
*
|
||||
* Created on: 02.01.2009
|
||||
* Author: gerstrong
|
||||
*/
|
||||
|
||||
int eseq1_ShipFlys(stCloneKeenPlus *pCKP);
|
||||
void eseq_ToBeContinued(stCloneKeenPlus *pCKP);
|
||||
int eseq1_ReturnsToShip(stCloneKeenPlus *pCKP);
|
||||
int eseq1_BackAtHome(stCloneKeenPlus *pCKP);
|
||||
@@ -0,0 +1,14 @@
|
||||
/*
|
||||
* eseq_ep2.h
|
||||
*
|
||||
* Created on: 02.01.2009
|
||||
* Author: gerstrong
|
||||
*/
|
||||
|
||||
int eseq2_LimpsHome(stCloneKeenPlus *pCKP);
|
||||
int eseq2_TantalusRay(stCloneKeenPlus *pCKP);
|
||||
void eseq2_vibrate(stCloneKeenPlus *pCKP);
|
||||
int eseq2_HeadsForEarth(stCloneKeenPlus *pCKP);
|
||||
int eseq2_SnowedOutside(stCloneKeenPlus *pCKP);
|
||||
void eseq_showmsg(char *text, int boxleft, int boxtop, int boxwidth, int boxheight, char autodismiss, stCloneKeenPlus *pCKP);
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
/*
|
||||
* eseq_ep3.h
|
||||
*
|
||||
* Created on: 02.01.2009
|
||||
* Author: gerstrong
|
||||
*/
|
||||
|
||||
void eseq3_Mortimer(stCloneKeenPlus *pCKP);
|
||||
char eseq3_AwardBigV(stCloneKeenPlus *pCKP);
|
||||
@@ -0,0 +1,12 @@
|
||||
/*
|
||||
* fileio.h
|
||||
*
|
||||
* Created on: 09.01.2009
|
||||
* Author: gerstrong
|
||||
*/
|
||||
|
||||
unsigned int loadmap(char filename[MAX_STRING_LENGTH], char *path, int lvlnum, int isworldmap, stCloneKeenPlus *pCKP);
|
||||
void addmaptile(unsigned int t);
|
||||
void addenemytile(unsigned int t, stCloneKeenPlus *pCKP);
|
||||
short checkConsistencyofGameData(stGameData *p_GameData);
|
||||
void formatPathString(char *output, const char *path);
|
||||
@@ -0,0 +1,14 @@
|
||||
/*
|
||||
* lzexe.h
|
||||
*
|
||||
* Created on: 24.01.2009
|
||||
* Author: gerstrong
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
|
||||
int get_bit(int *p_bit_count, FILE **fin); /* only used for the conversion of sounds from episode 2 and 3 by sound_extraction_of_exe_files */
|
||||
|
||||
int unlzexe(FILE *fin, unsigned char *outbuffer);
|
||||
|
||||
int getEXEVersion(int episode, int bufsize);
|
||||
@@ -0,0 +1,8 @@
|
||||
/*
|
||||
* rle.h
|
||||
*
|
||||
* Created on: 29.01.2009
|
||||
* Author: gerstrong
|
||||
*/
|
||||
|
||||
int unRLEW(FILE *fp, unsigned int *filebuf);
|
||||
@@ -0,0 +1,8 @@
|
||||
/*
|
||||
* story.h
|
||||
*
|
||||
* Created on: 07.02.2009
|
||||
* Author: gerstrong
|
||||
*/
|
||||
|
||||
int readStoryText(char **ptext, int episode, char *path);
|
||||
@@ -0,0 +1,229 @@
|
||||
// various states we go through when a level is completed
|
||||
// to do the walking out the exit door animation
|
||||
#define LEVEL_NOT_DONE 0 // not completed
|
||||
#define LEVEL_DONE_WALK 1 // walking through exit door
|
||||
#define LEVEL_DONE_WAIT 2 // finished walk through door, wait a bit
|
||||
#define LEVEL_DONE_FADEOUT 3 // fading out
|
||||
#define LEVEL_COMPLETE 4 // on to the next level!
|
||||
|
||||
// width of the player sprite, used for walking "behind" the exit door frame
|
||||
#define PLAYERSPRITE_WIDTH 16
|
||||
|
||||
// at STOPWALKING time after starting the exit door animation,
|
||||
// keen stops walking and we go to LEVEL_DONE_WAIT.
|
||||
#define LEVEL_DONE_STOPWALKING_TIME 450
|
||||
// at TOTAL_WAIT_TIME, LEVEL_DONE_FADEOUT is initiated.
|
||||
#define LEVEL_DONE_TOTAL_WAIT_TIME 1000
|
||||
|
||||
// for ankh shield...
|
||||
// stage1 is no flicker of the shield, changes colors
|
||||
// in stage2 the shield flickers fast, changes colors
|
||||
// in stage3 the shield flashes slow, no color change
|
||||
#define ANKH_STAGE1_TIME 3000
|
||||
#define ANKH_STAGE2_TIME 1500
|
||||
#define ANKH_STAGE3_TIME 500
|
||||
#define PLAY_ANKH_TIME (ANKH_STAGE1_TIME+ANKH_STAGE2_TIME+ANKH_STAGE3_TIME)
|
||||
// these correspond stage 1,2 and 3 respectively
|
||||
#define ANKH_STATE_NOFLICKER 0
|
||||
#define ANKH_STATE_FLICKERFAST 1
|
||||
#define ANKH_STATE_FLICKERSLOW 2
|
||||
|
||||
// rate at which the periodically firing guns in ep3 will fire
|
||||
#define GUN_FIRE_FREQ 800
|
||||
// rate at which the ice cannons in ep1 will fire
|
||||
#define ICECANNON_FIRE_FREQ 400
|
||||
|
||||
// direction defines used for various things
|
||||
#define RIGHT 0
|
||||
#define LEFT 1
|
||||
#define UP 2
|
||||
#define DOWN 3
|
||||
|
||||
#define ANKH_SHIELD_FRAME 61
|
||||
|
||||
// upon starting to walk, keen will quickly increase to
|
||||
// PFASTINCMAXSPEED. keen can, at a slower rate,
|
||||
// reach up to PMAXSPEED (increased every walk anim frame)
|
||||
#define PFASTINCMAXSPEED 9
|
||||
#define PMAXSPEED 13
|
||||
#define PJUMPINERTIA 30 // The higher, the value, the more difficult it is to jump or pogo
|
||||
#define PFASTINCRATE 16 // accel delay rate up to PFASTINCMAXSPEED
|
||||
#define PFASTINCRATE_POGO 50 // rate when pogo stick is out
|
||||
// rates at which player slows down
|
||||
#define PFRICTION_RATE_INAIR 25 //8
|
||||
#define PFRICTION_RATE_ONGROUND 5 //2
|
||||
#define PFRICTION_RATE_WM 1 // on world map
|
||||
// rate at which player walking animation is shown
|
||||
#define PWALKANIMRATE 40
|
||||
|
||||
// speed at which player walks through the exit door
|
||||
#define PMAXEXITDOORSPEED 3
|
||||
|
||||
// the various jump states
|
||||
#define PNOJUMP 0 // not jumping
|
||||
#define PPREPAREJUMP 1 // doing the jump animation
|
||||
#define PJUMPUP 2 // jumping
|
||||
#define PJUMPED 3 // Player has jumped
|
||||
#define PPREPAREPOGO 4 // "pogo compressed" anim frame
|
||||
#define PPOGOING 5 // pogoing
|
||||
|
||||
// the different jumping frames. when CTRL is held down the player will
|
||||
// go from frame PPREPAREJUMPFRAME to PJUMP_PREPARE_LAST_FRAME at a rate
|
||||
// of PJUMP_PREPARE_ANIM_RATE until either CTRL is released or the player
|
||||
// reaches the last frame. How far he got will select one of the various
|
||||
// jump heights, defined below.
|
||||
#define PPREPAREJUMPFRAME 8
|
||||
#define PJUMP_PREPARE_LAST_FRAME 13
|
||||
#define PJUMP_PREPARE_ANIM_RATE 11
|
||||
|
||||
// time to show player in his "pogo compressed" frame before jumping
|
||||
#define PPOGO_PREPARE_TIME 50
|
||||
|
||||
#define PFIREFRAME 20 // raygun frame index
|
||||
#define PFIRE_SHOWFRAME_TIME 100 // minimum time to show raygun frame
|
||||
#define PFIRE_LIMIT_SHOT_FREQ 30 // maximum speed player can shoot
|
||||
#define PFIRE_LIMIT_SHOT_FREQ_FA 50 // fully automatic version
|
||||
|
||||
// player frame indexes for world map
|
||||
#define PMAPRIGHTFRAME 32
|
||||
#define PMAPDOWNFRAME 36
|
||||
#define PMAPLEFTFRAME 40
|
||||
#define PMAPUPFRAME 44
|
||||
|
||||
// player dieing states
|
||||
#define PDIE_NODIE 0
|
||||
#define PDIE_DYING 1
|
||||
#define PDIE_DEAD 2
|
||||
#define PDIE_FELLOFFMAP 3
|
||||
|
||||
#define DIE_ANIM_RATE 50
|
||||
#define DIE_TILL_FLY_TIME 320
|
||||
#define PDIE_RISE_SPEED -20
|
||||
#define DIE_MAX_XVECT 10
|
||||
|
||||
// initial negative inertia to provide player at
|
||||
// start of a normal jump and a (high) pogo jump
|
||||
#define PJUMPUP_SPEED 20
|
||||
#define PPOGOUP_SPEED 24
|
||||
|
||||
// These control the various jump heights.
|
||||
// one of these pairs is selected depending on how
|
||||
// long the CTRL key was held down while Keen
|
||||
// was preparing to jump. #1 causes the highest
|
||||
// jump and they get lower from there.
|
||||
// NORMAL_TIME is the amount of time keen will
|
||||
// jump straight up at speed -PJUMPUP_SPEED.
|
||||
// when expired his jump slows down at a rate
|
||||
// of DECREASERATE.
|
||||
|
||||
#define PJUMP_NORMALTIME_1 6
|
||||
#define PJUMP_UPDECREASERATE_1 6
|
||||
|
||||
#define PJUMP_NORMALTIME_2 5
|
||||
#define PJUMP_UPDECREASERATE_2 5
|
||||
|
||||
#define PJUMP_NORMALTIME_3 4
|
||||
#define PJUMP_UPDECREASERATE_3 4
|
||||
|
||||
#define PJUMP_NORMALTIME_4 3
|
||||
#define PJUMP_UPDECREASERATE_4 2
|
||||
|
||||
#define PJUMP_NORMALTIME_5 2
|
||||
#define PJUMP_UPDECREASERATE_5 1
|
||||
|
||||
#define PJUMP_NORMALTIME_6 1
|
||||
#define PJUMP_UPDECREASERATE_6 0
|
||||
|
||||
|
||||
// for short pogo jumps, uses -PJUMPUP_SPEED
|
||||
#define PJUMP_NORMALTIME_POGO_SHORT 6
|
||||
#define PJUMP_UPDECREASERATE_POGO_SHORT 6
|
||||
|
||||
// for high pogo jumps, uses -PPOGOUP_SPEED
|
||||
//#define PJUMP_NORMALTIME_POGO_LONG 25
|
||||
//#define PJUMP_UPDECREASERATE_POGO_LONG 12
|
||||
#define PJUMP_NORMALTIME_POGO_LONG 36
|
||||
#define PJUMP_UPDECREASERATE_POGO_LONG 6
|
||||
|
||||
// for the super-pogo option
|
||||
#define PPOGOUP_SPEED_SUPER 40
|
||||
#define PJUMP_NORMALTIME_POGO_LONG_SUPER 10
|
||||
#define PJUMP_UPDECREASERATE_POGO_LONG_SUPER 4
|
||||
|
||||
// pogo frames
|
||||
#define PFRAME_POGO 24
|
||||
#define PFRAME_POGOBOUNCE 25
|
||||
|
||||
// frame and animation speed for frozen keen (ep1) and stunned keen (ep2&3)
|
||||
#define PFRAME_FROZEN 28
|
||||
#define PFROZENANIMTIME 100
|
||||
// how long keen should stay frozen when hit by an ice chunk
|
||||
#define PFROZEN_TIME 1000
|
||||
#define PFROZEN_THAW 100
|
||||
|
||||
// when falling keen's Y inertia increases at INCREASERATE up to MAXSPEED
|
||||
#define PFALL_INCREASERATE 3
|
||||
#define PFALL_MAXSPEED 19
|
||||
|
||||
// friction when player is pushed by yorp's, ball's, etc.
|
||||
#define PLAYPUSH_DECREASERATE 1
|
||||
|
||||
// uses by the key processing function which changes CTRL, ALT, and CTRL+ALT
|
||||
// into JUMP, POGO, and FIRE.
|
||||
#define CTRLALT_DEBOUNCETIME 20
|
||||
|
||||
#define PDIEFRAME 22
|
||||
|
||||
// various tile indexes
|
||||
#define BG_GRAY 143
|
||||
#define BG_GRAY_PRIORITY 304
|
||||
#define BG_BLACK 155
|
||||
#define BG_DARK_EP2 147
|
||||
#define TILE_FELLOFFMAP_EP1 582
|
||||
#define TILE_FELLOFFMAP_EP3 0
|
||||
#define TILE_ICE_LEFTCORNER 403
|
||||
#define TILE_ICE_RIGHTCORNER 404
|
||||
#define TILE_ICE 405
|
||||
#define TILE_ICE_CUBE 394
|
||||
#define TILE_GLOWCELL 241
|
||||
#define DOOR_YELLOW 2
|
||||
#define DOOR_RED 3
|
||||
#define DOOR_GREEN 4
|
||||
#define DOOR_BLUE 5
|
||||
|
||||
#define DOOR_RED_SPRITE (MAX_SPRITES-5)
|
||||
#define DOOR_GREEN_SPRITE (MAX_SPRITES-4)
|
||||
#define DOOR_BLUE_SPRITE (MAX_SPRITES-3)
|
||||
#define DOOR_YELLOW_SPRITE (MAX_SPRITES-2)
|
||||
#define YORPSTATUEHEAD 22
|
||||
#define YORPSTATUEHEADUSED 485
|
||||
#define YORPSTATUEBOTTOM 22
|
||||
#define ENEMYRAY 109
|
||||
#define ENEMYRAYEP2 123
|
||||
#define ENEMYRAYEP3 103
|
||||
#define RAY_VERT_EP3 104
|
||||
|
||||
// if player[].psupportingtile contains this value the player is actually
|
||||
// supported by an object and you should look in player[].psupportingobj
|
||||
// for it's index.
|
||||
#define PSUPPORTEDBYOBJECT 0
|
||||
|
||||
void gameloop(stCloneKeenPlus *pCKP);
|
||||
void gameloop_initialize(stCloneKeenPlus *pCKP);
|
||||
void initsprites(stCloneKeenPlus *pCKP, int s);
|
||||
void keen_get_goodie(int px, int py, int theplayer, stCloneKeenPlus *pCKP);
|
||||
void procgoodie(int t, int mpx, int mpy, int theplayer, stCloneKeenPlus *pCKP);
|
||||
|
||||
void initgame(stCloneKeenPlus *pCKP);
|
||||
int initgamefirsttime(stCloneKeenPlus *pCKP, int s);
|
||||
|
||||
void open_door(int doortile, int doorsprite, int mpx, int mpy, int cp, stCloneKeenPlus *pCKP);
|
||||
void killplayer(int theplayer, stCloneKeenPlus *pCKP);
|
||||
void PlayerTouchedExit(int theplayer, stCloneKeenPlus *pCKP);
|
||||
|
||||
void endlevel(int success, stCloneKeenPlus *pCKP);
|
||||
|
||||
void SetGameOver(stCloneKeenPlus *pCKP);
|
||||
char checkissolidl(int x, int y, int cp, stCloneKeenPlus *pCKP);
|
||||
char checkissolidr(int x, int y, int cp, stCloneKeenPlus *pCKP);
|
||||
|
||||
@@ -0,0 +1,7 @@
|
||||
|
||||
void gamedo_RenderScreen(stCloneKeenPlus *pCKP);
|
||||
void gamedo_frameskipping(stCloneKeenPlus *pCKP);
|
||||
void gamedo_HandleFKeys(stCloneKeenPlus *pCKP);
|
||||
void gamedo_frameskipping_blitonly(stCloneKeenPlus *pCKP);
|
||||
void gamedo_getInput(stCloneKeenPlus *pCKP);
|
||||
void gamedo_render_drawobjects(stCloneKeenPlus *pCKP);
|
||||
@@ -0,0 +1,27 @@
|
||||
|
||||
void gamepdo_StatusBox(int cp, stCloneKeenPlus *pCKP);
|
||||
void gamepdo_HandlePlayer(int cp, stCloneKeenPlus *pCKP);
|
||||
void gamepdo_getgoodies(int cp, stCloneKeenPlus *pCKP);
|
||||
void gamepdo_falling(int cp, stCloneKeenPlus *pCKP);
|
||||
void gamepdo_ProcessInput(unsigned int cp, stCloneKeenPlus *pCKP);
|
||||
|
||||
//void gamepdo_HandlePlayer(int cp);
|
||||
void gamepdo_walkbehindexitdoor(int cp, stCloneKeenPlus *pCKP);
|
||||
void gamepdo_dieanim(int cp, stCloneKeenPlus *pCKP);
|
||||
void gamepdo_keencicle(int cp, stCloneKeenPlus *pCKP);
|
||||
void gamepdo_setdir(int cp, stCloneKeenPlus *pCKP);
|
||||
void gamepdo_setblockedlru(unsigned int cp, stCloneKeenPlus *pCKP);
|
||||
//void gamepdo_getgoodies(int cp);
|
||||
void gamepdo_walkinganim(int cp, stCloneKeenPlus *pCKP);
|
||||
void gamepdo_walking(int cp, stCloneKeenPlus *pCKP);
|
||||
void gamepdo_playpushed(int cp, stCloneKeenPlus *pCKP);
|
||||
void gamepdo_JumpAndPogo(int cp, stCloneKeenPlus *pCKP);
|
||||
void gamepdo_Jump(int cp, stCloneKeenPlus *pCKP);
|
||||
//void gamepdo_falling(int cp, stCommand command[MAX_COMMANDS]);
|
||||
void gamepdo_raygun(int cp, stCloneKeenPlus *pCKP);
|
||||
void gamepdo_special(int cp, stCloneKeenPlus *pCKP);
|
||||
void gamepdo_SelectFrame(int cp, stCloneKeenPlus *pCKP);
|
||||
void gamepdo_checkcollision(int cp, stCloneKeenPlus *pCKP);
|
||||
void gamepdo_moveplayer(int cp, stCloneKeenPlus *pCKP);
|
||||
void gamepdo_ankh(int cp);
|
||||
//void gamepdo_StatusBox(int cp);
|
||||
@@ -0,0 +1,9 @@
|
||||
|
||||
void gamepdo_wm_HandlePlayer(int cp, stCloneKeenPlus *pCKP);
|
||||
void gamepdo_InertiaAndFriction_Y(int cp, stCloneKeenPlus *pCKP);
|
||||
void gamepdo_InertiaAndFriction_X(unsigned int cp, stCloneKeenPlus *pCKP);
|
||||
void gamepdo_wm_AllowEnterLevel(int cp, stCloneKeenPlus *pCKP);
|
||||
void gamepdo_wm_SelectFrame(int cp, stCloneKeenPlus *pCKP);
|
||||
void gamepdo_wm_setblockedlrud(int cp, stCloneKeenPlus *pCKP);
|
||||
void gamepdo_wm_setdir(int cp, stCloneKeenPlus *pCKP);
|
||||
|
||||
@@ -0,0 +1,12 @@
|
||||
/*
|
||||
* graphics.h
|
||||
*
|
||||
* Created on: 16.01.2009
|
||||
* Author: gerstrong
|
||||
*/
|
||||
|
||||
char allocmem();
|
||||
char Graphics_Start(void);
|
||||
|
||||
void sb_blit(void);
|
||||
void update_screen(void);
|
||||
@@ -0,0 +1,57 @@
|
||||
/*
|
||||
* dialog.h
|
||||
*
|
||||
* This file contains structures for dialog items that
|
||||
* are created with a function, which read the structure and allocates automatically the dialog
|
||||
*
|
||||
* Created on: 21.01.2009
|
||||
* Author: gerstrong
|
||||
*/
|
||||
|
||||
#define STARTER_SAVE 1
|
||||
#define STARTER_ESCAPE 2
|
||||
#define STARTER_SOUNDOPT 3
|
||||
#define STARTER_DISPLAYOPT 4
|
||||
#define STARTER_GAMEOPT 5
|
||||
|
||||
typedef struct stTextLine
|
||||
{
|
||||
char *Text;
|
||||
short ID; // items are orded by ID
|
||||
} stTextLine;
|
||||
|
||||
typedef struct stSeparator
|
||||
{
|
||||
short ID; // items are orded by ID
|
||||
} stSeparator;
|
||||
|
||||
|
||||
typedef struct stOptionSwitch
|
||||
{
|
||||
char *Name;
|
||||
char **Option;
|
||||
short selected;
|
||||
short numSel;
|
||||
short ID; // items are orded by ID
|
||||
} stOptionSwitch;
|
||||
|
||||
typedef struct stStarterSwitch
|
||||
{
|
||||
char *Name;
|
||||
int numFunctionToLaunch;
|
||||
short ID; // items are sorted by IDs
|
||||
} stStarterSwitch;
|
||||
|
||||
typedef struct stDlgStruct // imagine every substructure as typical control
|
||||
{
|
||||
stTextLine *TextLine;
|
||||
stOptionSwitch *OptionSwitch;
|
||||
stStarterSwitch *StarterSwitch;
|
||||
stSeparator *Separator;
|
||||
|
||||
short num_TextLines;
|
||||
short num_OptionSwitches;
|
||||
short num_StarterSwitch;
|
||||
short num_Separators;
|
||||
|
||||
} stDlgStruct;
|
||||
@@ -0,0 +1,21 @@
|
||||
/*
|
||||
* main.h
|
||||
*
|
||||
* Created on: 13.01.2009
|
||||
* Author: gerstrong
|
||||
*/
|
||||
|
||||
short loadDriverConfiguration(stCloneKeenPlus *pCKP);
|
||||
short saveDriverConfiguration(stCloneKeenPlus *pCKP);
|
||||
void startTheWholeGame(stCloneKeenPlus *pCKP);
|
||||
short readCommandLine(int argc, char *argv[], stCloneKeenPlus *pCKP);
|
||||
void preallocateCKP(stCloneKeenPlus *pCKP);
|
||||
short loadGamesConfig(stOption *Option);
|
||||
short loadResourcesforGame(stCloneKeenPlus *pCKP);
|
||||
short runGameCycle(stCloneKeenPlus *pCKP, CGame *Game);
|
||||
short abortCKP(stCloneKeenPlus *pCKP);
|
||||
void cleanupResources(stCloneKeenPlus *pCKP);
|
||||
short closeCKP(stCloneKeenPlus *pCKP);
|
||||
void createDefaultSettings(stOption *Option);
|
||||
short loadCKPDrivers(stCloneKeenPlus *pCKP);
|
||||
void SaveConfig(stOption *Option);
|
||||
@@ -0,0 +1,26 @@
|
||||
|
||||
#define TWIRL_SPEED_SLOW 100
|
||||
#define TWIRL_SPEED_FAST 20
|
||||
|
||||
#define MENUS_Y 32
|
||||
#define MAINMENU_X 32
|
||||
|
||||
#define STORYBOARD_X 672
|
||||
#define STORYBOARD_Y 32
|
||||
|
||||
#define FONT_TWIRL 9
|
||||
#define TWIRL_SPEED 30
|
||||
#define TWIRL_NUM_FRAMES 5
|
||||
|
||||
#include "../CGame.h"
|
||||
|
||||
char controlsmenu(stCloneKeenPlus *pCKP);
|
||||
int mainmenu(stCloneKeenPlus *pCKP,int defaultopt);
|
||||
char configmenu(stCloneKeenPlus *pCKP);
|
||||
short loadStartMenu(stCloneKeenPlus *pCKP);
|
||||
void keensleft(stCloneKeenPlus *pCKP);
|
||||
int intro(stCloneKeenPlus *pCKP);
|
||||
void showmapatpos(int level, int xoff, int yoff, int wm, stCloneKeenPlus *pCKP);
|
||||
short loadResourcesforStartMenu(stCloneKeenPlus *pCKP, CGame *Game);
|
||||
int getDifficulty(stCloneKeenPlus *pCKP);
|
||||
void showPage(char *text, stCloneKeenPlus *pCKP, int textsize);
|
||||
@@ -0,0 +1,15 @@
|
||||
|
||||
void cleanup(stCloneKeenPlus *CKP);
|
||||
void showinventory(int p, stCloneKeenPlus *pCKP);
|
||||
void YourShipNeedsTheseParts(stCloneKeenPlus *pCKP);
|
||||
void ShipEp3(stCloneKeenPlus *pCKP);
|
||||
int endsequence(stCloneKeenPlus *pCKP);
|
||||
void youseeinyourmind(int mpx, int mpy, stCloneKeenPlus *pCKP);
|
||||
void VorticonElder(int mpx, int mpy, stCloneKeenPlus *pCKP);
|
||||
char save_slot_box(int issave, stCloneKeenPlus *pCKP);
|
||||
void game_save_interface(stCloneKeenPlus *pCKP);
|
||||
int VerifyQuit(stCloneKeenPlus *pCKP);
|
||||
char gameiswon(stCloneKeenPlus *pCKP);
|
||||
void game_save(char *fname, stCloneKeenPlus *pCKP);
|
||||
int game_load(char *fname, stCloneKeenPlus *pCKP);
|
||||
void showTextMB(int lines, char **text, stCloneKeenPlus *pCKP);
|
||||
@@ -0,0 +1,21 @@
|
||||
/*
|
||||
* playeraction.h
|
||||
*
|
||||
* Created on: 09.02.2009
|
||||
* Author: gerstrong
|
||||
*/
|
||||
|
||||
/* These are the actions, one player can perform according to the controls and some physical defines*/
|
||||
|
||||
#define PA_X 0
|
||||
#define PA_Y 1
|
||||
#define PA_JUMP 2
|
||||
#define PA_POGO 3
|
||||
#define PA_FIRE 4
|
||||
#define PA_STATUS 5
|
||||
|
||||
#define PA_MAX_ACTIONS 6
|
||||
|
||||
#define MAX_SPEED 7000
|
||||
#define MAX_BOOST 200
|
||||
#define TIME_DIVIDER 500 // For speed and acceleration
|
||||
@@ -0,0 +1,12 @@
|
||||
/*
|
||||
* oggsupport.h
|
||||
*
|
||||
* Created on: 06.01.2009
|
||||
* Author: gerstrong
|
||||
*/
|
||||
|
||||
#ifdef BUILD_WITH_OGG
|
||||
|
||||
short openOGGSound(FILE *fp, SDL_AudioSpec *pspec, stHQSound *psound);
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user