fixed some graphics config and added some debugging logs, TODO: add more debugging logs

This commit is contained in:
herbglitch 2023-01-21 16:58:10 -07:00
parent 5e6ee54473
commit 9367252ab9
2 changed files with 22 additions and 8 deletions

View file

@ -76,6 +76,7 @@ uint8_t ARC_Point_Read(ARC_Config *config, ARC_String *string, void **value){
}
if(string->data[0] != '{' || string->data[string->length - 1] != '}'){
ARC_DEBUG_LOG(arc_errno, "in ARC_Point_Read(config, string, value); no matching curly braces: %s", string->data);
arc_errno = ARC_ERRNO_DATA;
return 0;
}
@ -108,6 +109,7 @@ uint8_t ARC_Rect_Read(ARC_Config *config, ARC_String *string, void **value){
if(string->data[0] != '{' || string->data[string->length - 1] != '}'){
arc_errno = ARC_ERRNO_DATA;
ARC_DEBUG_LOG(arc_errno, "in ARC_Rect_Read(config, string, value); no matching curly braces: %s", string->data);
return 0;
}
@ -208,8 +210,8 @@ void ARC_RectArray_ReadRect(ARC_Config* config, ARC_String *stripped, uint64_t i
//reading in value
ARC_Rect_Read(config, substr, (void **) &tempRect);
if(arc_errno){
ARC_DEBUG_LOG(arc_errno, "in ARC_RectArray_ReadRect(config, string, index, length, arrayIndex, value); failed to read rect: %s", substr->data);
ARC_String_Destroy(substr);
ARC_String_Destroy(stripped);
return;
}
@ -218,9 +220,6 @@ void ARC_RectArray_ReadRect(ARC_Config* config, ARC_String *stripped, uint64_t i
ARC_Rect_Delete(config, substr, (void *)tempRect);
ARC_String_Destroy(substr);
if(arc_errno){
return;
}
}
uint8_t ARC_RectArray_Read(ARC_Config* config, ARC_String *string, void **value){
@ -231,6 +230,7 @@ uint8_t ARC_RectArray_Read(ARC_Config* config, ARC_String *string, void **value)
if(string->data[0] != '{' || string->data[string->length - 1] != '}'){
arc_errno = ARC_ERRNO_DATA;
ARC_DEBUG_LOG(arc_errno, "in ARC_RectArray_Read(config, string, value); no matching curly braces: %s", string->data);
return 0;
}
@ -289,7 +289,7 @@ uint8_t ARC_RectArray_Read(ARC_Config* config, ARC_String *string, void **value)
return 0;
}
index = i;
index = i + 1;
if(arraySize == *((ARC_Array *) *value)->size){
break;
@ -297,7 +297,9 @@ uint8_t ARC_RectArray_Read(ARC_Config* config, ARC_String *string, void **value)
}
}
ARC_RectArray_ReadRect(config, stripped, index, stripped->length - index, &arraySize, value);
if(arraySize != *((ARC_Array *) *value)->size){
ARC_RectArray_ReadRect(config, stripped, index, stripped->length - index, &arraySize, value);
}
ARC_String_Destroy(stripped);
return 0;
}
@ -363,7 +365,7 @@ uint8_t ARC_Spritesheet_Read(ARC_Config* config, ARC_String *string, void **valu
}
ARC_String *temp, *textureStr, *sizeStr;
ARC_String_CopySubstring(&temp, string, 1, split - 1);
ARC_String_CopySubstring(&temp, string, 1, split - 2);
ARC_String_StripEndsWhitespace(temp, &textureStr);
ARC_String_Destroy(temp);
@ -444,6 +446,16 @@ uint8_t ARC_Sprite_Read(ARC_Config* config, ARC_String *string, void **value){
ARC_String_Destroy(spritesheetStr);
ARC_String_Destroy(framesStr );
// Scale frames to match spritesheet size
// TODO: possible bug for sheets that use same frames
if(spritesheet->size){
for(uint32_t i = 0; i < *frames->size; i++){
((ARC_Rect *)frames->data)[i].x *= *spritesheet->size;
((ARC_Rect *)frames->data)[i].y *= *spritesheet->size;
((ARC_Rect *)frames->data)[i].w *= *spritesheet->size;
((ARC_Rect *)frames->data)[i].h *= *spritesheet->size;
}
}
//sprite
*value = malloc(sizeof(ARC_Sprite));
((ARC_Sprite *) *value)->frameIndex = malloc(sizeof(uint32_t));

View file

@ -120,11 +120,12 @@ void ARC_Config_SetGroup(ARC_Config *config, ARC_String *groupname){
}
void ARC_Config_Get(ARC_Config *config, ARC_String *keyname, void **value){
ARC_ConfigTypeTemplate *temp;
ARC_ConfigTypeTemplate *temp = NULL;
uint64_t length = ARC_String_FindCString(keyname, "::", 2);
if(arc_errno){
//TODO: Debug info here
ARC_DEBUG_ERR("in ARC_Config_Get(config, keyname, value); length threw error");
*value = NULL;
return;
}
@ -140,6 +141,7 @@ void ARC_Config_Get(ARC_Config *config, ARC_String *keyname, void **value){
ARC_Hashtable *currgroup = config->currgroup;
ARC_Config_SetGroup(config, group);
if(arc_errno){
ARC_DEBUG_ERR("in ARC_Config_Get(config, keyname, value); setting group threw error");
ARC_String_Destroy(group);
*value = NULL;
return;