Skip to content

Commit

Permalink
Few Adjustments and Code Sanitizing
Browse files Browse the repository at this point in the history
  • Loading branch information
repiazza committed Mar 17, 2024
1 parent ee9e578 commit 15bdb15
Show file tree
Hide file tree
Showing 5 changed files with 135 additions and 72 deletions.
8 changes: 6 additions & 2 deletions include/action.h
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@

#define _MAX_MOV_ACTION BOARD_COLS*BOARD_ROWS*10
#define ACTIONS_PER_LINE 20
#define FULL_TURN 360
#define SINGLE_TURN 90

extern int gbACTION_Check;
extern int giACTION_List[_MAX_MOV_ACTION];
Expand Down Expand Up @@ -53,7 +55,7 @@
vTraceMsg(szWrk);
}
memset(szWrkMsg, 0, sizeof(szWrkMsg));
sprintf(szWrkMsg, "giActionCtr=%d giACTION_AssertedSteps=%d\n", giACTION_StepCtr, giACTION_AssertedSteps);
sprintf(szWrkMsg, "giACTION_StepCtr=%d giACTION_AssertedSteps=%d\n", giACTION_StepCtr, giACTION_AssertedSteps);

vTraceMsg(szWrkMsg);
vTraceMsg("\n=================================");
Expand All @@ -74,8 +76,10 @@
return 0;
}

if ( giACTION_StepCtr == giACTION_AssertedSteps )
giACTION_AssertedSteps--;

giACTION_List[giACTION_StepCtr--] = 0;
giACTION_AssertedSteps--;
vTraceEnd();
return 0;
}
Expand Down
82 changes: 69 additions & 13 deletions include/texture.h
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
#include <cattie.h>
#include <util.h>
/**
*
* texture.h
Expand All @@ -10,6 +11,9 @@
#ifndef _TEXTURE_H
#define _TEXTURE_H

#define DESTROY_TEXTURES_NONE 0
#define DESTROY_TEXTURES 1

typedef struct STRUCT_TEXTURE_LIST{
SDL_Texture *pSDL_Texture;
char *pszImgPath;
Expand All @@ -18,34 +22,86 @@

extern STRUCT_TEXTURE_LIST gstTextureList;

SDL_Texture *pSDL_TXTR_AddToList(SDL_Renderer *renderer, char *pszImgPath){
// SDL_Texture *pSDL_TXTR_RectAddToList(SDL_Renderer *renderer, SDL_Rect *pSDL_Rect){
// STRUCT_TEXTURE_LIST *pstWrkTxtr;
//
// for ( pstWrkTxtr = &gstTextureList; pstWrkTxtr->pstNext != NULL; pstWrkTxtr = pstWrkTxtr->pstNext );
//
// if ( pstWrkTxtr == &gstTextureList){
// pstWrkTxtr->pSDL_Texture = SDL_CreateTexture(renderer, SDL_PIXELFORMAT_RGBA8888, SDL_TEXTUREACCESS_TARGET, pSDL_Rect->w, pSDL_Rect->h);
// pstWrkTxtr->pszImgPath = NULL;
// pstWrkTxtr->pstNext = NULL;
// return pstWrkTxtr->pSDL_Texture;
// }
// if ( (pstWrkTxtr->pstNext = (PSTRUCT_TEXTURE_LIST) malloc(sizeof(STRUCT_TEXTURE_LIST))) == NULL )
// return NULL;
//
// memset(pstWrkTxtr->pstNext, 0, sizeof(STRUCT_TEXTURE_LIST));
// pstWrkTxtr = pstWrkTxtr->pstNext;
// pstWrkTxtr->pSDL_Texture =SDL_CreateTexture(renderer, SDL_PIXELFORMAT_RGBA8888, SDL_TEXTUREACCESS_TARGET, pSDL_Rect->w, pSDL_Rect->h);
// pstWrkTxtr->pszImgPath = NULL;
// pstWrkTxtr->pstNext = NULL;
//
// return pstWrkTxtr->pSDL_Texture;
// }
//
// SDL_Texture *pSDL_TXTR_ImageAddToList(SDL_Renderer *renderer, char *pszImgPath){
// STRUCT_TEXTURE_LIST *pstWrkTxtr;
//
// for ( pstWrkTxtr = &gstTextureList; pstWrkTxtr->pstNext != NULL; pstWrkTxtr = pstWrkTxtr->pstNext );
//
// if ( pstWrkTxtr == &gstTextureList){
// pstWrkTxtr->pSDL_Texture = IMG_LoadTexture(renderer, pszImgPath);
// pstWrkTxtr->pszImgPath = pszImgPath;
// pstWrkTxtr->pstNext = NULL;
// return pstWrkTxtr->pSDL_Texture;
// }
// if ( (pstWrkTxtr->pstNext = (PSTRUCT_TEXTURE_LIST) malloc(sizeof(STRUCT_TEXTURE_LIST))) == NULL )
// return NULL;
//
// memset(pstWrkTxtr->pstNext, 0, sizeof(STRUCT_TEXTURE_LIST));
// pstWrkTxtr = pstWrkTxtr->pstNext;
// pstWrkTxtr->pSDL_Texture = IMG_LoadTexture(renderer, pszImgPath);
// pstWrkTxtr->pszImgPath = pszImgPath;
// pstWrkTxtr->pstNext = NULL;
//
// return pstWrkTxtr->pSDL_Texture;
// }
SDL_Texture *pSDL_TXTR_AddToList(SDL_Renderer *renderer, SDL_Rect *pSDL_Rect, char *pszImgPath){
STRUCT_TEXTURE_LIST *pstWrkTxtr;

for ( pstWrkTxtr = &gstTextureList; pstWrkTxtr->pstNext != NULL; pstWrkTxtr = pstWrkTxtr->pstNext );

if ( pstWrkTxtr == &gstTextureList){

pstWrkTxtr->pszImgPath = NULL;
if ( pstWrkTxtr != &gstTextureList){
if ( (pstWrkTxtr->pstNext = (PSTRUCT_TEXTURE_LIST) malloc(sizeof(STRUCT_TEXTURE_LIST))) == NULL )
return NULL;

pstWrkTxtr = pstWrkTxtr->pstNext;
}

memset(pstWrkTxtr, 0, sizeof(STRUCT_TEXTURE_LIST));
if ( !bStrIsEmpty(pszImgPath) ){
pstWrkTxtr->pSDL_Texture = IMG_LoadTexture(renderer, pszImgPath);
pstWrkTxtr->pszImgPath = pszImgPath;
pstWrkTxtr->pstNext = NULL;
return pstWrkTxtr->pSDL_Texture;
}
if ( (pstWrkTxtr->pstNext = (PSTRUCT_TEXTURE_LIST) malloc(sizeof(STRUCT_TEXTURE_LIST))) == NULL )
return NULL;

memset(pstWrkTxtr->pstNext, 0, sizeof(STRUCT_TEXTURE_LIST));
pstWrkTxtr = pstWrkTxtr->pstNext;
pstWrkTxtr->pSDL_Texture = IMG_LoadTexture(renderer, pszImgPath);
pstWrkTxtr->pszImgPath = pszImgPath;
else if ( pSDL_Rect != NULL ){
pstWrkTxtr->pSDL_Texture = SDL_CreateTexture(renderer, SDL_PIXELFORMAT_RGBA8888, SDL_TEXTUREACCESS_TARGET, pSDL_Rect->w, pSDL_Rect->h);
}
pstWrkTxtr->pstNext = NULL;

return pstWrkTxtr->pSDL_Texture;
}
void vTXTR_FreeList(){

void vTXTR_FreeList(int iDestroy){
STRUCT_TEXTURE_LIST *pstWrkTxtr;

for ( pstWrkTxtr = gstTextureList.pstNext; pstWrkTxtr != NULL; ){
STRUCT_TEXTURE_LIST *pstLastTxtr = pstWrkTxtr;
pstWrkTxtr = pstWrkTxtr->pstNext;
if ( iDestroy && pstLastTxtr->pSDL_Texture != NULL ){
SDL_DestroyTexture(pstLastTxtr->pSDL_Texture);
}
free(pstLastTxtr);
}
}
Expand Down
12 changes: 6 additions & 6 deletions include/util.h
Original file line number Diff line number Diff line change
Expand Up @@ -75,17 +75,17 @@
* kpszFileName: the name of file
* kpszMode: mode used in fopen
*/
bool bOpenFile(FILE **fppFile, const char *kpszFileName, const char *kpszMode);
int bOpenFile(FILE **fppFile, const char *kpszFileName, const char *kpszMode);

