setting up for magic mechanics: Synergy structures, their interface, globals relating to them
This commit is contained in:
parent
4a5b926621
commit
b87b25b5a6
15 changed files with 191 additions and 17 deletions
4
Engine.c
4
Engine.c
|
@ -107,6 +107,8 @@ void interact()
|
||||||
case A_BUTTON:
|
case A_BUTTON:
|
||||||
actionbutton = 1;
|
actionbutton = 1;
|
||||||
break;
|
break;
|
||||||
|
case B_BUTTON:
|
||||||
|
spellbutton = 1;
|
||||||
case PAUSE_BUTTON:
|
case PAUSE_BUTTON:
|
||||||
pausemenu();
|
pausemenu();
|
||||||
break;
|
break;
|
||||||
|
@ -146,6 +148,8 @@ void interact()
|
||||||
case A_BUTTON:
|
case A_BUTTON:
|
||||||
actionbutton = 0;
|
actionbutton = 0;
|
||||||
break;
|
break;
|
||||||
|
case B_BUTTON:
|
||||||
|
spellbutton = 0;
|
||||||
default: break;
|
default: break;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
7
Kaos.c
7
Kaos.c
|
@ -281,20 +281,25 @@ void runFaceEachother(Kaos* self)
|
||||||
FaceEachother* kSelf = self->kType;
|
FaceEachother* kSelf = self->kType;
|
||||||
SDL_Rect p1Clip = {0,0,16,16};
|
SDL_Rect p1Clip = {0,0,16,16};
|
||||||
SDL_Rect p2Clip = {0,0,16,16};
|
SDL_Rect p2Clip = {0,0,16,16};
|
||||||
|
|
||||||
if (kSelf->p1->point.x > kSelf->p2->point.x)
|
if (kSelf->p1->point.x > kSelf->p2->point.x)
|
||||||
p2Clip.x = 64;
|
p2Clip.x = 64;
|
||||||
|
|
||||||
if (kSelf->p1->point.x < kSelf->p2->point.x)
|
if (kSelf->p1->point.x < kSelf->p2->point.x)
|
||||||
p1Clip.x = 64;
|
p1Clip.x = 64;
|
||||||
|
|
||||||
if (kSelf->p1->point.y > kSelf->p2->point.y)
|
if (kSelf->p1->point.y > kSelf->p2->point.y)
|
||||||
{
|
{
|
||||||
p1Clip.x = 96;
|
p1Clip.x = 96;
|
||||||
p2Clip.x = 32;
|
p2Clip.x = 32;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (kSelf->p1->point.y < kSelf->p2->point.y)
|
if (kSelf->p1->point.y < kSelf->p2->point.y)
|
||||||
{
|
{
|
||||||
p1Clip.x = 32;
|
p1Clip.x = 32;
|
||||||
p2Clip.x = 96;
|
p2Clip.x = 96;
|
||||||
}
|
}
|
||||||
|
|
||||||
changeSprite(kSelf->p1, &p1Clip);
|
changeSprite(kSelf->p1, &p1Clip);
|
||||||
changeSprite(kSelf->p2, &p2Clip);
|
changeSprite(kSelf->p2, &p2Clip);
|
||||||
}
|
}
|
||||||
|
@ -353,7 +358,7 @@ void runErase(Kaos* self)
|
||||||
{
|
{
|
||||||
case 'w':
|
case 'w':
|
||||||
deleteWarp(rightHere, kSelf->index);
|
deleteWarp(rightHere, kSelf->index);
|
||||||
break;
|
break;
|
||||||
case 't':
|
case 't':
|
||||||
deleteTrigger(rightHere, kSelf->index);
|
deleteTrigger(rightHere, kSelf->index);
|
||||||
break;
|
break;
|
||||||
|
|
2
Makefile
2
Makefile
|
@ -7,7 +7,7 @@ all: game
|
||||||
scenetest: sceneTest.c Scene.o Engine.o Timer.o Player.o Room.o WorldData.o Kaos.o HyperKaos.o TextBox.o
|
scenetest: sceneTest.c Scene.o Engine.o Timer.o Player.o Room.o WorldData.o Kaos.o HyperKaos.o TextBox.o
|
||||||
$(CC) -o $@ $^ $(CFLAGS)
|
$(CC) -o $@ $^ $(CFLAGS)
|
||||||
|
|
||||||
game: main.c Player.o Engine.o Timer.o Room.o WorldData.o TextBox.o Kaos.o HyperKaos.o Scene.o
|
game: main.c Player.o Engine.o Timer.o Room.o WorldData.o TextBox.o Kaos.o HyperKaos.o Scene.o Synergy.o
|
||||||
$(CC) -o $@ $^ $(CFLAGS)
|
$(CC) -o $@ $^ $(CFLAGS)
|
||||||
|
|
||||||
cleanobj:
|
cleanobj:
|
||||||
|
|
40
Player.c
40
Player.c
|
@ -15,6 +15,7 @@ typedef struct timer Timer;
|
||||||
typedef struct textBox TextBox;
|
typedef struct textBox TextBox;
|
||||||
typedef struct kaos Kaos;
|
typedef struct kaos Kaos;
|
||||||
typedef struct scene Scene;
|
typedef struct scene Scene;
|
||||||
|
typedef struct hyperKaos HyperKaos;
|
||||||
#include "extern.h"
|
#include "extern.h"
|
||||||
|
|
||||||
Player* newPlayer(char* filename, int a, int b)
|
Player* newPlayer(char* filename, int a, int b)
|
||||||
|
@ -76,7 +77,7 @@ void movePlayer(Player* self, Room* hereNow)
|
||||||
|
|
||||||
// obstacle collision
|
// obstacle collision
|
||||||
|
|
||||||
if (checkCollision(rightHere, &(self->boundBox), rightHere->obstacle))
|
if (checkCollision(rightHere, self, rightHere->obstacle))
|
||||||
{
|
{
|
||||||
self->point.x -= self->bearing.x;
|
self->point.x -= self->bearing.x;
|
||||||
self->boundBox.x = self->point.x - 8;
|
self->boundBox.x = self->point.x - 8;
|
||||||
|
@ -86,7 +87,7 @@ void movePlayer(Player* self, Room* hereNow)
|
||||||
self->boundBox.y = self->point.y - 8;
|
self->boundBox.y = self->point.y - 8;
|
||||||
|
|
||||||
|
|
||||||
if (checkCollision(rightHere, &(self->boundBox), rightHere->obstacle))
|
if (checkCollision(rightHere, self, rightHere->obstacle))
|
||||||
{
|
{
|
||||||
self->point.y -= self->bearing.y;
|
self->point.y -= self->bearing.y;
|
||||||
self->boundBox.y = self->point.y - 8;
|
self->boundBox.y = self->point.y - 8;
|
||||||
|
@ -246,3 +247,38 @@ void walkAnim(Player* self)
|
||||||
self->counter++;
|
self->counter++;
|
||||||
if (self->counter == 8) self->counter = 0;
|
if (self->counter == 8) self->counter = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int playerFaces(Player* self, char dir)
|
||||||
|
{
|
||||||
|
switch (dir)
|
||||||
|
{
|
||||||
|
case 'n':
|
||||||
|
if (self->frontFaceBox.y < self->boundBox.y)
|
||||||
|
return 1;
|
||||||
|
break;
|
||||||
|
case 's':
|
||||||
|
if (self->frontFaceBox.y > self->boundBox.y)
|
||||||
|
return 1;
|
||||||
|
break;
|
||||||
|
case 'e':
|
||||||
|
if (self->frontFaceBox.x > self->boundBox.x)
|
||||||
|
return 1;
|
||||||
|
break;
|
||||||
|
case 'w':
|
||||||
|
if (self->frontFaceBox.x < self->boundBox.x)
|
||||||
|
return 1;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
int playerIsInRect(Player* self, SDL_Rect* rect)
|
||||||
|
{
|
||||||
|
SDL_Rect* pBox = &(self->boundBox);
|
||||||
|
int playerX = pBox->x + (pBox->w)/2;
|
||||||
|
int playerY = pBox->y + (pBox->h)/2;
|
||||||
|
if ((playerX >= rect->x && playerX <= rect->x + rect->w)
|
||||||
|
&& (playerY >= rect->y && playerY <= rect->y + rect->h))
|
||||||
|
return 1;
|
||||||
|
else return 0;
|
||||||
|
}
|
3
Player.h
3
Player.h
|
@ -24,3 +24,6 @@ void movePlayer(Player* self, Room* rightHere);
|
||||||
void changeSprite(Player* self, SDL_Rect* clip);
|
void changeSprite(Player* self, SDL_Rect* clip);
|
||||||
void drawPlayer(Player* self);
|
void drawPlayer(Player* self);
|
||||||
void walkAnim(Player* self);
|
void walkAnim(Player* self);
|
||||||
|
|
||||||
|
int playerFaces(Player* self, char dir);
|
||||||
|
int playerIsInRect(Player* self, SDL_Rect* rect);
|
46
Room.c
46
Room.c
|
@ -10,6 +10,7 @@
|
||||||
#include "Player.h"
|
#include "Player.h"
|
||||||
#include "Room.h"
|
#include "Room.h"
|
||||||
#include "HyperKaos.h"
|
#include "HyperKaos.h"
|
||||||
|
#include "Synergy.h"
|
||||||
|
|
||||||
typedef struct timer Timer;
|
typedef struct timer Timer;
|
||||||
typedef struct textBox TextBox;
|
typedef struct textBox TextBox;
|
||||||
|
@ -42,6 +43,10 @@ Room* newRoom(char* filename, int a)
|
||||||
self->numberOfPeople = 0;
|
self->numberOfPeople = 0;
|
||||||
self->maxNumberOfPeople = 4;
|
self->maxNumberOfPeople = 4;
|
||||||
|
|
||||||
|
self->sigils = malloc(4*sizeof(Synergy*));
|
||||||
|
self->numberOfSigils = 0;
|
||||||
|
self->maxNumberOfSigils = 4;
|
||||||
|
|
||||||
SDL_Rect zeroRect;
|
SDL_Rect zeroRect;
|
||||||
zeroRect.x=0;
|
zeroRect.x=0;
|
||||||
zeroRect.y=0;
|
zeroRect.y=0;
|
||||||
|
@ -151,16 +156,15 @@ void animate(Room* self)
|
||||||
// collision detection
|
// collision detection
|
||||||
//
|
//
|
||||||
|
|
||||||
int checkCollision(Room* self, SDL_Rect* player, SDL_Rect* box)
|
int checkCollision(Room* self, Player* player, SDL_Rect* box)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
int playerX = player->x + (player->w)/2;
|
|
||||||
int playerY = player->y + (player->h)/2;
|
|
||||||
|
|
||||||
for (i = 1; i <= self->numberOfObstacles; i++)
|
for (i = 1; i <= self->numberOfObstacles; i++)
|
||||||
{
|
{
|
||||||
if ( (playerX >= box->x && playerX <= box->x + box->w)
|
if (playerIsInRect(player, box))
|
||||||
&& (playerY >= box->y && playerY <= box->y + box->h) )
|
// if ( (playerX >= box->x && playerX <= box->x + box->w)
|
||||||
|
// && (playerY >= box->y && playerY <= box->y + box->h) )
|
||||||
{
|
{
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
@ -444,6 +448,38 @@ void deleteTrigger(Room* self, int i)
|
||||||
self->numberOfTriggers--;
|
self->numberOfTriggers--;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void addSigil(Room* self, Synergy* newSigil)
|
||||||
|
{
|
||||||
|
int i;
|
||||||
|
if (self->numberOfSigils+1 > self->maxNumberOfSigils)
|
||||||
|
{
|
||||||
|
self->maxNumberOfSigils *= 2;
|
||||||
|
Synergy** temp = malloc(self->maxNumberOfSigils*sizeof(Synergy*));
|
||||||
|
for (i = 0; i < self->numberOfSigils; i++)
|
||||||
|
temp[i] = self->sigils[i];
|
||||||
|
free(self->sigils);
|
||||||
|
self->sigils = temp;
|
||||||
|
temp = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
self->sigils[self->numberOfSigils++] = newSigil;
|
||||||
|
}
|
||||||
|
|
||||||
|
void deleteSigil(Room* self, int i)
|
||||||
|
{
|
||||||
|
int j;
|
||||||
|
Synergy** temp = malloc(self->maxNumberOfSigils*sizeof(Synergy*));
|
||||||
|
for (j = 0; j < i; j++)
|
||||||
|
temp[j] = self->sigils[j];
|
||||||
|
for (j = i + 1; j < self->numberOfSigils; j++)
|
||||||
|
temp[j-1] = self->sigils[j];
|
||||||
|
deleteSynergy(self->sigils[i]);
|
||||||
|
free(self->sigils);
|
||||||
|
self->sigils = temp;
|
||||||
|
temp = NULL;
|
||||||
|
self->numberOfSigils--;
|
||||||
|
}
|
||||||
|
|
||||||
void addPerson(Room* self, Player* newPlayer)
|
void addPerson(Room* self, Player* newPlayer)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
|
|
10
Room.h
10
Room.h
|
@ -1,4 +1,5 @@
|
||||||
typedef struct hyperKaos HyperKaos;
|
typedef struct hyperKaos HyperKaos;
|
||||||
|
typedef struct synergy Synergy;
|
||||||
|
|
||||||
typedef struct fgImage
|
typedef struct fgImage
|
||||||
{
|
{
|
||||||
|
@ -43,6 +44,10 @@ typedef struct room
|
||||||
int numberOfTriggers;
|
int numberOfTriggers;
|
||||||
int maxNumberOfTriggers;
|
int maxNumberOfTriggers;
|
||||||
|
|
||||||
|
Synergy** sigils;
|
||||||
|
int numberOfSigils;
|
||||||
|
int maxNumberOfSigils;
|
||||||
|
|
||||||
Player** people;
|
Player** people;
|
||||||
int numberOfPeople;
|
int numberOfPeople;
|
||||||
int maxNumberOfPeople;
|
int maxNumberOfPeople;
|
||||||
|
@ -57,7 +62,7 @@ void deleteRoom(Room* target);
|
||||||
void changeRSprite(Room* self, SDL_Rect* clip);
|
void changeRSprite(Room* self, SDL_Rect* clip);
|
||||||
void animate(Room* self);
|
void animate(Room* self);
|
||||||
|
|
||||||
int checkCollision(Room* self, SDL_Rect* player, SDL_Rect* box);
|
int checkCollision(Room* self, Player* player, SDL_Rect* box);
|
||||||
int checkWCollision(Room* self, SDL_Rect* player, WarpZone* warpBoxes, int* whichWarp);
|
int checkWCollision(Room* self, SDL_Rect* player, WarpZone* warpBoxes, int* whichWarp);
|
||||||
int checkKCollision(Room* self, SDL_Rect* player, HyperKaos** triggers, int* whichTrigger, int* triggerType);
|
int checkKCollision(Room* self, SDL_Rect* player, HyperKaos** triggers, int* whichTrigger, int* triggerType);
|
||||||
|
|
||||||
|
@ -75,6 +80,9 @@ void deleteWarp(Room* self, int i);
|
||||||
void addTrigger(Room* self, HyperKaos* newTrigger);
|
void addTrigger(Room* self, HyperKaos* newTrigger);
|
||||||
void deleteTrigger(Room* self, int i);
|
void deleteTrigger(Room* self, int i);
|
||||||
|
|
||||||
|
void addSigil(Room* self, Synergy* newSigil);
|
||||||
|
void deleteSigil(Room* self, int i);
|
||||||
|
|
||||||
void addPerson(Room* self, Player* newPlayer);
|
void addPerson(Room* self, Player* newPlayer);
|
||||||
void deletePerson(Room* self, int i);
|
void deletePerson(Room* self, int i);
|
||||||
void drawPeople(Room* self);
|
void drawPeople(Room* self);
|
||||||
|
|
1
Scene.c
1
Scene.c
|
@ -15,6 +15,7 @@ typedef struct kaos Kaos;
|
||||||
typedef struct textBox TextBox;
|
typedef struct textBox TextBox;
|
||||||
typedef struct room Room;
|
typedef struct room Room;
|
||||||
typedef struct player Player;
|
typedef struct player Player;
|
||||||
|
typedef struct hyperKaos HyperKaos;
|
||||||
#include "extern.h"
|
#include "extern.h"
|
||||||
|
|
||||||
SLayer* newSLayer(SDL_Surface* img, int x, int y, int h, int v, int alpha)
|
SLayer* newSLayer(SDL_Surface* img, int x, int y, int h, int v, int alpha)
|
||||||
|
|
51
Synergy.c
Normal file
51
Synergy.c
Normal file
|
@ -0,0 +1,51 @@
|
||||||
|
#include <SDL/SDL.h>
|
||||||
|
#include <SDL/SDL_image.h>
|
||||||
|
#include <SDL/SDL_ttf.h>
|
||||||
|
#include <SDL/SDL_mixer.h>
|
||||||
|
|
||||||
|
#include "enum.h"
|
||||||
|
#include "Player.h"
|
||||||
|
#include "Kaos.h"
|
||||||
|
#include "Room.h"
|
||||||
|
#include "HyperKaos.h"
|
||||||
|
#include "Synergy.h"
|
||||||
|
|
||||||
|
|
||||||
|
typedef struct player Player;
|
||||||
|
//typedef struct room Room;
|
||||||
|
//typedef struct kaos Kaos;
|
||||||
|
typedef struct scene Scene;
|
||||||
|
typedef struct timer Timer;
|
||||||
|
typedef struct textBox TextBox;
|
||||||
|
#include "extern.h"
|
||||||
|
|
||||||
|
Synergy* newSynergy(int s, char d, SDL_Rect z, HyperKaos* t)
|
||||||
|
{
|
||||||
|
Synergy* self = malloc(sizeof(Synergy));
|
||||||
|
|
||||||
|
self->spell = s;
|
||||||
|
self->dir = d;
|
||||||
|
self->zone = z;
|
||||||
|
self->trigger = t;
|
||||||
|
|
||||||
|
return self;
|
||||||
|
}
|
||||||
|
|
||||||
|
void deleteSynergy(Synergy* target)
|
||||||
|
{
|
||||||
|
free(target);
|
||||||
|
}
|
||||||
|
|
||||||
|
void Synergize()
|
||||||
|
{
|
||||||
|
int i;
|
||||||
|
Synergy* sigil = rightHere->sigils[0];
|
||||||
|
for (i = 0; i < rightHere->numberOfSigils; i++)
|
||||||
|
{
|
||||||
|
if (sigil->spell == spellFlag
|
||||||
|
&& playerFaces(hero, sigil->dir)
|
||||||
|
&& playerIsInRect(hero, &(sigil->zone)))
|
||||||
|
run(sigil->trigger);
|
||||||
|
sigil++;
|
||||||
|
}
|
||||||
|
}
|
12
Synergy.h
Normal file
12
Synergy.h
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
typedef struct synergy
|
||||||
|
{
|
||||||
|
int spell;
|
||||||
|
char dir;
|
||||||
|
SDL_Rect zone;
|
||||||
|
HyperKaos* trigger;
|
||||||
|
} Synergy;
|
||||||
|
|
||||||
|
Synergy* newSynergy(int s, char d, SDL_Rect z, HyperKaos* t);
|
||||||
|
void deleteSynergy(Synergy* target);
|
||||||
|
|
||||||
|
void Synergize();
|
|
@ -13,6 +13,7 @@
|
||||||
typedef struct room Room;
|
typedef struct room Room;
|
||||||
typedef struct kaos Kaos;
|
typedef struct kaos Kaos;
|
||||||
typedef struct scene Scene;
|
typedef struct scene Scene;
|
||||||
|
typedef struct hyperKaos HyperKaos;
|
||||||
|
|
||||||
#include "extern.h"
|
#include "extern.h"
|
||||||
|
|
||||||
|
|
|
@ -21,6 +21,7 @@ void bufferData(enum dataChunks chunk)
|
||||||
hasMusic = 0;
|
hasMusic = 0;
|
||||||
applySurface(0,0, loadingTxt, screen, NULL);
|
applySurface(0,0, loadingTxt, screen, NULL);
|
||||||
SDL_Flip(screen);
|
SDL_Flip(screen);
|
||||||
|
printf("Loading map chunk\n");
|
||||||
switch (chunk){
|
switch (chunk){
|
||||||
case LEVEL1:
|
case LEVEL1:
|
||||||
bgmData[0] = loadBGM("assets/snd/bgm/artificial sun stage (mamon machine mix).mp3");
|
bgmData[0] = loadBGM("assets/snd/bgm/artificial sun stage (mamon machine mix).mp3");
|
||||||
|
@ -160,7 +161,8 @@ void bufferData(enum dataChunks chunk)
|
||||||
|
|
||||||
case LEVEL3:
|
case LEVEL3:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
printf("Loaded map chunk\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
void dataPurge(int a, int b, int c, int d, int e)
|
void dataPurge(int a, int b, int c, int d, int e)
|
||||||
|
@ -180,6 +182,7 @@ void dataPurge(int a, int b, int c, int d, int e)
|
||||||
|
|
||||||
void unloadData(enum dataChunks chunk)
|
void unloadData(enum dataChunks chunk)
|
||||||
{
|
{
|
||||||
|
printf("Unloading old map chunk\n");
|
||||||
switch(chunk)
|
switch(chunk)
|
||||||
{
|
{
|
||||||
case LEVEL1:
|
case LEVEL1:
|
||||||
|
@ -191,14 +194,17 @@ void unloadData(enum dataChunks chunk)
|
||||||
case LEVEL3:
|
case LEVEL3:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
printf("Unloaded old map chunk\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
void pushBufferData()
|
void pushBufferData()
|
||||||
{
|
{
|
||||||
|
printf("Pushing map buffer\n");
|
||||||
mapData = mapBuffer;
|
mapData = mapBuffer;
|
||||||
mapBuffer = (Room**)malloc(64*sizeof(Room*));
|
mapBuffer = (Room**)malloc(64*sizeof(Room*));
|
||||||
if (hasMusic)
|
if (hasMusic)
|
||||||
Mix_PlayMusic(bgmData[0], -1);
|
Mix_PlayMusic(bgmData[0], -1);
|
||||||
|
printf("Mapbuffer clean\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
void pager()
|
void pager()
|
||||||
|
|
3
config.h
3
config.h
|
@ -5,5 +5,8 @@
|
||||||
#define DPAD_LEFT SDLK_a
|
#define DPAD_LEFT SDLK_a
|
||||||
#define DPAD_RIGHT SDLK_d
|
#define DPAD_RIGHT SDLK_d
|
||||||
#define A_BUTTON SDLK_j
|
#define A_BUTTON SDLK_j
|
||||||
|
#define B_BUTTON SDLK_k
|
||||||
|
#define L_BUTTON SDLK_o
|
||||||
|
#define R_BUTTON SDLK_p
|
||||||
#define FS_BUTTON SDLK_f
|
#define FS_BUTTON SDLK_f
|
||||||
#define PAUSE_BUTTON SDLK_q
|
#define PAUSE_BUTTON SDLK_q
|
||||||
|
|
14
extern.h
14
extern.h
|
@ -3,20 +3,24 @@ extern int fullscreen;
|
||||||
extern int quit;
|
extern int quit;
|
||||||
extern int playing;
|
extern int playing;
|
||||||
extern int actionbutton;
|
extern int actionbutton;
|
||||||
|
extern int spellbutton;
|
||||||
extern int captive;
|
extern int captive;
|
||||||
extern int hasMusic;
|
extern int hasMusic;
|
||||||
|
|
||||||
|
|
||||||
extern SDL_Event event;
|
extern SDL_Event event;
|
||||||
extern SDL_Surface* screen;
|
extern SDL_Surface* screen;
|
||||||
extern Timer fps;
|
extern Timer fps;
|
||||||
|
|
||||||
extern Room* rightHere;
|
extern Room* rightHere;
|
||||||
extern Room* menuBG;
|
|
||||||
extern int kaosFlag;
|
|
||||||
extern long long int savestate;
|
|
||||||
extern Player* hero;
|
extern Player* hero;
|
||||||
|
extern HyperKaos** spellBook;
|
||||||
|
|
||||||
|
extern int kaosFlag;
|
||||||
|
extern int spellFlag;
|
||||||
|
|
||||||
|
extern long long int savestate;
|
||||||
|
extern int spellKnowledge;
|
||||||
|
|
||||||
|
extern Room* menuBG;
|
||||||
extern SDL_Surface* saveMenu;
|
extern SDL_Surface* saveMenu;
|
||||||
extern SDL_Surface* textBoxBG;
|
extern SDL_Surface* textBoxBG;
|
||||||
extern SDL_Surface* choiceBox;
|
extern SDL_Surface* choiceBox;
|
||||||
|
|
4
main.c
4
main.c
|
@ -24,6 +24,7 @@ int fullscreen = 0;
|
||||||
int playing = 0;
|
int playing = 0;
|
||||||
int quit = 0;
|
int quit = 0;
|
||||||
int actionbutton = 0;
|
int actionbutton = 0;
|
||||||
|
int spellbutton = 0;
|
||||||
int captive = 0;
|
int captive = 0;
|
||||||
int hasMusic = 0;
|
int hasMusic = 0;
|
||||||
|
|
||||||
|
@ -32,6 +33,7 @@ SDL_Event event;
|
||||||
|
|
||||||
SDL_Surface* screen = NULL;
|
SDL_Surface* screen = NULL;
|
||||||
Room* rightHere = NULL;
|
Room* rightHere = NULL;
|
||||||
|
HyperKaos** spellBook = NULL;
|
||||||
|
|
||||||
SDL_Surface* saveMenu = NULL;
|
SDL_Surface* saveMenu = NULL;
|
||||||
SDL_Surface* textBoxBG = NULL;
|
SDL_Surface* textBoxBG = NULL;
|
||||||
|
@ -48,6 +50,7 @@ Room* menuBG = NULL;
|
||||||
Mix_Music* menuBGM = NULL;
|
Mix_Music* menuBGM = NULL;
|
||||||
|
|
||||||
long long int savestate = 2;
|
long long int savestate = 2;
|
||||||
|
int spellKnowledge = 2;
|
||||||
|
|
||||||
Room** mapData = NULL;
|
Room** mapData = NULL;
|
||||||
Room** mapBuffer = NULL;
|
Room** mapBuffer = NULL;
|
||||||
|
@ -58,6 +61,7 @@ Kaos** kaosData = NULL;
|
||||||
Scene** theatre = NULL;
|
Scene** theatre = NULL;
|
||||||
|
|
||||||
int kaosFlag = -1;
|
int kaosFlag = -1;
|
||||||
|
int spellFlag = -1;
|
||||||
|
|
||||||
enum dataChunks thisChunk;
|
enum dataChunks thisChunk;
|
||||||
enum dataChunks nextChunk;
|
enum dataChunks nextChunk;
|
||||||
|
|
Loading…
Reference in a new issue