summary refs log tree commit diff
path: root/src/walker.c
diff options
context:
space:
mode:
authorzlago2024-10-23 19:17:26 +0200
committerzlago2024-10-23 19:17:26 +0200
commitb12606899c98d7fc7a120c2b79797b5c45283ad2 (patch)
treef210a037fee0f2346bae8a10d1edc1b445b4324f /src/walker.c
parentaf6acead62498bc49065ef828e388bcd511ce54d (diff)
hacky save system
Diffstat (limited to 'src/walker.c')
-rw-r--r--src/walker.c30
1 files changed, 13 insertions, 17 deletions
diff --git a/src/walker.c b/src/walker.c
index fbb80d4..49595ae 100644
--- a/src/walker.c
+++ b/src/walker.c
@@ -82,16 +82,6 @@ static int bullet_update(struct projectile *self) {
 	int x = from_fixed(self->x);
 	int y = from_fixed(self->y);
 	self->hitbox = (struct hitbox) {.left = x, .right = x, .top = y, .bottom = y};
-	#if 0
-		struct particle *part = entities.particle + entities.particles;
-		part->x = self->x + to_fixed(self->facing >= 0? sin(self->hp): -sin(self->hp)) * 6;
-		part->y = self->y - to_fixed(cos(self->hp)) * 4;
-		part->velocity = (struct vec2) {0, 0};
-		part->rect = (SDL_Rect) {0, 0, 4, 4};
-		part->acceleration = (struct vec2) {0, 0};
-		part->hp = 5;
-		entities.particles++;
-	#endif
 	if (hitbox_overlap(self->hitbox, entities.player[0].hitbox)) {
 		entities.player[0].hurt(entities.player + 0, 1);
 		return 1;
@@ -104,7 +94,12 @@ static int bullet_update(struct projectile *self) {
 }
 
 static int bullet_draw(struct projectile *self, int camX, int camY) {
-	SDL_Rect rect = {4, 0, 4, 4};
+	SDL_Rect rect;
+	if (self->hp & 0x2) {
+		rect = (SDL_Rect) {4, 0, 4, 4};
+	} else {
+		rect = (SDL_Rect) {12, 0, 4, 4};
+	}
 	SDL_RenderCopy(renderer, self->texture, &rect, &(SDL_Rect) {from_fixed(self->x) - camX - 1, from_fixed(self->y) - camY - 1, 4, 4});
 	SDL_RenderCopy(renderer, self->texture, &rect, &(SDL_Rect) {from_fixed(self->x - self->velocity.x) - camX - 1, from_fixed(self->y - self->velocity.y) - camY - 1, 4, 4});
 	//SDL_RenderFillRect(renderer, &(SDL_Rect) {from_fixed(self->x) - camX - 8, from_fixed(self->y) - camY - 12, 16, 16});
@@ -277,6 +272,12 @@ static int walker_update(struct entity *self) {
 			move(self, 0);
 			ext->facing = self->x > entities.player[0].x? -1: 1;
 			self->facing = ext->facing;
+			self->timer--;
+			if (self->timer == 0) {
+				anim(self, WALKER_A_ATTACK);
+				self->state = WALKER_ALERT_ATTACK;
+				self->timer = ext->attack_delay2;
+			}
 			if (abs(entities.player[0].x - self->x) > CHASE_RANGE) {
 				if (is_walkable(self->x + to_fixed(ext->facing * WALKABLE_CHECK_DISTANCE), self->y)) {
 					anim(self, WALKER_A_WALK);
@@ -294,12 +295,7 @@ static int walker_update(struct entity *self) {
 			}
 			if (abs(entities.player[0].x - self->x) + abs(entities.player[0].y - self->y) > ext->give_up_range) {
 				self->state = WALKER_IDLE;
-			}
-			self->timer--;
-			if (self->timer == 0) {
-				anim(self, WALKER_A_ATTACK);
-				self->state = WALKER_ALERT_ATTACK;
-				self->timer = ext->attack_delay2;
+				self->timer = ext->idle_time;
 			}
 			break;