changed array size to no longer be a pointer, need to check every file that references array to hopefully not have broken anything
This commit is contained in:
parent
56a4aa9d39
commit
533541b852
6 changed files with 29 additions and 24 deletions
|
|
@ -23,9 +23,9 @@ typedef struct ARC_Sprite ARC_Sprite;
|
||||||
*
|
*
|
||||||
* @param sprite ARC_Sprite that is being created
|
* @param sprite ARC_Sprite that is being created
|
||||||
* @param spritesheet ARC_Spritesheet that ARC_Sprite will be pulled from
|
* @param spritesheet ARC_Spritesheet that ARC_Sprite will be pulled from
|
||||||
* @param bounds ARC_Array of bounds of sprite on spritesheet
|
* @param frames ARC_Array of bounds of sprite on spritesheet
|
||||||
*/
|
*/
|
||||||
void ARC_Sprite_Create(ARC_Sprite **sprite, ARC_Spritesheet *spritesheet, ARC_Array *bounds);
|
void ARC_Sprite_Create(ARC_Sprite **sprite, ARC_Spritesheet *spritesheet, ARC_Array *frames);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief destroys ARC_Sprite type
|
* @brief destroys ARC_Sprite type
|
||||||
|
|
@ -76,6 +76,13 @@ void ARC_Sprite_IterateFrame(ARC_Sprite *sprite);
|
||||||
*/
|
*/
|
||||||
ARC_Rect *ARC_Sprite_GetBounds(ARC_Sprite *sprite);
|
ARC_Rect *ARC_Sprite_GetBounds(ARC_Sprite *sprite);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief returns the array of bounds that a sprite has
|
||||||
|
*
|
||||||
|
* @param sprite ARC_Sprite to get all the bounds from
|
||||||
|
*/
|
||||||
|
ARC_Array *ARC_Sprite_GetAllBounds(ARC_Sprite *sprite);
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
|
||||||
|
|
@ -11,7 +11,7 @@ extern "C" {
|
||||||
* @brief a type that holds an array of data and its size
|
* @brief a type that holds an array of data and its size
|
||||||
*/
|
*/
|
||||||
typedef struct ARC_Array {
|
typedef struct ARC_Array {
|
||||||
uint32_t *size;
|
uint32_t size;
|
||||||
void *data;
|
void *data;
|
||||||
} ARC_Array;
|
} ARC_Array;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -36,9 +36,8 @@ uint8_t ARC_CSV_Read(ARC_Config *config, ARC_String *string, void **value){
|
||||||
}
|
}
|
||||||
|
|
||||||
*value = malloc(sizeof(ARC_Array));
|
*value = malloc(sizeof(ARC_Array));
|
||||||
((ARC_Array *)*value)->data = malloc(sizeof(ARC_Array *) * height);
|
((ARC_Array *)*value)->data = malloc(sizeof(ARC_Array *) * height);
|
||||||
((ARC_Array *)*value)->size = malloc(sizeof(uint32_t) );
|
((ARC_Array *)*value)->size = height;
|
||||||
*((ARC_Array *)*value)->size = height;
|
|
||||||
|
|
||||||
uint32_t index = 0;
|
uint32_t index = 0;
|
||||||
for(uint32_t y = 0; y < height; y++){
|
for(uint32_t y = 0; y < height; y++){
|
||||||
|
|
@ -65,8 +64,7 @@ uint8_t ARC_CSV_Read(ARC_Config *config, ARC_String *string, void **value){
|
||||||
|
|
||||||
((ARC_Array **)((ARC_Array *)*value)->data)[y] = (ARC_Array *) malloc(sizeof(ARC_Array));
|
((ARC_Array **)((ARC_Array *)*value)->data)[y] = (ARC_Array *) malloc(sizeof(ARC_Array));
|
||||||
((ARC_Array **)((ARC_Array *)*value)->data)[y]->data = malloc(sizeof(int32_t ) * width);
|
((ARC_Array **)((ARC_Array *)*value)->data)[y]->data = malloc(sizeof(int32_t ) * width);
|
||||||
((ARC_Array **)((ARC_Array *)*value)->data)[y]->size = malloc(sizeof(uint32_t) );
|
((ARC_Array **)((ARC_Array *)*value)->data)[y]->size = width;
|
||||||
*((ARC_Array **)((ARC_Array *)*value)->data)[y]->size = width;
|
|
||||||
|
|
||||||
for(uint32_t i = index; i < fileData->length; i++){
|
for(uint32_t i = index; i < fileData->length; i++){
|
||||||
if(fileData->data[i] != ',' && fileData->data[i] != '\n'){
|
if(fileData->data[i] != ',' && fileData->data[i] != '\n'){
|
||||||
|
|
@ -92,13 +90,11 @@ uint8_t ARC_CSV_Read(ARC_Config *config, ARC_String *string, void **value){
|
||||||
|
|
||||||
void ARC_CSV_Delete(ARC_Config *config, ARC_String *string, void *value){
|
void ARC_CSV_Delete(ARC_Config *config, ARC_String *string, void *value){
|
||||||
ARC_Array *valueArray = value;
|
ARC_Array *valueArray = value;
|
||||||
for(uint32_t i = 0; i < *valueArray->size; i++){
|
for(uint32_t i = 0; i < valueArray->size; i++){
|
||||||
free((int32_t *)((ARC_Array **)valueArray->data)[i]->data);
|
free((int32_t *)((ARC_Array **)valueArray->data)[i]->data);
|
||||||
free((uint32_t *)((ARC_Array **)valueArray->data)[i]->size);
|
|
||||||
free((ARC_Array *)((ARC_Array **)valueArray->data)[i]);
|
free((ARC_Array *)((ARC_Array **)valueArray->data)[i]);
|
||||||
}
|
}
|
||||||
|
|
||||||
free((ARC_Array **)valueArray->data);
|
free((ARC_Array **)valueArray->data);
|
||||||
free((uint32_t *)valueArray->size);
|
|
||||||
free(valueArray);
|
free(valueArray);
|
||||||
}
|
}
|
||||||
|
|
@ -265,9 +265,8 @@ uint8_t ARC_RectArray_Read(ARC_Config* config, ARC_String *string, void **value)
|
||||||
}
|
}
|
||||||
|
|
||||||
*value = malloc(sizeof(ARC_Array));
|
*value = malloc(sizeof(ARC_Array));
|
||||||
((ARC_Array *) *value)->data = malloc(sizeof(ARC_Rect) * arraySize);
|
((ARC_Array *) *value)->data = malloc(sizeof(ARC_Rect) * arraySize);
|
||||||
((ARC_Array *) *value)->size = malloc(sizeof(uint32_t));
|
((ARC_Array *) *value)->size = arraySize;
|
||||||
*((ARC_Array *) *value)->size = arraySize;
|
|
||||||
|
|
||||||
uint64_t index = 0;
|
uint64_t index = 0;
|
||||||
arraySize = 0;
|
arraySize = 0;
|
||||||
|
|
@ -291,13 +290,13 @@ uint8_t ARC_RectArray_Read(ARC_Config* config, ARC_String *string, void **value)
|
||||||
|
|
||||||
index = i + 1;
|
index = i + 1;
|
||||||
|
|
||||||
if(arraySize == *((ARC_Array *) *value)->size){
|
if(arraySize == ((ARC_Array *) *value)->size){
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if(arraySize != *((ARC_Array *) *value)->size){
|
if(arraySize != ((ARC_Array *) *value)->size){
|
||||||
ARC_RectArray_ReadRect(config, stripped, index, stripped->length - index, &arraySize, value);
|
ARC_RectArray_ReadRect(config, stripped, index, stripped->length - index, &arraySize, value);
|
||||||
}
|
}
|
||||||
ARC_String_Destroy(stripped);
|
ARC_String_Destroy(stripped);
|
||||||
|
|
@ -449,7 +448,7 @@ uint8_t ARC_Sprite_Read(ARC_Config* config, ARC_String *string, void **value){
|
||||||
// Scale frames to match spritesheet size
|
// Scale frames to match spritesheet size
|
||||||
// TODO: possible bug for sheets that use same frames
|
// TODO: possible bug for sheets that use same frames
|
||||||
if(spritesheet->size){
|
if(spritesheet->size){
|
||||||
for(uint32_t i = 0; i < *frames->size; i++){
|
for(uint32_t i = 0; i < frames->size; i++){
|
||||||
((ARC_Rect *)frames->data)[i].x *= *spritesheet->size;
|
((ARC_Rect *)frames->data)[i].x *= *spritesheet->size;
|
||||||
((ARC_Rect *)frames->data)[i].y *= *spritesheet->size;
|
((ARC_Rect *)frames->data)[i].y *= *spritesheet->size;
|
||||||
((ARC_Rect *)frames->data)[i].w *= *spritesheet->size;
|
((ARC_Rect *)frames->data)[i].w *= *spritesheet->size;
|
||||||
|
|
|
||||||
|
|
@ -38,7 +38,7 @@ void ARC_Sprite_RenderRotated(ARC_Sprite *sprite, ARC_Renderer *renderer, ARC_Re
|
||||||
void ARC_Sprite_IterateFrame(ARC_Sprite *sprite){
|
void ARC_Sprite_IterateFrame(ARC_Sprite *sprite){
|
||||||
++*sprite->frameIndex;
|
++*sprite->frameIndex;
|
||||||
|
|
||||||
if(*sprite->frameIndex == *sprite->frames->size){
|
if(*sprite->frameIndex == sprite->frames->size){
|
||||||
*sprite->frameIndex = 0;
|
*sprite->frameIndex = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -47,4 +47,8 @@ ARC_Rect *ARC_Sprite_GetBounds(ARC_Sprite *sprite){
|
||||||
return (ARC_Rect *)sprite->frames->data + *sprite->frameIndex;
|
return (ARC_Rect *)sprite->frames->data + *sprite->frameIndex;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ARC_Array *ARC_Sprite_GetAllBounds(ARC_Sprite *sprite){
|
||||||
|
return sprite->frames;
|
||||||
|
}
|
||||||
|
|
||||||
#endif // ARC_SDL
|
#endif // ARC_SDL
|
||||||
|
|
@ -250,9 +250,8 @@ uint8_t ARC_ConfigKey_Read_StringArray(ARC_Config* config, ARC_String *string, v
|
||||||
}
|
}
|
||||||
|
|
||||||
*value = malloc(sizeof(ARC_Array));
|
*value = malloc(sizeof(ARC_Array));
|
||||||
((ARC_Array *) *value)->data = malloc(sizeof(ARC_String *) * arraySize);
|
((ARC_Array *) *value)->data = malloc(sizeof(ARC_String *) * arraySize);
|
||||||
((ARC_Array *) *value)->size = malloc(sizeof(uint32_t));
|
((ARC_Array *) *value)->size = arraySize;
|
||||||
*((ARC_Array *) *value)->size = arraySize;
|
|
||||||
|
|
||||||
uint64_t index = 0;
|
uint64_t index = 0;
|
||||||
arraySize = 0;
|
arraySize = 0;
|
||||||
|
|
@ -265,13 +264,13 @@ uint8_t ARC_ConfigKey_Read_StringArray(ARC_Config* config, ARC_String *string, v
|
||||||
|
|
||||||
index = i + 1;
|
index = i + 1;
|
||||||
|
|
||||||
if(arraySize == *((ARC_Array *) *value)->size){
|
if(arraySize == ((ARC_Array *) *value)->size){
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if(arraySize != *((ARC_Array *) *value)->size){
|
if(arraySize != ((ARC_Array *) *value)->size){
|
||||||
ARC_ConfigKey_StringArray_ReadString(config, stripped, index, stripped->length - index, &arraySize, value);
|
ARC_ConfigKey_StringArray_ReadString(config, stripped, index, stripped->length - index, &arraySize, value);
|
||||||
}
|
}
|
||||||
ARC_String_Destroy(stripped);
|
ARC_String_Destroy(stripped);
|
||||||
|
|
@ -337,7 +336,7 @@ void ARC_ConfigKey_Delete_String(ARC_Config *config, ARC_String *string, void *v
|
||||||
}
|
}
|
||||||
|
|
||||||
void ARC_ConfigKey_Delete_StringArray(ARC_Config *config, ARC_String *string, void *value){
|
void ARC_ConfigKey_Delete_StringArray(ARC_Config *config, ARC_String *string, void *value){
|
||||||
for(uint32_t i = 0; i < *((ARC_Array *)value)->size; i++){
|
for(uint32_t i = 0; i < ((ARC_Array *)value)->size; i++){
|
||||||
free(((ARC_String **)((ARC_Array *)value)->data)[i]);
|
free(((ARC_String **)((ARC_Array *)value)->data)[i]);
|
||||||
}
|
}
|
||||||
free((ARC_Array *)value);
|
free((ARC_Array *)value);
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue