Prev: 53649 Up: Map Next: 53967
53650: Copy Source Character Data To Character State Data
Handles copying a "normal" bandit into the bandit state cache at Bandit_State_Reference.
Prep_Bandit_Open 53650 LD L,(IX+2) Handles copying 0007 bytes of data from the address contained at (depending on which door is currently being actioned);
Address Door
Door_Source_01 Door 1
Door_Source_02 Door 2
Door_Source_03 Door 3
to Bandit_State_Reference.
53653 LD H,(IX+3)
53656 LD DE,55070
53659 LD BC,7
53662 PUSH HL
53663 PUSH DE
53664 PUSH BC
53665 LDIR
53667 CALL Bandit_Open_Routing Call Bandit_Open_Routing to begin this characters actions.
53670 POP BC Restore the source, target and counter from above.
53671 POP DE
53672 POP HL
53673 EX DE,HL Swap the source and target.
53674 LD A,(53647) Check if 53647 is zero. Write 0 to it. If it wasn't zero then return.
53677 AND A
53678 LD A,0
53680 LD (53647),A
53683 RET NZ
53684 LDIR Else copy the (swapped) source back to the new target and return.
53686 RET
And copying a successful bandit encounter to close the door.
Prep_Bandit_Close 53687 LD L,(IX+2) Handles copying 0007 bytes of data from the address contained at (depending on which door is currently being actioned);
Address Door
Door_Source_01 Door 1
Door_Source_02 Door 2
Door_Source_03 Door 3
to Bandit_State_Reference.
53690 LD H,(IX+3)
53693 LD DE,55070
53696 LD BC,7
53699 PUSH HL
53700 PUSH DE
53701 PUSH BC
53702 LDIR
53704 CALL Bandit_Close_Routing Call Bandit_Close_Routing to begin this characters actions.
53707 POP BC Restore the source, target and counter from above.
53708 POP DE
53709 POP HL
53710 EX DE,HL Swap the source and target.
53711 LD A,(53647) Check if 53647 is zero. Write $00 to it. If it wasn't zero then return.
53714 AND A
53715 LD A,0
53717 LD (53647),A
53720 RET NZ
53721 LDIR Else copy the (swapped) source back to the new target and return.
53723 RET
Handles copying Bowie state data into the state cache at Bowie_Good_Bad.
Prep_Bowie 53724 LD L,(IX+2) Handles copying $0009 bytes of data from the address contained at (depending on which door is currently being actioned);
Address Door
Door_Source_01 Door 1
Door_Source_02 Door 2
Door_Source_03 Door 3
to Bowie_Good_Bad.
53727 LD H,(IX+3)
53730 LD DE,55237
53733 LD BC,9
53736 PUSH HL
53737 PUSH DE
53738 PUSH BC
53739 LDIR
53741 CALL Bowie_Routing Call Bowie_Routing to begin this characters actions.
53744 POP BC Restore the source, target and counter from above.
53745 POP DE
53746 POP HL
53747 EX DE,HL Swap the source and target.
53748 LD A,(53647) Check if 53647 is zero. Write $00 to it. If it wasn't zero then return.
53751 AND A
53752 LD A,0
53754 LD (53647),A
53757 RET NZ
53758 LDIR Else copy the (swapped) source back to the new target and return.
53760 RET
Handles copying customer state data into the state cache at Customer_Frame_01.
Prep_Customer 53761 LD L,(IX+2) Handles copying $000F bytes of data from the address contained at (depending on which door is currently being actioned);
Address Door
Door_Source_01 Door 1
Door_Source_02 Door 2
Door_Source_03 Door 3
to Customer_Frame_01.
53764 LD H,(IX+3)
53767 LD DE,54415
53770 LD BC,15
53773 PUSH HL
53774 PUSH DE
53775 PUSH BC
53776 LDIR
53778 CALL Customer_Routing Call Customer_Routing to begin this characters actions.
53781 POP BC Restore the source, target and counter from above.
53782 POP DE
53783 POP HL
53784 EX DE,HL Swap the source and target.
53785 LD A,(53647) Check if 53647 is zero. Write $00 to it. If it wasn't zero then return.
53788 AND A
53789 LD A,0
53791 LD (53647),A
53794 RET NZ
53795 LDIR Else copy the (swapped) source back to the new target and return.
53797 RET
Handles copying customer "is shot" state data into the state cache at Customer_Frame_01.
Prep_Customer_Shot 53798 LD L,(IX+2) Handles copying $000F bytes of data from the address contained at (depending on which door is currently being actioned);
Address Door
Door_Source_01 Door 1
Door_Source_02 Door 2
Door_Source_03 Door 3
to Customer_Frame_01.
53801 LD H,(IX+3)
53804 LD DE,54415
53807 LD BC,15
53810 PUSH HL
53811 PUSH DE
53812 PUSH BC
53813 LDIR
53815 CALL Customer_Shot Call Customer_Shot.
53818 POP BC Restore the source, target and counter from above.
53819 POP DE
53820 POP HL
53821 EX DE,HL Swap the source and target.
53822 LDIR Copy the (swapped) source back to the new target and return.
53824 RET
Handles copying Julius state data into the state cache at Julius_Good_Bad.
Prep_Julius_Open 53825 LD L,(IX+2) Handles copying $000A bytes of data from the address contained at (depending on which door is currently being actioned);
Address Door
Door_Source_01 Door 1
Door_Source_02 Door 2
Door_Source_03 Door 3
to Julius_Good_Bad.
53828 LD H,(IX+3)
53831 LD DE,55525
53834 LD BC,10
53837 PUSH HL
53838 PUSH DE
53839 PUSH BC
53840 LDIR
53842 CALL Julius_Open_Routing Call Julius_Open_Routing.
53845 POP BC Restore the source, target and counter from above.
53846 POP HL
53847 POP DE
53848 LD A,(53647) Check if 53647 is zero. Write $00 to it. If it wasn't zero then return.
53851 AND A
53852 LD A,0
53854 LD (53647),A
53857 RET NZ
53858 LDIR Copy the source to the target again and return.
53860 RET
And copying a successful Julius encounter to close the door.
Prep_Julius_Close 53861 LD L,(IX+2) Handles copying $000A bytes of data from the address contained at (depending on which door is currently being actioned);
Address Door
Door_Source_01 Door 1
Door_Source_02 Door 2
Door_Source_03 Door 3
to Julius_Good_Bad.
53864 LD H,(IX+3)
53867 LD DE,55525
53870 LD BC,10
53873 PUSH HL
53874 PUSH DE
53875 PUSH BC
53876 LDIR
53878 CALL Julius_Close_Routing Call Julius_Close_Routing.
53881 POP BC Restore the source, target and counter from above.
53882 POP HL
53883 POP DE
53884 LD A,(53647) Check if 53647 is zero. Write $00 to it. If it wasn't zero then return.
53887 AND A
53888 LD A,0
53890 LD (53647),A
53893 RET NZ
53894 LDIR Copy the source to the target again and return.
53896 RET
Handles copying a "drawing bandit" into the bandit state cache at Bandit_Draw.
Prep_Bandit_Draw_Open 53897 LD L,(IX+2) Handles copying $000B bytes of data from the address contained at (depending on which door is currently being actioned);
Address Door
Door_Source_01 Door 1
Door_Source_02 Door 2
Door_Source_03 Door 3
to Bandit_Draw.
53900 LD H,(IX+3)
53903 LD DE,55820
53906 LD BC,11
53909 PUSH HL
53910 PUSH DE
53911 PUSH BC
53912 LDIR
53914 CALL Bandit_Draw_Open_Routing Call Bandit_Draw_Open_Routing.
53917 POP BC Restore the source, target and counter from above.
53918 POP HL
53919 POP DE
53920 LD A,(53647) Check if 53647 is zero. Write $00 to it. If it wasn't zero then return.
53923 AND A
53924 LD A,0
53926 LD (53647),A
53929 RET NZ
53930 LDIR Copy the source to the target again and return.
53932 RET
And copying a successful "drawing bandit" encounter to close the door.
Prep_Bandit_Draw_Close 53933 LD L,(IX+2) Handles copying $000B bytes of data from the address contained at (depending on which door is currently being actioned);
Address Door
Door_Source_01 Door 1
Door_Source_02 Door 2
Door_Source_03 Door 3
to Bandit_Draw.
53936 LD H,(IX+3)
53939 LD DE,55820
53942 LD BC,11
53945 PUSH HL
53946 PUSH DE
53947 PUSH BC
53948 LDIR
53950 CALL Bandit_Draw_Close_Routing Call Bandit_Draw_Close_Routing.
53953 POP BC Restore the source, target and counter from above.
53954 POP HL
53955 POP DE
53956 LD A,(53647) Check if 53647 is zero. If it wasn't zero then return.
53959 AND A
53960 LD (53647),A
53963 RET NZ
53964 LDIR Copy the source to the target again and return.
53966 RET
Prev: 53649 Up: Map Next: 53967