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