/**
* Close file safety
*/
bool bCloseFile(FILE **fppFile);
int bCloseFile(FILE **fppFile);

/**
* Check if file exists
*/
bool bFileExist(const char *kpszFileName);
int bFileExist(const char *kpszFileName);

/******************************************************************************
* *
Expand All @@ -96,7 +96,7 @@
/**
* Check if string is empty
*/
bool bStrIsEmpty(const char *kpszStr);
int bStrIsEmpty(const char *kpszStr);

/******************************************************************************
* *
Expand All @@ -122,12 +122,12 @@
/**
* Load the cattie's parameters file.
*/
bool bLoadCfgFile(const char *kpszFileName);
int bLoadCfgFile(const char *kpszFileName);

/**
* Check if your terminal have support a colored text
*/
bool bTerminalSupportColors(void);
int bTerminalSupportColors(void);

/**
* Print a formatted error message
Expand Down
93 changes: 48 additions & 45 deletions src/cattie.c
Original file line number Diff line number Diff line change
Expand Up @@ -91,8 +91,8 @@ void vInitRect(SDL_Rect *pSDL_RECT, int iX, int iY, int iWidth, int iHeight){
if(DEBUG_MORE_MSGS)
{
vTraceVarArgs(
"pSDL_RECT->x = %d | pSDL_RECT->y = %d\n\t\t"
"pSDL_RECT->w = %d | pSDL_RECT->h = %d\n",
"\n\t\tpSDL_RECT->x = %d | pSDL_RECT->y = %d"
"\n\t\tpSDL_RECT->w = %d | pSDL_RECT->h = %d",
(pSDL_RECT->x), (pSDL_RECT->y),
(pSDL_RECT->w), (pSDL_RECT->h)
);
Expand Down Expand Up @@ -294,10 +294,17 @@ int iWalk(){
}

int iTurn(void){
if ( DEBUG_MSGS ) vTraceMsg("Turn\n");
if ( DEBUG_MSGS ) vTraceBegin();

giDeg = (giDeg == 360) ? 90 : giDeg + 90;
gstPlayer.iFacingPos = (gstPlayer.iFacingPos == WEST) ? NORTH : gstPlayer.iFacingPos+1;
if ( giDeg != FULL_TURN )
giDeg += SINGLE_TURN;
else
giDeg = SINGLE_TURN;

if (gstPlayer.iFacingPos != WEST )
gstPlayer.iFacingPos++;
else
gstPlayer.iFacingPos = NORTH;

if(DEBUG_MSGS) vTraceEnd();

Expand Down Expand Up @@ -431,14 +438,14 @@ int iHandleClick(SDL_Event *pSDL_EVENT_Ev, SDL_Texture *pSDL_TXTR_CmdListHud){
return 0;
}
void vUpdateCmdTmpList(int iAct, SDL_Rect *pSDL_Rect, SDL_Texture *pSDL_TXTR_CmdListHud, SDL_Renderer *pSDL_Rndr){
if ( pSDL_TXTR_CmdListHud == NULL ){
pSDL_TXTR_CmdListHud = IMG_LoadTexture(pSDL_Rndr, ppszInstalledImagePath[(iAct==0?iAct:(iAct-1))]);
}
SDL_SetTextureAlphaMod(pSDL_TXTR_CmdListHud, (Uint8)(255));
// SDL_Rect dstRect = {x ,y, w, h};
SDL_RenderCopy(pSDL_Rndr, pSDL_TXTR_CmdListHud, NULL, pSDL_Rect);
return ;
if ( pSDL_TXTR_CmdListHud == NULL ){
pSDL_TXTR_CmdListHud = IMG_LoadTexture(pSDL_Rndr, ppszInstalledImagePath[(iAct==0?iAct:(iAct-1))]);
}
SDL_SetTextureAlphaMod(pSDL_TXTR_CmdListHud, (Uint8)(255));
// SDL_Rect dstRect = {x ,y, w, h};
SDL_RenderCopy(pSDL_Rndr, pSDL_TXTR_CmdListHud, NULL, pSDL_Rect);

return ;
}

int iHandleEventKey(SDL_Event *pSDL_EVENT_Ev){
Expand Down Expand Up @@ -705,40 +712,42 @@ int SDL_main(int argc, char *argv[]){

// Create a renderer
renderer = SDL_CreateRenderer(window, -1, SDL_RENDERER_ACCELERATED);

SDL_SetRenderDrawBlendMode(renderer, SDL_BLENDMODE_BLEND);

// Not rdy yet
// iGXRF_Init();
//

//
// HUDs
//
// Set Hud Rect Dimensions
vSetCmdHUDRect(&SDL_RECT_Hud);

vSetButtonHUDRect(&SDL_RECT_ButtonHud);

// Generate a unique path.
//
// Board
//
iBOARD_GenerateRandomPath();

//
// Buttons
//

// Clear structure
vBUTTON_InitList();
vTXTR_InitList();

// Set Button Sizes
// Walk Forward
vSetButtonDimensions(&SDL_RECT_ButtonArrowRight, iXTranslation);
iXTranslation += SDL_RECT_ButtonArrowRight.w + 10;
// Turn Arrow
vSetButtonDimensions(&SDL_RECT_ButtonTurnArrow, iXTranslation);
iXTranslation += SDL_RECT_ButtonTurnArrow.w + 10;
// Fire Laser
vSetButtonDimensions(&SDL_RECT_ButtonFireLaser, iXTranslation);
iXTranslation += SDL_RECT_ButtonFireLaser.w + 50;
// Undo Last
vSetButtonDimensions(&SDL_RECT_ButtonUndoLast, iXTranslation);
iXTranslation += SDL_RECT_ButtonUndoLast.w + 50;
// Confirm Action
vSetButtonDimensions(&SDL_RECT_ButtonConfirm, iXTranslation);
iXTranslation += SDL_RECT_ButtonConfirm.w + 100;
// Configure Action
vSetButtonDimensions(&SDL_RECT_ButtonConfigure, iXTranslation);

// Square Edges
Expand All @@ -752,38 +761,41 @@ int SDL_main(int argc, char *argv[]){
iBUTTON_AddToList(&SDL_RECT_ButtonConfirm , CONFIRM);
iBUTTON_AddToList(&SDL_RECT_ButtonConfigure , CONFIGURE);



SDL_RenderPresent(renderer);

pSDL_TXTR_ImagePlayer = pSDL_TXTR_AddToList(renderer,

vBUTTON_DrawList(renderer);

//
// TXTR
//
vTXTR_InitList();
pSDL_TXTR_ImagePlayer = pSDL_TXTR_AddToList(renderer, NULL,
bFileExist(ppszInstalledImagePath[PLAYER_IMG_PATH_IDX])
? ppszInstalledImagePath[PLAYER_IMG_PATH_IDX]
: ppszImagePath[PLAYER_IMG_PATH_IDX]
);
pSDL_TXTR_ImageFoward = pSDL_TXTR_AddToList(renderer,
pSDL_TXTR_ImageFoward = pSDL_TXTR_AddToList(renderer, NULL,
bFileExist(ppszInstalledImagePath[FORWARD_IMG_PATH_IDX])
? ppszInstalledImagePath[FORWARD_IMG_PATH_IDX]
: ppszImagePath[FORWARD_IMG_PATH_IDX]
);
pSDL_TXTR_ImageLaser = pSDL_TXTR_AddToList(renderer,
pSDL_TXTR_ImageLaser = pSDL_TXTR_AddToList(renderer, NULL,
bFileExist(ppszInstalledImagePath[LASER_IMG_PATH_IDX])
? ppszInstalledImagePath[LASER_IMG_PATH_IDX]
: ppszImagePath[LASER_IMG_PATH_IDX]
);
pSDL_TXTR_ImageRotate = pSDL_TXTR_AddToList(renderer,
pSDL_TXTR_ImageRotate = pSDL_TXTR_AddToList(renderer, NULL,
bFileExist(ppszInstalledImagePath[ROTATE_IMG_PATH_IDX])
? ppszInstalledImagePath[ROTATE_IMG_PATH_IDX]
: ppszImagePath[ROTATE_IMG_PATH_IDX]
);
pSDL_TXTR_ImageConfig = pSDL_TXTR_AddToList(renderer,
pSDL_TXTR_ImageConfig = pSDL_TXTR_AddToList(renderer, NULL,
bFileExist(ppszInstalledImagePath[GEAR_IMG_PATH_IDX]) ?
ppszInstalledImagePath[GEAR_IMG_PATH_IDX]
: ppszImagePath[GEAR_IMG_PATH_IDX]
);

pSDL_TXTR_Hud = SDL_CreateTexture(renderer, SDL_PIXELFORMAT_RGBA8888, SDL_TEXTUREACCESS_TARGET, SDL_RECT_Hud.w, SDL_RECT_Hud.h);
pSDL_TXTR_ButtonHud = SDL_CreateTexture(renderer, SDL_PIXELFORMAT_RGBA8888, SDL_TEXTUREACCESS_TARGET, SDL_RECT_ButtonHud.w, SDL_RECT_ButtonHud.h);
pSDL_TXTR_Hud = pSDL_TXTR_AddToList (renderer, &SDL_RECT_Hud, NULL);
pSDL_TXTR_ButtonHud = pSDL_TXTR_AddToList (renderer, &SDL_RECT_ButtonHud, NULL);
pSDL_TXTR_SquareBorder = createSquareTexture(renderer);

vInitializeImagePosition(&SDL_RECT_Player);
Expand All @@ -793,7 +805,6 @@ int SDL_main(int argc, char *argv[]){

gstPlayer.pSDL_RECT_Player = &SDL_RECT_Player;

vBUTTON_DrawList(renderer);
/*
iGXRF_Add2RenderList(
renderer,
Expand Down Expand Up @@ -878,7 +889,7 @@ int SDL_main(int argc, char *argv[]){
//
// Redraw
//
if ( DEBUG_MSGS ) vTraceMsg("Main loop drawing section\n");
if ( DEBUG_MSGS ) vTraceMsg("--- Main loop Redraw ---");

ui64ElapsedTime = SDL_GetTicks64();

Expand Down Expand Up @@ -915,17 +926,9 @@ int SDL_main(int argc, char *argv[]){

// Clean up
TTF_CloseFont(pttf_Font);
// Don't forget to destroy the texture when you're done with it
SDL_DestroyTexture(pSDL_TXTR_Hud);
SDL_DestroyTexture(pSDL_TXTR_ButtonHud);
SDL_DestroyTexture(pSDL_TXTR_ImagePlayer);
SDL_DestroyTexture(pSDL_TXTR_ImageFoward);
SDL_DestroyTexture(pSDL_TXTR_ImageLaser );
SDL_DestroyTexture(pSDL_TXTR_ImageRotate);
SDL_DestroyTexture(pSDL_TXTR_ImageConfig);
SDL_DestroyTexture(pSDL_TXTR_SquareBorder);
vBUTTON_FreeList();
vTXTR_FreeList();
vTXTR_FreeList(DESTROY_TEXTURES);
SDL_DestroyRenderer(renderer);
SDL_DestroyWindow(window);
SDL_Quit();
Expand Down
Loading

0 comments on commit 15bdb15

Please sign in to comment.