remove unnecessary casts from void, fix removePlayer() in Room.c, add alpha setting for FgObjects

This commit is contained in:
Iris Lightshard 2018-09-21 12:57:07 -07:00
parent 21865a49b1
commit ed6e55207c
Signed by: Iris Lightshard
GPG key ID: 3B7FBC22144E6398
7 changed files with 51 additions and 53 deletions

View file

@ -16,7 +16,7 @@ typedef struct textBox TextBox;
HyperKaos* newHyperKaos(int id, int type, int x, int y, int w, int h) HyperKaos* newHyperKaos(int id, int type, int x, int y, int w, int h)
{ {
HyperKaos* self = (HyperKaos*)malloc(sizeof(HyperKaos)); HyperKaos* self = malloc(sizeof(HyperKaos));
self->domain.x = x; self->domain.x = x;
self->domain.y = y; self->domain.y = y;

45
Kaos.c
View file

@ -16,7 +16,7 @@
Kaos* rawKaos() Kaos* rawKaos()
{ {
Kaos* self = (Kaos*)malloc(sizeof(Kaos)); Kaos* self = malloc(sizeof(Kaos));
self->next = NULL; self->next = NULL;
return self; return self;
} }
@ -24,7 +24,7 @@ Kaos* rawKaos()
Kaos* newConversation(int i) Kaos* newConversation(int i)
{ {
Kaos* core = rawKaos(); Kaos* core = rawKaos();
Conversation* self = (Conversation*)malloc(sizeof(Conversation)); Conversation* self = malloc(sizeof(Conversation));
self->index = i; self->index = i;
@ -37,7 +37,7 @@ Kaos* newConversation(int i)
void runConversation(Kaos* self) void runConversation(Kaos* self)
{ {
Conversation* kSelf = (Conversation*)self->kType; Conversation* kSelf = self->kType;
displayTextBox(dialogueData[kSelf->index]); displayTextBox(dialogueData[kSelf->index]);
} }
@ -50,7 +50,7 @@ void deleteConversation(Kaos* target)
Kaos* newChoice(char* q, char* a1, char* a2, HyperKaos* p1, HyperKaos* p2) Kaos* newChoice(char* q, char* a1, char* a2, HyperKaos* p1, HyperKaos* p2)
{ {
Kaos* core = rawKaos(); Kaos* core = rawKaos();
Choice* self = (Choice*)malloc(sizeof(Choice)); Choice* self = malloc(sizeof(Choice));
self->question = TTF_RenderText_Solid(font, q, textColor); self->question = TTF_RenderText_Solid(font, q, textColor);
self->answ1 = TTF_RenderText_Solid(font, a1, textColor); self->answ1 = TTF_RenderText_Solid(font, a1, textColor);
@ -67,7 +67,7 @@ Kaos* newChoice(char* q, char* a1, char* a2, HyperKaos* p1, HyperKaos* p2)
void runChoice(Kaos* self) void runChoice(Kaos* self)
{ {
Choice* kSelf = (Choice*)self->kType; Choice* kSelf = self->kType;
int choice = 0; int choice = 0;
int textIsRelevent = 1; int textIsRelevent = 1;
actionbutton = 0; actionbutton = 0;
@ -122,9 +122,10 @@ void runChoice(Kaos* self)
void deleteChoice(Kaos* self) void deleteChoice(Kaos* self)
{ {
SDL_FreeSurface(((Choice*)(self->kType))->question); Choice* kSelf = self->kType;
SDL_FreeSurface(((Choice*)(self->kType))->answ1); SDL_FreeSurface(kSelf->question);
SDL_FreeSurface(((Choice*)(self->kType))->answ2); SDL_FreeSurface(kSelf->answ1);
SDL_FreeSurface(kSelf->answ2);
free(self->kType); free(self->kType);
free(self); free(self);
} }
@ -132,7 +133,7 @@ void deleteChoice(Kaos* self)
Kaos* newManip(Player* t, int x, int y) Kaos* newManip(Player* t, int x, int y)
{ {
Kaos* core = rawKaos(); Kaos* core = rawKaos();
Manip* self = (Manip*)malloc(sizeof(Manip)); Manip* self = malloc(sizeof(Manip));
self->target= t; self->target= t;
self->xSpd = x; self->xSpd = x;
@ -147,7 +148,7 @@ Kaos* newManip(Player* t, int x, int y)
void runManip(Kaos* self) void runManip(Kaos* self)
{ {
Manip* kSelf = (Manip*)self->kType; Manip* kSelf = self->kType;
kSelf->target->bearing.x = kSelf->xSpd; kSelf->target->bearing.x = kSelf->xSpd;
kSelf->target->bearing.y = kSelf->ySpd; kSelf->target->bearing.y = kSelf->ySpd;
} }
@ -161,7 +162,7 @@ void deleteManip(Kaos* target)
Kaos* newLook(Player* t, char d) Kaos* newLook(Player* t, char d)
{ {
Kaos* core = rawKaos(); Kaos* core = rawKaos();
Look* self = (Look*)malloc(sizeof(Look)); Look* self = malloc(sizeof(Look));
self->target = t; self->target = t;
self->dir = d; self->dir = d;
@ -175,7 +176,7 @@ Kaos* newLook(Player* t, char d)
void runLook(Kaos* self) void runLook(Kaos* self)
{ {
Look* kSelf = (Look*)self->kType; Look* kSelf = self->kType;
SDL_Rect playerClip = { 0,0,16,16}; SDL_Rect playerClip = { 0,0,16,16};
switch(kSelf->dir) switch(kSelf->dir)
{ {
@ -204,7 +205,7 @@ void deleteLook(Kaos* target)
Kaos* newTeleport(Player* p, int x, int y, int o) Kaos* newTeleport(Player* p, int x, int y, int o)
{ {
Kaos* core = rawKaos(); Kaos* core = rawKaos();
Teleport* self = (Teleport*)malloc(sizeof(Teleport)); Teleport* self = malloc(sizeof(Teleport));
self->target = p; self->target = p;
self->x = x; self->x = x;
@ -251,7 +252,7 @@ void runTeleport(Kaos* self)
void deleteTeleport(Kaos* target) void deleteTeleport(Kaos* target)
{ {
Teleport* kSelf = (Teleport*)target->kType; Teleport* kSelf = target->kType;
SDL_FreeSurface(kSelf->aura); SDL_FreeSurface(kSelf->aura);
free(target->kType); free(target->kType);
free(target); free(target);
@ -260,7 +261,7 @@ void deleteTeleport(Kaos* target)
Kaos* newFaceEachother(Player* p1, Player* p2) Kaos* newFaceEachother(Player* p1, Player* p2)
{ {
Kaos* core = rawKaos(); Kaos* core = rawKaos();
FaceEachother* self = (FaceEachother*)malloc(sizeof(FaceEachother)); FaceEachother* self = malloc(sizeof(FaceEachother));
self->p1 = p1; self->p1 = p1;
self->p2 = p2; self->p2 = p2;
@ -274,7 +275,7 @@ Kaos* newFaceEachother(Player* p1, Player* p2)
void runFaceEachother(Kaos* self) void runFaceEachother(Kaos* self)
{ {
FaceEachother* kSelf = (FaceEachother*)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)
@ -304,7 +305,7 @@ void deleteFaceEachother(Kaos* target)
Kaos* newPlaySound(int i) Kaos* newPlaySound(int i)
{ {
Kaos* core = rawKaos(); Kaos* core = rawKaos();
PlaySound* self = (PlaySound*)malloc(sizeof(PlaySound)); PlaySound* self = malloc(sizeof(PlaySound));
self->i = i; self->i = i;
@ -317,7 +318,7 @@ Kaos* newPlaySound(int i)
void runPlaySound(Kaos* self) void runPlaySound(Kaos* self)
{ {
PlaySound* kSelf = (PlaySound*)self->kType; PlaySound* kSelf = self->kType;
Mix_PlayChannel(-1, sfxData[kSelf->i], 0); Mix_PlayChannel(-1, sfxData[kSelf->i], 0);
} }
@ -330,7 +331,7 @@ void deletePlaySound(Kaos* target)
Kaos* newErase(char t, int i) Kaos* newErase(char t, int i)
{ {
Kaos* core = rawKaos(); Kaos* core = rawKaos();
Erase* self = (Erase*)malloc(sizeof(Erase)); Erase* self = malloc(sizeof(Erase));
self->type = t; self->type = t;
self->index = i; self->index = i;
@ -344,7 +345,7 @@ Kaos* newErase(char t, int i)
void runErase(Kaos* self) void runErase(Kaos* self)
{ {
Erase* kSelf = (Erase*)self->kType; Erase* kSelf = self->kType;
switch (kSelf->type) switch (kSelf->type)
{ {
case 'w': case 'w':
@ -372,7 +373,7 @@ void deleteErase(Kaos* target)
Kaos* newWait(char t, int i) Kaos* newWait(char t, int i)
{ {
Kaos* core = rawKaos(); Kaos* core = rawKaos();
Wait* self = (Wait*)malloc(sizeof(Wait)); Wait* self = malloc(sizeof(Wait));
self->type = t; self->type = t;
self->frames = i; self->frames = i;
@ -386,7 +387,7 @@ Kaos* newWait(char t, int i)
void runWait(Kaos* self) void runWait(Kaos* self)
{ {
Wait* kSelf = (Wait*)self->kType; Wait* kSelf = self->kType;
int i; int i;
if (kSelf->type == 'f') if (kSelf->type == 'f')
captive = 1; captive = 1;

View file

@ -37,7 +37,7 @@ Player* newPlayer(char* filename, int a, int b)
amask = 0xff000000; amask = 0xff000000;
#endif #endif
Player* self = (Player*)malloc(sizeof(Player)); Player* self = malloc(sizeof(Player));
self->counter = 0; self->counter = 0;
self->spriteSheet = NULL; self->spriteSheet = NULL;

41
Room.c
View file

@ -19,30 +19,25 @@ Room* newRoom(char* filename, int a)
{ {
Room* self = (Room*)malloc(sizeof(Room)); Room* self = (Room*)malloc(sizeof(Room));
self->obstacle = NULL; self->obstacle = malloc(4*sizeof(SDL_Rect));
self->obstacle = (SDL_Rect*)malloc(4*sizeof(SDL_Rect));
self->numberOfObstacles = 0; self->numberOfObstacles = 0;
self->maxNumberOfObstacles = 4; self->maxNumberOfObstacles = 4;
self->fgObject = NULL; self->fgObject = malloc(4*sizeof(FGImage));
self->fgObject = (FGImage*)malloc(4*sizeof(FGImage));
self->numberOfObj = 0; self->numberOfObj = 0;
self->maxNumberOfObj = 4; self->maxNumberOfObj = 4;
self->objSpeed = a; self->objSpeed = a;
self->objIterator = 0; self->objIterator = 0;
self->warps = NULL; self->warps = malloc(4*sizeof(WarpZone));
self->warps = (WarpZone*)malloc(4*sizeof(WarpZone));
self->numberOfWarps = 0; self->numberOfWarps = 0;
self->maxNumberOfWarps = 4; self->maxNumberOfWarps = 4;
self->eventTriggers = NULL; self->eventTriggers = malloc(4*sizeof(HyperKaos*));
self->eventTriggers = (HyperKaos**)malloc(4*sizeof(HyperKaos*));
self->numberOfTriggers = 0; self->numberOfTriggers = 0;
self->maxNumberOfTriggers =4; self->maxNumberOfTriggers =4;
self->people = NULL; self->people = malloc(4*sizeof(Player*));
self->people = (Player**)malloc(4*sizeof(Player*));
self->numberOfPeople = 0; self->numberOfPeople = 0;
self->maxNumberOfPeople = 4; self->maxNumberOfPeople = 4;
@ -232,7 +227,7 @@ void addObstacle(Room* self, int x, int y, int w, int h)
if (self->numberOfObstacles+1 > self->maxNumberOfObstacles) if (self->numberOfObstacles+1 > self->maxNumberOfObstacles)
{ {
self->maxNumberOfObstacles *= 2; self->maxNumberOfObstacles *= 2;
SDL_Rect* temp = (SDL_Rect*)malloc(self->maxNumberOfObstacles*sizeof(SDL_Rect)); SDL_Rect* temp = malloc(self->maxNumberOfObstacles*sizeof(SDL_Rect));
for (i = 0; i < self->numberOfObstacles; i++) for (i = 0; i < self->numberOfObstacles; i++)
temp[i] = self->obstacle[i]; temp[i] = self->obstacle[i];
free(self->obstacle); free(self->obstacle);
@ -251,7 +246,7 @@ void addObstacle(Room* self, int x, int y, int w, int h)
void deleteObstacle(Room* self, int i) void deleteObstacle(Room* self, int i)
{ {
int j; int j;
SDL_Rect* temp = (SDL_Rect*)malloc(self->maxNumberOfObstacles*sizeof(SDL_Rect)); SDL_Rect* temp = malloc(self->maxNumberOfObstacles*sizeof(SDL_Rect));
for (j = 0; j < i; j++) for (j = 0; j < i; j++)
temp[j] = self->obstacle[j]; temp[j] = self->obstacle[j];
for (j = i + 1; j < self->numberOfObstacles; j++) for (j = i + 1; j < self->numberOfObstacles; j++)
@ -266,13 +261,13 @@ void deleteObstacle(Room* self, int i)
// fg objects // fg objects
// //
void addFgObj(Room* self, int x, int y, int w, int h, char* filename, int f, int dual) void addFgObj(Room* self, int x, int y, int w, int h, char* filename, int f, int dual, int alpha)
{ {
int i; int i;
if (self->numberOfObj+1 > self->maxNumberOfObj) if (self->numberOfObj+1 > self->maxNumberOfObj)
{ {
self->maxNumberOfObj *= 2; self->maxNumberOfObj *= 2;
FGImage* temp = (FGImage*)malloc(self->maxNumberOfObj*sizeof(FGImage));; FGImage* temp = malloc(self->maxNumberOfObj*sizeof(FGImage));;
for (i = 0; i < self->numberOfObj; i++) for (i = 0; i < self->numberOfObj; i++)
temp[i] = self->fgObject[i]; temp[i] = self->fgObject[i];
free(self->fgObject); free(self->fgObject);
@ -290,6 +285,8 @@ void addFgObj(Room* self, int x, int y, int w, int h, char* filename, int f, int
self->fgObject[self->numberOfObj].dualLayer = dual; self->fgObject[self->numberOfObj].dualLayer = dual;
self->fgObject[self->numberOfObj].spriteSheet = loadImage(filename); self->fgObject[self->numberOfObj].spriteSheet = loadImage(filename);
if (alpha != 255)
SDL_SetAlpha(self->fgObject[self->numberOfObj].spriteSheet, SDL_SRCALPHA|SDL_RLEACCEL, alpha);
self->numberOfObj++; self->numberOfObj++;
} }
@ -297,7 +294,7 @@ void addFgObj(Room* self, int x, int y, int w, int h, char* filename, int f, int
void deleteFgObj(Room* self, int i) void deleteFgObj(Room* self, int i)
{ {
int j; int j;
FGImage* temp = (FGImage*)malloc(self->maxNumberOfObj*sizeof(FGImage)); FGImage* temp = malloc(self->maxNumberOfObj*sizeof(FGImage));
for (j = 0; j < i; j++) for (j = 0; j < i; j++)
temp[j] = self->fgObject[j]; temp[j] = self->fgObject[j];
for (j = i + 1; j < self->numberOfObj; j++) for (j = i + 1; j < self->numberOfObj; j++)
@ -375,7 +372,7 @@ void addWarp(Room* self, int x, int y, int w, int h, enum dataChunks toChunk, in
if (self->numberOfWarps+1 > self->maxNumberOfWarps) if (self->numberOfWarps+1 > self->maxNumberOfWarps)
{ {
self->maxNumberOfWarps *= 2; self->maxNumberOfWarps *= 2;
WarpZone* temp = (WarpZone*)malloc(self->maxNumberOfWarps*sizeof(WarpZone)); WarpZone* temp = malloc(self->maxNumberOfWarps*sizeof(WarpZone));
for (i = 0; i < self->numberOfWarps; i++) for (i = 0; i < self->numberOfWarps; i++)
temp[i] = self->warps[i]; temp[i] = self->warps[i];
free(self->warps); free(self->warps);
@ -399,7 +396,7 @@ void addWarp(Room* self, int x, int y, int w, int h, enum dataChunks toChunk, in
void deleteWarp(Room* self, int i) void deleteWarp(Room* self, int i)
{ {
int j; int j;
WarpZone* temp = (WarpZone*)malloc(self->maxNumberOfWarps*sizeof(WarpZone)); WarpZone* temp = malloc(self->maxNumberOfWarps*sizeof(WarpZone));
for (j = 0; j < i; j++) for (j = 0; j < i; j++)
temp[j] = self->warps[j]; temp[j] = self->warps[j];
for (j = i + 1; j < self->numberOfWarps; j++) for (j = i + 1; j < self->numberOfWarps; j++)
@ -420,7 +417,7 @@ void addTrigger(Room* self, HyperKaos* newTrigger)
if (self->numberOfTriggers+1 > self->maxNumberOfTriggers) if (self->numberOfTriggers+1 > self->maxNumberOfTriggers)
{ {
self->maxNumberOfTriggers *= 2; self->maxNumberOfTriggers *= 2;
HyperKaos** temp = (HyperKaos**)malloc(self->maxNumberOfTriggers*sizeof(HyperKaos*)); HyperKaos** temp = malloc(self->maxNumberOfTriggers*sizeof(HyperKaos*));
for (i = 0; i < self->numberOfTriggers; i++) for (i = 0; i < self->numberOfTriggers; i++)
temp[i] = self->eventTriggers[i]; temp[i] = self->eventTriggers[i];
free(self->eventTriggers); free(self->eventTriggers);
@ -434,7 +431,7 @@ void addTrigger(Room* self, HyperKaos* newTrigger)
void deleteTrigger(Room* self, int i) void deleteTrigger(Room* self, int i)
{ {
int j; int j;
HyperKaos** temp = (HyperKaos**)malloc(self->maxNumberOfTriggers*sizeof(HyperKaos*)); HyperKaos** temp = malloc(self->maxNumberOfTriggers*sizeof(HyperKaos*));
for (j = 0; j < i; j++) for (j = 0; j < i; j++)
temp[j] = self->eventTriggers[j]; temp[j] = self->eventTriggers[j];
for (j = i + 1; j < self->numberOfTriggers; j++) for (j = i + 1; j < self->numberOfTriggers; j++)
@ -452,7 +449,7 @@ void addPerson(Room* self, Player* newPlayer)
if (self->numberOfPeople+1 > self->maxNumberOfPeople) if (self->numberOfPeople+1 > self->maxNumberOfPeople)
{ {
self->maxNumberOfPeople *= 2; self->maxNumberOfPeople *= 2;
Player** temp = (Player**)malloc(self->maxNumberOfPeople*sizeof(Player*)); Player** temp = malloc(self->maxNumberOfPeople*sizeof(Player*));
for (i = 0; i < self->numberOfPeople; i++) for (i = 0; i < self->numberOfPeople; i++)
temp[i] = self->people[i]; temp[i] = self->people[i];
free(self->people); free(self->people);
@ -466,11 +463,11 @@ void addPerson(Room* self, Player* newPlayer)
void deletePerson(Room* self, int i) void deletePerson(Room* self, int i)
{ {
int j; int j;
Player** temp = (Player**)malloc(self->maxNumberOfPeople*sizeof(Player*)); Player** temp = malloc(self->maxNumberOfPeople*sizeof(Player*));
for (j = 0; j < i; j++) for (j = 0; j < i; j++)
temp[j] = self->people[j]; temp[j] = self->people[j];
for (j = i + 1; j < self->numberOfPeople; j++) for (j = i + 1; j < self->numberOfPeople; j++)
temp[j] = self->people[j]; temp[j-1] = self->people[j];
killPlayer(self->people[i]); killPlayer(self->people[i]);
free(self->people); free(self->people);
self->people = temp; self->people = temp;

2
Room.h
View file

@ -64,7 +64,7 @@ int checkKCollision(Room* self, SDL_Rect* player, HyperKaos** triggers, int* whi
void addObstacle(Room* self, int x, int y, int w, int h); void addObstacle(Room* self, int x, int y, int w, int h);
void deleteObstacle(Room* self, int i); void deleteObstacle(Room* self, int i);
void addFgObj(Room* self, int x, int y, int w, int h, char* filename, int f, int dual); void addFgObj(Room* self, int x, int y, int w, int h, char* filename, int f, int dual, int alpha);
void deleteFgObj(Room* self, int i); void deleteFgObj(Room* self, int i);
void drawFgObjects1(Room* self); void drawFgObjects1(Room* self);
void drawFgObjects2(Room* self); void drawFgObjects2(Room* self);

View file

@ -26,9 +26,9 @@ extern Player* hero;
TextBox* newTextBox() TextBox* newTextBox()
{ {
TextBox* self = (TextBox*)malloc(sizeof(TextBox)); TextBox* self = malloc(sizeof(TextBox));
self->portrait = NULL; self->portrait = NULL;
self->message = (SDL_Surface**)malloc(4*sizeof(SDL_Surface*)); self->message = malloc(4*sizeof(SDL_Surface*));
self->lines = 0; self->lines = 0;
self->cursor = 0; self->cursor = 0;
self->scroll = 0; self->scroll = 0;
@ -38,9 +38,9 @@ TextBox* newTextBox()
TextBox* newGTextBox(SDL_Surface* image) TextBox* newGTextBox(SDL_Surface* image)
{ {
TextBox* self = (TextBox*)malloc(sizeof(TextBox)); TextBox* self = malloc(sizeof(TextBox));
self->portrait = image; self->portrait = image;
self->message = (SDL_Surface**)malloc(4*sizeof(SDL_Surface*)); self->message = malloc(4*sizeof(SDL_Surface*));
self->lines = 0; self->lines = 0;
self->cursor = 0; self->cursor = 0;
self->scroll = 0; self->scroll = 0;

View file

@ -30,9 +30,9 @@ void bufferData(enum dataChunks chunk)
mapBuffer[3] = newRoom("assets/img/backgrounds/darkroom.gif", 4); mapBuffer[3] = newRoom("assets/img/backgrounds/darkroom.gif", 4);
addObstacle(mapBuffer[0], 64,92,22,16); addObstacle(mapBuffer[0], 64,92,22,16);
addFgObj(mapBuffer[0], 64,64,22,55,"assets/img/objects/floatingChips.png", 4, 1); addFgObj(mapBuffer[0], 64,64,22,55,"assets/img/objects/floatingChips.png", 4, 1, 255);
addObstacle(mapBuffer[0], 320 - 64 - 22, 92,22,16); addObstacle(mapBuffer[0], 320 - 64 - 22, 92,22,16);
addFgObj(mapBuffer[0], 320 - 64 - 22, 64, 22, 55, "assets/img/objects/floatingChips.png", 4, 1); addFgObj(mapBuffer[0], 320 - 64 - 22, 64, 22, 55, "assets/img/objects/floatingChips.png", 4, 1, 255);
addWarp(mapBuffer[0], 0,0,8,180, LEVEL1, 1, 304,90); addWarp(mapBuffer[0], 0,0,8,180, LEVEL1, 1, 304,90);
addWarp(mapBuffer[0], 312,0,8,180, LEVEL1, 2, 16,90); addWarp(mapBuffer[0], 312,0,8,180, LEVEL1, 2, 16,90);