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);
|
||||
|
||||
/**
|
||||
* @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
|
||||
*
|
||||
|
|
|
|||
|
|
@ -6,7 +6,6 @@ extern "C" {
|
|||
#endif
|
||||
|
||||
#include "arc/std/parser.h"
|
||||
#include <stddef.h>
|
||||
|
||||
/**
|
||||
* @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){
|
||||
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
|
||||
ARC_String *path;
|
||||
ARC_String_Create(&path, NULL, 0);
|
||||
ARC_ParserData_HelperRecurseStringAdd(&path, parsedData);
|
||||
ARC_ParserData_HelperRecurseStringAdd(&path, stringCharsTagToken);
|
||||
|
||||
//read in and set the texture
|
||||
ARC_Spritesheet_CreateFromFile((ARC_Spritesheet **)type, renderer, path);
|
||||
|
|
|
|||
|
|
@ -49,6 +49,10 @@ void ARC_Spritesheet_Destroy(ARC_Spritesheet *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){
|
||||
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
|
||||
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;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue