changed lexer helper function to add match char to data, and fixed loading in spritesheet from string
This commit is contained in:
parent
83b87c6d63
commit
1435ae14b0
5 changed files with 19 additions and 3 deletions
|
|
@ -34,6 +34,15 @@ void ARC_Spritesheet_CreateFromFile(ARC_Spritesheet **spritesheet, ARC_Renderer
|
||||||
*/
|
*/
|
||||||
void ARC_Spritesheet_Destroy(ARC_Spritesheet *spritesheet);
|
void ARC_Spritesheet_Destroy(ARC_Spritesheet *spritesheet);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief renders the texture of a spritesheet
|
||||||
|
*
|
||||||
|
* @param[in] spritesheet ARC_Spritesheet to render
|
||||||
|
* @param[in] renderer the renderer to draw to
|
||||||
|
* @param[in] renderBounds the area of the renderer to copy the spritesheet to
|
||||||
|
*/
|
||||||
|
void ARC_Spritesheet_Render(ARC_Spritesheet *spritesheet, ARC_Renderer *renderer, ARC_Rect renderBounds);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief renders a section of a spritesheet
|
* @brief renders a section of a spritesheet
|
||||||
*
|
*
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,6 @@ extern "C" {
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include "arc/std/parser.h"
|
#include "arc/std/parser.h"
|
||||||
#include <stddef.h>
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief recurses through a tag token adding token strings to a main string
|
* @brief recurses through a tag token adding token strings to a main string
|
||||||
|
|
|
||||||
|
|
@ -22,10 +22,13 @@ void ARC_Config_InitGraphics(ARC_Config *config, ARC_Renderer *renderer){
|
||||||
void ARC_ConfigType_SpritesheetString(void **type, ARC_ParserTagToken *parsedData, ARC_Config *config, void *userdata){
|
void ARC_ConfigType_SpritesheetString(void **type, ARC_ParserTagToken *parsedData, ARC_Config *config, void *userdata){
|
||||||
ARC_Renderer *renderer = (ARC_Renderer *)userdata;
|
ARC_Renderer *renderer = (ARC_Renderer *)userdata;
|
||||||
|
|
||||||
|
//get the string chars between the quotes
|
||||||
|
ARC_ParserTagToken *stringCharsTagToken = (ARC_ParserTagToken *)ARC_Vector_Get(parsedData->tagTokens, 1);
|
||||||
|
|
||||||
//get the path
|
//get the path
|
||||||
ARC_String *path;
|
ARC_String *path;
|
||||||
ARC_String_Create(&path, NULL, 0);
|
ARC_String_Create(&path, NULL, 0);
|
||||||
ARC_ParserData_HelperRecurseStringAdd(&path, parsedData);
|
ARC_ParserData_HelperRecurseStringAdd(&path, stringCharsTagToken);
|
||||||
|
|
||||||
//read in and set the texture
|
//read in and set the texture
|
||||||
ARC_Spritesheet_CreateFromFile((ARC_Spritesheet **)type, renderer, path);
|
ARC_Spritesheet_CreateFromFile((ARC_Spritesheet **)type, renderer, path);
|
||||||
|
|
|
||||||
|
|
@ -49,6 +49,10 @@ void ARC_Spritesheet_Destroy(ARC_Spritesheet *spritesheet){
|
||||||
free(spritesheet);
|
free(spritesheet);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void ARC_Spritesheet_Render(ARC_Spritesheet *spritesheet, ARC_Renderer *renderer, ARC_Rect renderBounds){
|
||||||
|
SDL_RenderCopy((SDL_Renderer *)renderer, spritesheet->texture, NULL, (SDL_Rect *)&renderBounds);
|
||||||
|
}
|
||||||
|
|
||||||
void ARC_Spritesheet_RenderArea(ARC_Spritesheet *spritesheet, ARC_Rect sheetBounds, ARC_Renderer *renderer, ARC_Rect renderBounds){
|
void ARC_Spritesheet_RenderArea(ARC_Spritesheet *spritesheet, ARC_Rect sheetBounds, ARC_Renderer *renderer, ARC_Rect renderBounds){
|
||||||
SDL_RenderCopy((SDL_Renderer *)renderer, spritesheet->texture, (SDL_Rect *)&sheetBounds, (SDL_Rect *)&renderBounds);
|
SDL_RenderCopy((SDL_Renderer *)renderer, spritesheet->texture, (SDL_Rect *)&sheetBounds, (SDL_Rect *)&renderBounds);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -335,7 +335,8 @@ uint32_t ARC_Lexer_AutomataMatchCharFn(ARC_String **tokenData, ARC_String *strin
|
||||||
|
|
||||||
//check to see if there is a match with automataData as a char
|
//check to see if there is a match with automataData as a char
|
||||||
if(string->data[0] == *(char *)automataData){
|
if(string->data[0] == *(char *)automataData){
|
||||||
//return the token was found of length 1
|
//return the token as token data and the token was found of length 1
|
||||||
|
ARC_String_Create(tokenData, string->data, 1);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue