Mercurial > touhou
comparison src/th06/ecl_vm.rs @ 734:7886a1a5d226
ecl_vm: instruction 122 beginnings, sf 12 done
author | Gauvain "GovanifY" Roussel-Tarbouriech <gauvain@govanify.com> |
---|---|
date | Sun, 03 Nov 2019 04:42:58 +0100 |
parents | 770e5057f6bc |
children | b9928db975e1 |
comparison
equal
deleted
inserted
replaced
733:770e5057f6bc | 734:7886a1a5d226 |
---|---|
1233 let rand_y = game.prng.borrow_mut().get_f64(); | 1233 let rand_y = game.prng.borrow_mut().get_f64(); |
1234 self.frame.floats[2] = (rand_x * fx + (192. - fx / 2.)) as f32; | 1234 self.frame.floats[2] = (rand_x * fx + (192. - fx / 2.)) as f32; |
1235 self.frame.floats[3] = (rand_y * fy + (96. - fy / 2.)) as f32; | 1235 self.frame.floats[3] = (rand_y * fy + (96. - fy / 2.)) as f32; |
1236 } | 1236 } |
1237 } | 1237 } |
1238 _ => unimplemented!("spellcards are a bitch and a half") | 1238 _ => unimplemented!("Special function {:?} not found!", function) |
1239 } | 1239 } |
1240 } | 1240 } |
1241 | 1241 |
1242 // 122 | |
1243 // Here lies the Di Sword of despair | |
1244 SubInstruction::SetSpecialFunctionCallback(function) => { | |
1245 //TODO: those functions are executed at each frame and needs to be written to the | |
1246 //callback function but so far i'm simply focusing on the implementation | |
1247 //NB: the original engine doesn't differenciate between function blocks for ins 121 | |
1248 //and 122 but we do here, since it wouldn't make sense the other way around. | |
1249 match function { | |
1250 12 => { | |
1251 for i in 0..8 { | |
1252 /* | |
1253 if ((enemy->lasers[i] != (laser *)0x0) && (enemy->lasers[i]->state != 0)) { | |
1254 (enemy->bullet_attributes).pos[0] = cos(enemy->lasers[i]->angle) * 64. + enemy.pos.x; | |
1255 // yes, it reads pos[0] after it has been modified and yes, this most | |
1256 // likely is a bug | |
1257 (enemy->bullet_attributes).pos[1] = cos(enemy->lasers[i]->angle) * (enemy->bullet_attributes).pos[0] + enemy.pos.y; | |
1258 (enemy->bullet_attributes).pos[2] = enemy.z; | |
1259 bullet_fire(&enemy->bullet_attributes,&ETAMA_ARRAY); | |
1260 }*/ | |
1261 } | |
1262 } | |
1263 _ => unimplemented!("Special function {:?} not found!", function) | |
1264 } | |
1265 } | |
1242 _ => unimplemented!("{:?}", instruction) | 1266 _ => unimplemented!("{:?}", instruction) |
1243 } | 1267 } |
1268 | |
1244 } | 1269 } |
1245 } | 1270 } |
1246 | 1271 |
1247 #[cfg(test)] | 1272 #[cfg(test)] |
1248 mod tests { | 1273 mod tests { |