Completed arena generation functions
This commit is contained in:
parent
0b78b84ef1
commit
3ea1f60e95
@ -14,8 +14,6 @@ ARENA_H_TILE* createHTile(ARENA_H_TILE* prevHTile) {
|
||||
tile_h->canBeMined = 0;
|
||||
tile_h->nextRow = NULL;
|
||||
tile_h->nextColumn = NULL;
|
||||
|
||||
return tile_h;
|
||||
} else if (prevHTile != NULL) {
|
||||
tile_h = calloc(1,sizeof(ARENA_H_TILE));
|
||||
prevHTile->nextRow = tile_h;
|
||||
@ -26,7 +24,7 @@ ARENA_H_TILE* createHTile(ARENA_H_TILE* prevHTile) {
|
||||
tile_h->nextColumn = NULL;
|
||||
}
|
||||
|
||||
return NULL;
|
||||
return tile_h;
|
||||
}
|
||||
|
||||
ARENA_W_TILE* createWTile(ARENA_H_TILE* prevHTile, ARENA_W_TILE* prevWTile) {
|
||||
@ -53,21 +51,21 @@ ARENA_W_TILE* createWTile(ARENA_H_TILE* prevHTile, ARENA_W_TILE* prevWTile) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
ARENA_H_TILE* genNewArena(int h, int w) {
|
||||
ARENA_H_TILE* genNewArena(int size_h, int size_w) {
|
||||
ARENA_H_TILE* arenaOrigin = NULL;
|
||||
ARENA_H_TILE* TmpCursor_h = NULL;
|
||||
ARENA_W_TILE* TmpCursor_w = NULL;
|
||||
int i,j;
|
||||
|
||||
for(i=0;i<=h;i++){
|
||||
for(i=0;i<size_h;i++){
|
||||
if (i==0) {
|
||||
arenaOrigin = createHTile(NULL);
|
||||
TmpCursor_h = arenaOrigin;
|
||||
} else {
|
||||
createHTile(TmpCursor_h);
|
||||
TmpCursor_h = createHTile(TmpCursor_h);
|
||||
}
|
||||
|
||||
for(j=0;j<w;j++){
|
||||
for(j=0;j<size_w;j++){
|
||||
if (j==0) {
|
||||
TmpCursor_w = createWTile(TmpCursor_h, NULL);
|
||||
} else {
|
||||
@ -76,47 +74,28 @@ ARENA_H_TILE* genNewArena(int h, int w) {
|
||||
|
||||
if (j!=0) TmpCursor_w = TmpCursor_w->nextColumn;
|
||||
}
|
||||
|
||||
if (i!=0) TmpCursor_h = TmpCursor_h->nextRow;
|
||||
}
|
||||
|
||||
return arenaOrigin;
|
||||
}
|
||||
|
||||
void deleteWTile(ARENA_W_TILE* WTile, int* failNbr) {
|
||||
addLogInfo("st2");
|
||||
while (WTile->nextColumn != NULL) {
|
||||
addLogInfo("goto end2");
|
||||
deleteWTile(WTile->nextColumn, failNbr);
|
||||
void deleteWTile(ARENA_W_TILE* WTile) {
|
||||
if (WTile->nextColumn != NULL) {
|
||||
deleteWTile(WTile->nextColumn);
|
||||
}
|
||||
|
||||
addLogInfo("suppress 1 column");
|
||||
free(WTile);
|
||||
if (WTile != NULL) (*failNbr)++;
|
||||
}
|
||||
|
||||
void deleteHTile(ARENA_H_TILE* HTile, int* failNbr) {
|
||||
//addLogInfo("st1");
|
||||
if(HTile->nextColumn == NULL && HTile->nextRow == NULL) addLogInfo("yup3");
|
||||
while (HTile->nextRow != NULL) {
|
||||
|
||||
if(HTile->nextColumn == NULL) addLogInfo("yup");
|
||||
//addLogInfo("goto end1");
|
||||
deleteHTile(HTile->nextRow, failNbr);
|
||||
void deleteHTile(ARENA_H_TILE* HTile) {
|
||||
if (HTile->nextRow != NULL) {
|
||||
deleteHTile(HTile->nextRow);
|
||||
}
|
||||
|
||||
addLogInfo("suppress 1 column");
|
||||
if(HTile->nextColumn == NULL) addLogInfo("yup2");
|
||||
deleteWTile(HTile->nextColumn, failNbr);
|
||||
deleteWTile(HTile->nextColumn);
|
||||
free(HTile);
|
||||
if (HTile != NULL) (*failNbr)++;
|
||||
}
|
||||
|
||||
int deleteArena(ARENA_H_TILE* arena) {
|
||||
int fnbr = 0;
|
||||
int* failNbr = &fnbr;
|
||||
|
||||
deleteHTile(arena, failNbr);
|
||||
|
||||
return *failNbr;
|
||||
void deleteArena(ARENA_H_TILE* arena) {
|
||||
deleteHTile(arena);
|
||||
}
|
||||
|
@ -32,7 +32,7 @@ typedef struct arena_w_tile{ //Columns chained list
|
||||
|
||||
|
||||
|
||||
ARENA_H_TILE* genNewArena(int h, int w);
|
||||
int deleteArena(ARENA_H_TILE* arena);
|
||||
ARENA_H_TILE* genNewArena(int size_h, int size_w);
|
||||
void deleteArena(ARENA_H_TILE* arena);
|
||||
|
||||
#endif
|
||||
|
14
main.c
14
main.c
@ -1,12 +1,12 @@
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include "logHelper.h"
|
||||
#include "SDL2/SDL.h"
|
||||
#include "SDL2/SDL_thread.h"
|
||||
#include "SDL2/SDL_mutex.h"
|
||||
#include <SDL2/SDL.h>
|
||||
#include <SDL2/SDL_thread.h>
|
||||
#include <SDL2/SDL_mutex.h>
|
||||
#include "arenaEngine.h"
|
||||
|
||||
#define A_HEIGHT 100 //Real value is A_X + 1
|
||||
#define A_HEIGHT 100
|
||||
#define A_WIDTH 100
|
||||
|
||||
void initDisplayLib() {
|
||||
@ -25,9 +25,8 @@ int main(int argc, char *argv[]) {
|
||||
ARENA_H_TILE* arena = NULL;
|
||||
|
||||
|
||||
|
||||
addLogInfo("Starting game...");
|
||||
//initDisplayLib();
|
||||
initDisplayLib();
|
||||
initResources();
|
||||
|
||||
addLogInfo("Creating new arena...");
|
||||
@ -38,7 +37,8 @@ int main(int argc, char *argv[]) {
|
||||
}
|
||||
addLogInfo("Successfully created arena.");
|
||||
|
||||
if (deleteArena(arena) > 0) addLogCritical("An tile from arena asn't been deleted correctly."); else addLogInfo("Arena successfully deleted from memory.");
|
||||
deleteArena(arena);
|
||||
addLogInfo("Cleared arena.");
|
||||
|
||||
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user