Make linked list functions more general
parent
2a7dc3f00a
commit
2823ddc3d7
|
@ -88,8 +88,6 @@ struct squishy_square
|
|||
Vector2 right_vertices[BEZIER_POINTS+1];
|
||||
};
|
||||
|
||||
|
||||
|
||||
// Object functions, kinematics.c
|
||||
struct kinematic_obj init_kinematic_obj(int width, int height);
|
||||
void move(struct kinematic_obj *obj, Vector2 acceleration);
|
||||
|
@ -105,11 +103,10 @@ Vector2 dir(Vector2 vec);
|
|||
void approach(double *val, double target, float f);
|
||||
|
||||
// Linked list, linked_list.c
|
||||
extern struct kinematic_obj_node *kinematic_HEAD;
|
||||
void create_list(void);
|
||||
void add_node(struct kinematic_obj *obj);
|
||||
void add_node(struct kinematic_obj *obj, struct kinematic_obj_node **HEAD);
|
||||
//struct kinematic_obj_node **get_list();
|
||||
void free_list(void);
|
||||
void free_list(struct kinematic_obj_node **HEAD);
|
||||
void create_afterimage(struct player_obj *player, Color color);
|
||||
void remove_last_afterimage(struct player_obj *player);
|
||||
void free_afterimages(struct player_obj *player);
|
||||
|
|
20
main.c
20
main.c
|
@ -23,7 +23,7 @@
|
|||
*/
|
||||
|
||||
#include "header.h"
|
||||
extern struct kinematic_obj_node *kinematic_HEAD;
|
||||
struct kinematic_obj_node *kinematic_HEAD = NULL;
|
||||
int PLAYER_ACCEL = 1500;
|
||||
int JUMP_ACCEL = 15000;
|
||||
int JUMP_SPD = 350;
|
||||
|
@ -73,14 +73,14 @@ int main()
|
|||
struct squishy_square sqr = init_squishy_square(&player.kinematic, RED);
|
||||
player.image = &sqr;
|
||||
|
||||
add_node(&tile);
|
||||
add_node(&tile2);
|
||||
add_node(&tile3);
|
||||
add_node(&tile4);
|
||||
add_node(&tile5);
|
||||
add_node(&tile6);
|
||||
add_node(&tile7);
|
||||
add_node(&player.kinematic);
|
||||
add_node(&tile, &kinematic_HEAD);
|
||||
add_node(&tile2, &kinematic_HEAD);
|
||||
add_node(&tile3, &kinematic_HEAD);
|
||||
add_node(&tile4, &kinematic_HEAD);
|
||||
add_node(&tile5, &kinematic_HEAD);
|
||||
add_node(&tile6, &kinematic_HEAD);
|
||||
add_node(&tile7, &kinematic_HEAD);
|
||||
add_node(&player.kinematic, &kinematic_HEAD);
|
||||
|
||||
SetTargetFPS(60); // Set our game to run at 60 frames-per-second
|
||||
//--------------------------------------------------------------------------------------
|
||||
|
@ -126,7 +126,7 @@ int main()
|
|||
|
||||
// De-Initialization
|
||||
//--------------------------------------------------------------------------------------
|
||||
free_list();
|
||||
free_list(&kinematic_HEAD);
|
||||
free_afterimages(&player);
|
||||
CloseWindow(); // Close window and OpenGL context
|
||||
//--------------------------------------------------------------------------------------
|
||||
|
|
|
@ -3,28 +3,25 @@
|
|||
|
||||
// Placeholder collision checking structure. Use linked list for now
|
||||
// Need to implement some sort of tree structure for efficient collision checking
|
||||
struct kinematic_obj_node *kinematic_HEAD = NULL;
|
||||
|
||||
void add_node(struct kinematic_obj *obj){
|
||||
void add_node(struct kinematic_obj *obj, struct kinematic_obj_node **HEAD){
|
||||
struct kinematic_obj_node *node = malloc(sizeof(struct kinematic_obj_node));
|
||||
if (node){
|
||||
node->obj = obj;
|
||||
node->next = NULL;
|
||||
}
|
||||
if (kinematic_HEAD == NULL){
|
||||
kinematic_HEAD = node;
|
||||
}else{
|
||||
node->next = kinematic_HEAD;
|
||||
kinematic_HEAD = node;
|
||||
}
|
||||
if (*HEAD != NULL)
|
||||
node->next = *HEAD;
|
||||
|
||||
*HEAD = node;
|
||||
}
|
||||
|
||||
/**struct kinematic_obj_node **get_list(){
|
||||
return &kinematic_HEAD;
|
||||
}*/
|
||||
|
||||
void free_list(){
|
||||
struct kinematic_obj_node *current = kinematic_HEAD;
|
||||
void free_list(struct kinematic_obj_node **HEAD){
|
||||
struct kinematic_obj_node *current = *HEAD;
|
||||
struct kinematic_obj_node *next;
|
||||
while(current){
|
||||
next = current->next;
|
||||
|
@ -32,7 +29,7 @@ void free_list(){
|
|||
free(current);
|
||||
current = next;
|
||||
}
|
||||
kinematic_HEAD = NULL;
|
||||
*HEAD = NULL;
|
||||
}
|
||||
|
||||
void create_afterimage(struct player_obj *player, Color color){
|
||||
|
|
Loading…
Reference in New Issue