Load random force floors from c2m; read the initial direction from replays
This commit is contained in:
parent
55214fad75
commit
5da3a0f473
@ -17,7 +17,10 @@ class CC2Demo {
|
|||||||
this.bytes = new Uint8Array(buf);
|
this.bytes = new Uint8Array(buf);
|
||||||
|
|
||||||
// byte 0 is unknown, always 0?
|
// byte 0 is unknown, always 0?
|
||||||
this.force_floor_seed = this.bytes[1];
|
// Force floor seed can apparently be anything; my best guess, based on the Desert Oasis
|
||||||
|
// replay, is that it's just incremented and allowed to overflow, so taking it mod 4 gives
|
||||||
|
// the correct starting direction
|
||||||
|
this.initial_force_floor_direction = ['north', 'east', 'south', 'west'][this.bytes[1] % 4];
|
||||||
this.blob_seed = this.bytes[2];
|
this.blob_seed = this.bytes[2];
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -132,7 +135,7 @@ const TILE_ENCODING = {
|
|||||||
0x43: 'cloner',
|
0x43: 'cloner',
|
||||||
//0x44: Clone machine : Modifier required, see below
|
//0x44: Clone machine : Modifier required, see below
|
||||||
0x45: 'hint',
|
0x45: 'hint',
|
||||||
//0x46: 'force_floor_all',
|
0x46: 'force_floor_all',
|
||||||
// 0x47: 'button_gray',
|
// 0x47: 'button_gray',
|
||||||
0x48: ['swivel_sw', 'swivel_floor'],
|
0x48: ['swivel_sw', 'swivel_floor'],
|
||||||
0x49: ['swivel_nw', 'swivel_floor'],
|
0x49: ['swivel_nw', 'swivel_floor'],
|
||||||
|
|||||||
@ -383,6 +383,7 @@ class Player extends PrimaryView {
|
|||||||
play_demo() {
|
play_demo() {
|
||||||
this.demo_faucet = this.level.stored_level.demo[Symbol.iterator]();
|
this.demo_faucet = this.level.stored_level.demo[Symbol.iterator]();
|
||||||
this.restart_level();
|
this.restart_level();
|
||||||
|
this.level.force_floor_direction = this.level.stored_level.demo.initial_force_floor_direction;
|
||||||
// FIXME should probably start playback on first real input
|
// FIXME should probably start playback on first real input
|
||||||
this.set_state('playing');
|
this.set_state('playing');
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user