mirror of
https://github.com/Tuper444/terrario.git
synced 2024-06-13 05:19:01 +02:00
Cleanup
- Made explosion functions a bit more efficient - Separated includes into standard, gint, and local
This commit is contained in:
parent
7a8046370d
commit
a379564e21
|
@ -61,14 +61,7 @@ explosion: Pointer to an explosion struct. NOTE: The particles variable *MUST*
|
|||
have been allocated to `50 * sizeof Particle` bytes!
|
||||
x, y: Pixel coordinates of the explosion's origin.
|
||||
*/
|
||||
void createExplosion(struct ParticleExplosion *explosion, int x, int y);
|
||||
|
||||
/* destroyExplosion
|
||||
Destructor for the given explosion. Frees the particle buffer.
|
||||
|
||||
explosion: Pointer to the explosion to destruct.
|
||||
*/
|
||||
void destroyExplosion(struct ParticleExplosion *explosion);
|
||||
void resetExplosion(int x, int y);
|
||||
|
||||
/* renderAndUpdateExplosion
|
||||
Updates the given explosion by one frame.
|
||||
|
@ -76,7 +69,7 @@ Updates the given explosion by one frame.
|
|||
explosion: Pointer to the explosion.
|
||||
offsetX, offsetY: Delta coordinates to be used with a camera.
|
||||
*/
|
||||
void updateExplosion(struct ParticleExplosion *explosion);
|
||||
void updateExplosion();
|
||||
|
||||
/* middleText
|
||||
Clears the screen and displays some text in the middle.
|
||||
|
|
|
@ -51,7 +51,7 @@ CFLAGS_FX := -D FX9860G -m3
|
|||
CFLAGS_CG := -D FXCG50 -m4-nofpu
|
||||
|
||||
# Additional compiler flags, change to your own taste!
|
||||
CFLAGS += -Wall -Wextra -Wno-missing-field-initializers -std=c11 -O2 -lopenlibm -Wno-implicit-fallthrough
|
||||
CFLAGS += -Wall -Wextra -Wno-missing-field-initializers -std=c11 -O2 -Wno-implicit-fallthrough
|
||||
|
||||
# Include paths. Add one -I option for each folder from which you want to
|
||||
# be able to include files with #include<>.
|
||||
|
@ -64,7 +64,7 @@ LIBS_FX :=
|
|||
LIBS_CG :=
|
||||
|
||||
# Base linker flags for the fxSDK, you usually want to keep these.
|
||||
LDFLAGS_FX := -T fx9860g.ld -lgint-fx $(LIBS_FX) -lgcc -nostdlib -lc
|
||||
LDFLAGS_FX := -T fx9860g.ld -lgint-fx $(LIBS_FX) -nostdlib -lc -lopenlibm -lgcc
|
||||
LDFLAGS_CG := -T fxcg50.ld -lgint-cg $(LIBS_CG) -lgint-cg -lgcc
|
||||
|
||||
# Additional linker flags, if you need any.
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
#include <gint/std/stdlib.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
#include "chest.h"
|
||||
#include "world.h"
|
||||
|
|
|
@ -1,9 +1,10 @@
|
|||
#include <gint/std/stdlib.h>
|
||||
#include <gint/std/string.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <stdbool.h>
|
||||
|
||||
#include <gint/keyboard.h>
|
||||
#include <gint/gray.h>
|
||||
#include <gint/timer.h>
|
||||
#include <stdbool.h>
|
||||
#include <gint/gint.h>
|
||||
#include <gint/defs/util.h>
|
||||
|
||||
|
|
13
src/entity.c
13
src/entity.c
|
@ -1,12 +1,13 @@
|
|||
#include <gint/keyboard.h>
|
||||
#include <gint/defs/util.h>
|
||||
#include <gint/gray.h>
|
||||
#include <stdbool.h>
|
||||
#include <openlibm_math.h>
|
||||
#include <math.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
#include <gint/timer.h>
|
||||
#include <gint/gint.h>
|
||||
#include <gint/std/stdlib.h>
|
||||
#include <stdlib.h>
|
||||
#include <gint/keyboard.h>
|
||||
#include <gint/defs/util.h>
|
||||
#include <gint/gray.h>
|
||||
|
||||
#include "entity.h"
|
||||
#include "defs.h"
|
||||
|
@ -512,7 +513,7 @@ void doEntityCycle(int frames)
|
|||
{
|
||||
player.inventory.ticksSinceInteracted = 0;
|
||||
doEntityDrop(ent->drops);
|
||||
createExplosion(&world.explosion, ent->props.x + (ent->props.width >> 1), ent->props.y + (ent->props.height >> 1));
|
||||
resetExplosion(ent->props.x + (ent->props.width >> 1), ent->props.y + (ent->props.height >> 1));
|
||||
world.removeEntity(idx);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,6 +1,8 @@
|
|||
#include <stdlib.h>
|
||||
#include <math.h>
|
||||
|
||||
#include <gint/std/stdlib.h>
|
||||
#include <gint/defs/util.h>
|
||||
#include "math.h"
|
||||
|
||||
#include "generate.h"
|
||||
#include "world.h"
|
||||
|
|
18
src/main.c
18
src/main.c
|
@ -1,12 +1,13 @@
|
|||
#include <stdbool.h>
|
||||
#include <string.h>
|
||||
|
||||
#include <gint/clock.h>
|
||||
#include <gint/bfile.h>
|
||||
#include <gint/hardware.h>
|
||||
#include <gint/std/stdlib.h>
|
||||
#include <gint/gray.h>
|
||||
#include <gint/gint.h>
|
||||
#include <gint/timer.h>
|
||||
#include <stdbool.h>
|
||||
#include <gint/std/string.h>
|
||||
#include <gint/clock.h>
|
||||
#include <gint/bfile.h>
|
||||
#include <gint/hardware.h>
|
||||
|
||||
#include "defs.h"
|
||||
#include "syscalls.h"
|
||||
|
@ -88,7 +89,7 @@ bool gameLoop(volatile int *flag)
|
|||
if(updateRet == UPDATE_EXIT) return true;
|
||||
else if(updateRet == UPDATE_EXIT_NOSAVE) return false;
|
||||
|
||||
if(frames & 1) updateExplosion(&world.explosion);
|
||||
if(frames & 1) updateExplosion();
|
||||
if(frames % 8 == 0) worldUpdate();
|
||||
if(frames % 3600 == 0) doMarkerChecks();
|
||||
|
||||
|
@ -115,7 +116,7 @@ bool gameLoop(volatile int *flag)
|
|||
else if(respawnCounter > 0) respawnCounter--;
|
||||
else
|
||||
{
|
||||
createExplosion(&world.explosion, player.props.x + (player.props.width >> 1), player.props.y + (player.props.height >> 1));
|
||||
resetExplosion(player.props.x + (player.props.width >> 1), player.props.y + (player.props.height >> 1));
|
||||
respawnCounter = 300;
|
||||
}
|
||||
}
|
||||
|
@ -242,6 +243,7 @@ int main(void)
|
|||
.entities = (Entity*)malloc(MAX_ENTITIES * sizeof(Entity)),
|
||||
|
||||
.explosion = {
|
||||
.numParticles = 50,
|
||||
.particles = malloc(50 * sizeof(Particle))
|
||||
},
|
||||
|
||||
|
@ -331,7 +333,7 @@ int main(void)
|
|||
}
|
||||
|
||||
free(world.entities);
|
||||
destroyExplosion(&world.explosion);
|
||||
free(world.explosion.particles);
|
||||
|
||||
if(doSave) gint_world_switch(GINT_CALL(&saveGame));
|
||||
free(world.chests.chests);
|
||||
|
|
|
@ -1,16 +1,17 @@
|
|||
// Miscellaneous menus
|
||||
|
||||
#include <stdio.h>
|
||||
#include <math.h>
|
||||
#include <stdbool.h>
|
||||
#include <string.h>
|
||||
|
||||
#include <gint/gray.h>
|
||||
#include <gint/gint.h>
|
||||
#include <gint/keyboard.h>
|
||||
#include <gint/defs/util.h>
|
||||
#include <gint/timer.h>
|
||||
#include <stdbool.h>
|
||||
#include <gint/std/string.h>
|
||||
#include <gint/std/stdlib.h>
|
||||
#include <gint/clock.h>
|
||||
#include <gint/std/stdio.h>
|
||||
#include <openlibm/openlibm_math.h>
|
||||
|
||||
#include "menu.h"
|
||||
#include "syscalls.h"
|
||||
|
|
|
@ -1,8 +1,10 @@
|
|||
#include <gint/std/stdlib.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
|
||||
#include <gint/gray.h>
|
||||
#include <gint/keyboard.h>
|
||||
#include <gint/std/string.h>
|
||||
#include <gint/defs/util.h>
|
||||
#include <gint/keyboard.h>
|
||||
#include <gint/std/stdlib.h>
|
||||
|
||||
#include "npc.h"
|
||||
#include "world.h"
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
#include <string.h>
|
||||
|
||||
#include <gint/defs/attributes.h>
|
||||
#include <gint/std/string.h>
|
||||
|
||||
#include "optimise.h"
|
||||
|
||||
typedef struct{
|
||||
|
|
35
src/render.c
35
src/render.c
|
@ -1,12 +1,14 @@
|
|||
#include <stdbool.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <stdio.h>
|
||||
#include <math.h>
|
||||
|
||||
#include <gint/gray.h>
|
||||
#include <gint/defs/util.h>
|
||||
#include <stdbool.h>
|
||||
#include <gint/bfile.h>
|
||||
#include <gint/std/string.h>
|
||||
#include <gint/timer.h>
|
||||
#include <gint/std/stdlib.h>
|
||||
#include <gint/std/stdio.h>
|
||||
#include <openlibm/openlibm_math.h>
|
||||
|
||||
#include "render.h"
|
||||
#include "defs.h"
|
||||
|
@ -371,14 +373,13 @@ void takeVRAMCapture()
|
|||
BFile_Close(descriptor);
|
||||
}
|
||||
|
||||
void createExplosion(struct ParticleExplosion *explosion, int x, int y)
|
||||
void resetExplosion(int x, int y)
|
||||
{
|
||||
explosion->numParticles = 50;
|
||||
explosion->deltaTicks = 0;
|
||||
world.explosion.deltaTicks = 0;
|
||||
|
||||
for(int i = 0; i < 50; i++)
|
||||
{
|
||||
explosion->particles[i] = (Particle) {
|
||||
world.explosion.particles[i] = (Particle) {
|
||||
x,
|
||||
y,
|
||||
(float)((rand() % 201) - 80) / 100.0,
|
||||
|
@ -388,23 +389,13 @@ void createExplosion(struct ParticleExplosion *explosion, int x, int y)
|
|||
}
|
||||
}
|
||||
|
||||
void destroyExplosion(struct ParticleExplosion *explosion)
|
||||
{
|
||||
if(explosion->particles != NULL)
|
||||
{
|
||||
free(explosion->particles);
|
||||
explosion->particles = NULL;
|
||||
}
|
||||
explosion->numParticles = 0;
|
||||
}
|
||||
|
||||
void updateExplosion(struct ParticleExplosion *explosion)
|
||||
void updateExplosion()
|
||||
{
|
||||
Particle* particle;
|
||||
|
||||
for(int i = 0; i < explosion->numParticles; i++)
|
||||
for(int i = 0; i < world.explosion.numParticles; i++)
|
||||
{
|
||||
particle = &explosion->particles[i];
|
||||
particle = &world.explosion.particles[i];
|
||||
|
||||
particle->x += round(particle->xVel);
|
||||
particle->y += round(particle->yVel);
|
||||
|
@ -412,7 +403,7 @@ void updateExplosion(struct ParticleExplosion *explosion)
|
|||
particle->yVel += 0.2;
|
||||
particle->xVel *= 0.95;
|
||||
}
|
||||
explosion->deltaTicks++;
|
||||
world.explosion.deltaTicks++;
|
||||
}
|
||||
|
||||
void middleText(char *text, int progress)
|
||||
|
|
|
@ -1,8 +1,9 @@
|
|||
#include <gint/bfile.h>
|
||||
#include <stdbool.h>
|
||||
#include <gint/std/stdio.h>
|
||||
#include <gint/std/string.h>
|
||||
#include <gint/std/stdlib.h>
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
#include <gint/bfile.h>
|
||||
|
||||
#include "save.h"
|
||||
#include "defs.h"
|
||||
|
|
|
@ -1,7 +1,8 @@
|
|||
#include <math.h>
|
||||
|
||||
#include <gint/keyboard.h>
|
||||
#include <gint/gint.h>
|
||||
#include <gint/defs/util.h>
|
||||
#include <openlibm/openlibm_math.h>
|
||||
#include <gint/std/stdlib.h>
|
||||
|
||||
#include "update.h"
|
||||
|
@ -180,7 +181,7 @@ enum UpdateReturnCodes keyboardUpdate()
|
|||
if(!player.props.touchingTileTop && player.bonuses.doubleJump)
|
||||
{
|
||||
player.bonuses.hasDoubleJumped = true;
|
||||
createExplosion(&world.explosion, player.props.x + (player.props.width >> 1), player.props.y + player.props.height);
|
||||
resetExplosion(player.props.x + (player.props.width >> 1), player.props.y + player.props.height);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,14 +1,13 @@
|
|||
#include <math.h>
|
||||
#include <string.h>
|
||||
|
||||
#include <gint/std/stdlib.h>
|
||||
#include <gint/defs/util.h>
|
||||
#include <openlibm/openlibm_math.h>
|
||||
#include <string.h>
|
||||
|
||||
#include "world.h"
|
||||
#include "defs.h"
|
||||
#include "save.h"
|
||||
|
||||
#include <gint/gray.h>
|
||||
|
||||
#define PI 3.14159265358979323846
|
||||
|
||||
extern bopti_image_t
|
||||
|
|
Loading…
Reference in a new issue