Skip to content

Commit 95c937a

Browse files
committed
reuse original test_floor_linecap
1 parent 0d0f895 commit 95c937a

File tree

1 file changed

+7
-58
lines changed

1 file changed

+7
-58
lines changed

tests/src/floor.rs

Lines changed: 7 additions & 58 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@ use crate::{util, labels, playfield};
22

33
pub fn test() {
44
test_floor();
5-
test_floor_linecap_level();
6-
test_floor_linecap_lines();
5+
test_floor_linecap("MODE_TRANSITION",0);
6+
test_floor_linecap("MODE_TETRIS",1);
77
test_floor0();
88
}
99

@@ -55,25 +55,27 @@ fn test_floor() {
5555
assert_ne!(playfield::get(&mut emu, 0, 19), 0xEF);
5656
}
5757

58-
fn test_floor_linecap_lines() {
58+
fn test_floor_linecap(mode: &str, linecap_when: u8) {
5959

6060
let mut emu = util::emulator(None);
6161

6262
for _ in 0..3 { emu.run_until_vblank(); }
6363

64+
let practise_type = labels::get("practiseType") as usize;
6465
let game_mode = labels::get("gameMode") as usize;
6566
let main_loop = labels::get("mainLoop");
6667
let level_number = labels::get("levelNumber") as usize;
6768

69+
emu.memory.iram_raw[practise_type] = labels::get(mode) as _;
6870
emu.memory.iram_raw[level_number] = 19;
6971
emu.memory.iram_raw[game_mode] = 4;
7072

7173
emu.memory.iram_raw[labels::get("linecapFlag") as usize] = 1;
72-
emu.memory.iram_raw[labels::get("linecapWhen") as usize] = 1;
74+
emu.memory.iram_raw[labels::get("linecapWhen") as usize] = linecap_when;
7375
emu.memory.iram_raw[labels::get("linecapHow") as usize] = labels::get("LINECAP_FLOOR") as u8 - 1;
7476
emu.memory.iram_raw[labels::get("linecapLines") as usize] = 0x10;
7577
emu.memory.iram_raw[labels::get("linecapLines") as usize + 1] = 0;
76-
78+
emu.memory.iram_raw[labels::get("linecapLevel") as usize] = 20;
7779

7880
emu.registers.pc = main_loop;
7981

@@ -110,59 +112,6 @@ fn test_floor_linecap_lines() {
110112
assert_eq!(playfield::get(&mut emu, 0, 18), 0xEF);
111113
}
112114

113-
fn test_floor_linecap_level() {
114-
115-
let mut emu = util::emulator(None);
116-
117-
for _ in 0..3 { emu.run_until_vblank(); }
118-
119-
let practise_type = labels::get("practiseType") as usize;
120-
let game_mode = labels::get("gameMode") as usize;
121-
let main_loop = labels::get("mainLoop");
122-
let level_number = labels::get("levelNumber") as usize;
123-
124-
emu.memory.iram_raw[practise_type] = labels::get("MODE_TRANSITION") as _;
125-
emu.memory.iram_raw[level_number] = 19;
126-
emu.memory.iram_raw[game_mode] = 4;
127-
128-
emu.memory.iram_raw[labels::get("linecapFlag") as usize] = 1;
129-
emu.memory.iram_raw[labels::get("linecapHow") as usize] = labels::get("LINECAP_FLOOR") as u8 - 1;
130-
emu.memory.iram_raw[labels::get("linecapLevel") as usize] = 20;
131-
132-
emu.registers.pc = main_loop;
133-
134-
for _ in 0..5 { emu.run_until_vblank(); }
135-
136-
// get some tetrises
137-
138-
for _ in 0..4 {
139-
140-
emu.memory.iram_raw[labels::get("currentPiece") as usize] = 0x11;
141-
emu.memory.iram_raw[labels::get("tetriminoX") as usize] = 0x5;
142-
emu.memory.iram_raw[labels::get("tetriminoY") as usize] = 0x11;
143-
emu.memory.iram_raw[labels::get("autorepeatY") as usize] = 0;
144-
emu.memory.iram_raw[labels::get("vramRow") as usize] = 0;
145-
146-
playfield::set_str(&mut emu, r##"
147-
##### ####
148-
##### ####
149-
##### ####
150-
##### ####"##);
151-
152-
for _ in 0..40 { emu.run_until_vblank(); }
153-
}
154-
155-
// check rows aren't pulled from the top in linecap floor mode
156-
for i in 0..40 {
157-
assert_eq!(emu.memory.iram_raw[i + labels::get("playfield") as usize], 0xEF);
158-
}
159-
160-
// check the floor is there
161-
assert_ne!(playfield::get(&mut emu, 0, 19), 0xEF);
162-
// but the row above isn't
163-
assert_eq!(playfield::get(&mut emu, 0, 18), 0xEF);
164-
}
165-
166115
fn test_floor0() {
167116
let mut emu = util::emulator(None);
168117

0 commit comments

Comments
 (0)