Created
June 7, 2015 15:47
-
-
Save spiiin/14197bc6b8889a0dd4f0 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
BANK6:8C34 ; state (81 - patrol, 82 - attack dw) | |
BANK6:8C34 | |
BANK6:8C34 enemy0_behaviour: | |
BANK6:8C34 LDA $4D0,X | |
BANK6:8C37 AND #$F ; state (81 - patrol, 82 - attack dw) | |
BANK6:8C39 BNE loc_50C51 ; present | |
BANK6:8C3B STA $530,X ; live state | |
BANK6:8C3E LDA #1 | |
BANK6:8C40 STA $540,X ; pot.speed = 1 | |
BANK6:8C43 INC $4D0,X ; init state "not viewing dw" | |
BANK6:8C46 LDA #$16 | |
BANK6:8C48 STA $480,X ; timer for guarding | |
BANK6:8C4B JSR getRandomFromArray ; get random from values array | |
BANK6:8C4E STA $490,X | |
BANK6:8C51 | |
BANK6:8C51 loc_50C51: ; CODE XREF: enemy0_behaviour+5j | |
BANK6:8C51 LDA $4D0,X ; load state | |
BANK6:8C54 AND #2 | |
BANK6:8C56 BNE loc_50CBD ; if not viewing dw | |
BANK6:8C58 LDA $480,X ; if anim timer ends | |
BANK6:8C5B BEQ loc_50C90 ; if anim no == "stop and watching dw" | |
BANK6:8C5D LDA $420,X ; anim no | |
BANK6:8C60 CMP #$43 ; 'C' ; if anim == "stop and watching" | |
BANK6:8C62 BEQ stopAndViewForDwd ; dec anim timer | |
BANK6:8C64 DEC $480,X | |
BANK6:8C67 LDY #2 | |
BANK6:8C69 LDA $580,X | |
BANK6:8C6C AND #1 ; if direction right | |
BANK6:8C6E BEQ loc_50C78 | |
BANK6:8C70 LDA #0 | |
BANK6:8C72 JSR enemy0_coord_unk1 | |
BANK6:8C75 JMP loc_50C7D ; if hp lower than normal | |
BANK6:8C78 ; --------------------------------------------------------------------------- | |
BANK6:8C78 | |
BANK6:8C78 loc_50C78: ; CODE XREF: enemy0_behaviour+3Aj | |
BANK6:8C78 LDA #3 | |
BANK6:8C7A JSR enemy0_coord_unk2 | |
BANK6:8C7D | |
BANK6:8C7D loc_50C7D: ; CODE XREF: enemy0_behaviour+41j | |
BANK6:8C7D ; enemy0_behaviour+74j | |
BANK6:8C7D LDA $5A0,X ; if hp lower than normal | |
BANK6:8C80 BEQ loc_50C89 ; view dw | |
BANK6:8C82 JSR calcCoordToDwRobot ; calc dist to dw | |
BANK6:8C85 CMP #$32 ; '2' ; if dist < 32 | |
BANK6:8C87 BCS locret_50C8F | |
BANK6:8C89 | |
BANK6:8C89 loc_50C89: ; CODE XREF: enemy0_behaviour+4Cj | |
BANK6:8C89 JSR enemy0_hunt_dw | |
BANK6:8C8C INC $4D0,X ; inc state to "view dw" | |
BANK6:8C8F | |
BANK6:8C8F locret_50C8F: ; CODE XREF: enemy0_behaviour+53j | |
BANK6:8C8F RTS | |
BANK6:8C90 ; --------------------------------------------------------------------------- | |
BANK6:8C90 | |
BANK6:8C90 loc_50C90: ; CODE XREF: enemy0_behaviour+27j | |
BANK6:8C90 LDA $420,X ; if anim no == "stop and watching dw" | |
BANK6:8C93 CMP #$43 ; 'C' | |
BANK6:8C95 BEQ stopAndViewForDwd ; dec anim timer | |
BANK6:8C97 LDA #$43 ; 'C' ; load anim "stop and watching dw" | |
BANK6:8C99 JSR loadAnimNo | |
BANK6:8C9C LDA #$3C ; '<' ; reload anim timer | |
BANK6:8C9E STA $480,X | |
BANK6:8CA1 RTS | |
BANK6:8CA2 ; --------------------------------------------------------------------------- | |
BANK6:8CA2 | |
BANK6:8CA2 stopAndViewForDwd: ; CODE XREF: enemy0_behaviour+2Ej | |
BANK6:8CA2 ; enemy0_behaviour+61j | |
BANK6:8CA2 DEC $480,X ; dec anim timer | |
BANK6:8CA5 LDA $480,X | |
BANK6:8CA8 BNE loc_50C7D ; if hp lower than normal | |
BANK6:8CAA LDA #$41 ; 'A' ; load anim "moving to next guard point" | |
BANK6:8CAC JSR loadAnimNo | |
BANK6:8CAF LDA #$32 ; '2' ; reload anim timer | |
BANK6:8CB1 STA $480,X | |
BANK6:8CB4 LDA $580,X ; change move direction | |
BANK6:8CB7 EOR #3 | |
BANK6:8CB9 STA $580,X | |
BANK6:8CBC RTS ; end of enemy0 proc | |
BANK6:8CBD ; --------------------------------------------------------------------------- | |
BANK6:8CBD | |
BANK6:8CBD loc_50CBD: ; CODE XREF: enemy0_behaviour+22j | |
BANK6:8CBD LDY #2 | |
BANK6:8CBF LDA #6 | |
BANK6:8CC1 JSR sub_632D7 | |
BANK6:8CC4 PHP | |
BANK6:8CC5 BCC loc_50CD6 ; set anim to "jump" | |
BANK6:8CC7 LDA $420,X ; if anim no == "go" | |
BANK6:8CCA CMP #$41 ; 'A' | |
BANK6:8CCC BEQ loc_50CDB | |
BANK6:8CCE LDA #$41 ; 'A' ; set anim to "go" | |
BANK6:8CD0 JSR loadAnimNo | |
BANK6:8CD3 JMP loc_50CDB | |
BANK6:8CD6 ; --------------------------------------------------------------------------- | |
BANK6:8CD6 | |
BANK6:8CD6 loc_50CD6: ; CODE XREF: enemy0_behaviour+91j | |
BANK6:8CD6 LDA #$42 ; 'B' ; set anim to "jump" | |
BANK6:8CD8 JSR loadAnimNo | |
BANK6:8CDB | |
BANK6:8CDB loc_50CDB: ; CODE XREF: enemy0_behaviour+98j | |
BANK6:8CDB ; enemy0_behaviour+9Fj | |
BANK6:8CDB LDY #2 | |
BANK6:8CDD LDA $580,X | |
BANK6:8CE0 AND #1 | |
BANK6:8CE2 BEQ loc_50CEC | |
BANK6:8CE4 LDA #0 | |
BANK6:8CE6 JSR enemy0_coord_unk1 | |
BANK6:8CE9 JMP loc_50CF1 | |
BANK6:8CEC ; --------------------------------------------------------------------------- | |
BANK6:8CEC | |
BANK6:8CEC loc_50CEC: ; CODE XREF: enemy0_behaviour+AEj | |
BANK6:8CEC LDA #3 | |
BANK6:8CEE JSR enemy0_coord_unk2 | |
BANK6:8CF1 | |
BANK6:8CF1 loc_50CF1: ; CODE XREF: enemy0_behaviour+B5j | |
BANK6:8CF1 PLP | |
BANK6:8CF2 BCC loc_50D05 | |
BANK6:8CF4 LDA $10 | |
BANK6:8CF6 CMP #3 | |
BANK6:8CF8 BCC loc_50D05 | |
BANK6:8CFA LDA $580,X ; change direction | |
BANK6:8CFD EOR #3 | |
BANK6:8CFF STA $580,X | |
BANK6:8D02 JSR sub_50D3F | |
BANK6:8D05 | |
BANK6:8D05 loc_50D05: ; CODE XREF: enemy0_behaviour+BEj | |
BANK6:8D05 ; enemy0_behaviour+C4j | |
BANK6:8D05 LDA $4E0,X | |
BANK6:8D08 CMP #$C ; if behaviour no == standart | |
BANK6:8D0A BEQ locret_50D29 ; locret | |
BANK6:8D0C LDA $420,X ; if anim = "walk" | |
BANK6:8D0F CMP #$41 ; 'A' | |
BANK6:8D11 BNE locret_50D29 ; locret | |
BANK6:8D13 LDA $490,X | |
BANK6:8D16 BNE loc_50D26 | |
BANK6:8D18 JSR getRandomFromArray ; get random from values array | |
BANK6:8D1B STA $490,X | |
BANK6:8D1E LDA #$23 ; '#' | |
BANK6:8D20 JSR incDA | |
BANK6:8D23 JSR sub_50D5D | |
BANK6:8D26 | |
BANK6:8D26 loc_50D26: ; CODE XREF: enemy0_behaviour+E2j | |
BANK6:8D26 DEC $490,X | |
BANK6:8D29 | |
BANK6:8D29 locret_50D29: ; CODE XREF: enemy0_behaviour+D6j | |
BANK6:8D29 ; enemy0_behaviour+DDj | |
BANK6:8D29 RTS | |
BANK6:8D29 ; End of function enemy0_behaviour |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment