|
|
@@ -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);
|
|
|
}
|
|
|
}
|
|
|
|