Pārlūkot izejas kodu

Added mirroring patterns

Eiyeron Fulmincendii 11 gadi atpakaļ
vecāks
revīzija
5cb6eb5a92
3 mainītis faili ar 10 papildinājumiem un 4 dzēšanām
  1. 8 2
      pattern.c
  2. 1 1
      pattern.h
  3. 1 1
      update_states.c

+ 8 - 2
pattern.c

@@ -38,11 +38,17 @@ Pattern* readPattern(Pattern* pattern, unsigned char* data) {
 	return pattern;
 }
 
-void addPattern(Game_Data* data, Pattern* pattern, unsigned char offset) {
+void addPattern(Game_Data* data, Pattern* pattern, unsigned char offset, unsigned char isReversed) {
 	unsigned int i;
 	for(i = 0; i < pattern->length; i++) {
 		// Build wall
-		data->list = addWall(data->list, pattern->distance[i] + pattern->wall_length[i] + 128, pattern->wall_length[i], 1, (pattern->side[i] + offset)%data->nb_lines);
+		int finalSide;
+		if(isReversed) {
+			finalSide = (pattern->side[i] + offset)%data->nb_lines;
+		} else {
+			finalSide = (data->nb_lines - pattern->side[i] + offset)%data->nb_lines;
+		}
+		data->list = addWall(data->list, pattern->distance[i] + pattern->wall_length[i] + 128, pattern->wall_length[i], 1, finalSide);
 	}
 }
 

+ 1 - 1
pattern.h

@@ -30,7 +30,7 @@ Pattern* readPattern(Pattern* pattern, unsigned char* data);
  * @param data   data
  * @param offset Offsets the sides to rotate the pattern
  */
-void addPattern(Game_Data* data, Pattern* pattern, unsigned char offset);
+void addPattern(Game_Data* data, Pattern* pattern, unsigned char offset, unsigned char isReversed);
 
 Pattern* freePattern(Pattern* pattern);
 

+ 1 - 1
update_states.c

@@ -41,7 +41,7 @@ void update_game(Game_Data *data)
 	//TODO: something else than pure randomness
 	if(!data->cooldown_timer--) {
 		Pattern pattern = data->level->patterns[rand()% data->level->nb_patterns];
-		addPattern(data, &pattern, rand()%6);
+		addPattern(data, &pattern, rand()%data->nb_lines, rand()&1);
 		data->cooldown_timer = pattern.cooldown;
 	}
 	if(KeyDown(K_LEFT)){