Is it possible to have a longer delay before loose tiles start falling?
After playing Electronic Super Joy for many hours, I have a new idea for a PoP1 mod...
Longer delay before falling loose tiles?
Re: Longer delay before falling loose tiles?
To change the delay before a loose floor falls:
Search 80 3E 28 43 0B, change 0B to the number of frames between touching and falling.
The new value must be less than 0x80 (128), otherwise the floors will never fall.
(Because loose floors whose modifiers have the top bit set are just shaking, not falling.)
If you increase the delay, garbled tiles may appear unless you also change this:
Search F6 46 06 80 74 0F, change 74 0F to 90 90.
Code: Select all
seg007:0DE2 cmp curr_modifier, 0Bh ; <-- here
seg007:0DE7 jb loc_9396
Code: Select all
00009532:i803E28430B cmp [+4328],0B ; <-- here
00009537:i725D jc file:00009596
The new value must be less than 0x80 (128), otherwise the floors will never fall.
(Because loose floors whose modifiers have the top bit set are just shaking, not falling.)
If you increase the delay, garbled tiles may appear unless you also change this:
Code: Select all
seg008:0FF6 ; --------------- S U B R O U T I N E ---------------------------------------
seg008:0FF6
seg008:0FF6 ; Attributes: bp-based frame
seg008:0FF6
seg008:0FF6 ; int __pascal far get_loose_frame(char modifier)
seg008:0FF6 get_loose_frame proc far ; CODE XREF: draw_tile_spec+9Bp
seg008:0FF6 ; draw_loose+18p ...
seg008:0FF6
seg008:0FF6 modifier = byte ptr 6
seg008:0FF6
seg008:0FF6 push bp
seg008:0FF7 mov bp, sp
seg008:0FF9 test [bp+modifier], 80h
seg008:0FFD jz loc_AC2E
seg008:0FFF and [bp+modifier], 7Fh
seg008:1003 cmp [bp+modifier], 0Ah
seg008:1007 jbe loc_AC2E
seg008:1009 mov ax, 1
seg008:100C jmp short loc_AC33
seg008:100E ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
seg008:100E
seg008:100E loc_AC2E: ; CODE XREF: get_loose_frame+7j
seg008:100E ; get_loose_frame+11j
seg008:100E mov al, [bp+modifier]
seg008:1011 sub ah, ah
seg008:1013
seg008:1013 loc_AC33: ; CODE XREF: get_loose_frame+16j
seg008:1013 pop bp
seg008:1014 retf 2
seg008:1014 get_loose_frame endp
Code: Select all
0000AE16:i55 push bp
0000AE17:i8BEC mov bp,sp
0000AE19:iF6460680 test (b) [bp+06],80
0000AE1D:i740F je file:0000AE2E ; <-- here
0000AE1F:i8066067F and [bp+06],7F
0000AE23:i807E060A cmp [bp+06],0A
0000AE27:i7605 jna file:0000AE2E
0000AE29:iB80100 mov ax,0001
0000AE2C:iEB05 jmps file:0000AE33
0000AE2E:i8A4606 mov al,[bp+06]
0000AE31:i2AE4 sub ah,ah
0000AE33:i5D pop bp
0000AE34:iCA0200 retf 0002
Re: Longer delay before falling loose tiles?
Thanks.
Looks like I'll be creating another mod, but this time it'll be a totally different kind of mod.
Looks like I'll be creating another mod, but this time it'll be a totally different kind of mod.
Re: Longer delay before falling loose tiles?
Hey David, attached is a sample of what I have in mind.
If you start playing level 1, you'll see what I mean.
I noticed that the prince doesn't climb up the loose tile when it's in its last frame.
Is there any way to change that? If it's too difficult to figure out (no idea), feel free to say so.
If you start playing level 1, you'll see what I mean.
I noticed that the prince doesn't climb up the loose tile when it's in its last frame.
Is there any way to change that? If it's too difficult to figure out (no idea), feel free to say so.
- Attachments
-
- prince.zip
- sample
- (336.98 KiB) Downloaded 98 times
Re: Longer delay before falling loose tiles?
Ah, a level that falls apart! And if you're not fast enough, the kid will also fall.Norbert wrote:If you start playing level 1, you'll see what I mean.
Allow climbing of any loose floor: (By default only those with modifier=0 can be climbed.)Norbert wrote:I noticed that the prince doesn't climb up the loose tile when it's in its last frame.
Is there any way to change that?
Code: Select all
seg006:0F92 cmp curr_tile2, tiles_11_loose
seg006:0F97 jnz loc_7C4F
seg006:0F99 cmp [bp+modifier], 0
seg006:0F9D jnz loc_7C22 ; <- this
Code: Select all
000094F2:i803EF9420B cmp [+42F9],0B
000094F7:i7506 jne file:000094FF
000094F9:i807EFE00 cmp [bp-02],00
000094FD:i75D3 jne file:000094D2 ; <- this