diff options
Diffstat (limited to 'src/engine/animator.c')
| -rw-r--r-- | src/engine/animator.c | 28 | 
1 files changed, 7 insertions, 21 deletions
diff --git a/src/engine/animator.c b/src/engine/animator.c index 1af8dde..3d46ea0 100644 --- a/src/engine/animator.c +++ b/src/engine/animator.c @@ -23,33 +23,19 @@ void hh_animate(hh_s_rendering* in, uint16_t start, uint16_t end, uint8_t step)  	}  } -//TODO: if entity not inside of screen, don't update idx -uint16_t hh_update_sprite(uint16_t idx, hh_entity* in, vec_cor cam) { +//TODO: if entity not inside of screen, don't update idx (problems with old idx not being overwritten anymore) +void hh_update_sprite(uint16_t *idx, hh_entity* in, vec_cor cam) {  	hh_animate_hit(&in->render, in->is_hit);  	hh_s_ppu_loc_fam_entry temp = in->render.fam;  	for (int y = 0; y < CEILI(in->size.y,16); y++) {  		temp.position_y = CLAMP(in->pos.y - cam.y + y*HH_PPU_SPRITE_HEIGHT, -16, HH_PPU_SCREEN_HEIGHT);  		for (int x = 0; x < CEILI(in->size.x,16); x++) {  			temp.position_x = CLAMP(in->pos.x - cam.x + x*HH_PPU_SPRITE_WIDTH, -16, HH_PPU_SCREEN_WIDTH); -			hh_ppu_update_foreground(++idx, temp);	 -			temp.tilemap_index++; +			// if (temp.position_x != -16 && temp.position_y != -16) {// removes redundant sprites +				hh_ppu_update_foreground(++*idx, temp); +				temp.tilemap_index++; +				// hh_animate(&in->render, start+counter,end+counter,4); +			// }  		}  	} -	return idx;  } - - -// void hh_update_sprite(hh_entity* in, vec_cor cam) { -// 	hh_animate_hit(&in->render, in->is_hit); -// 	// uint16_t idx = in->render.ppu_foreground_index; -// 	uint16_t idx = 0; -// 	hh_s_ppu_loc_fam_entry temp = in->render.fam; -// 	for (int y = 0; y < CEILI(in->size.y,16); y++) { -// 		temp.position_y = CLAMP(in->pos.y - cam.y + y*HH_PPU_SPRITE_HEIGHT, -16, HH_PPU_SCREEN_HEIGHT); -// 		for (int x = 0; x < CEILI(in->size.x,16); x++) { -// 			temp.position_x = CLAMP(in->pos.x - cam.x + x*HH_PPU_SPRITE_WIDTH, -16, HH_PPU_SCREEN_WIDTH); -// 			hh_ppu_update_foreground(idx++, temp);	 -// 			temp.tilemap_index++; -// 		} -// 	} -// }  |