mirror of
https://github.com/historicalsource/journey
synced 2024-04-25 21:49:33 +03:00
210 lines
4.1 KiB
Plaintext
210 lines
4.1 KiB
Plaintext
|
|
.SEGMENT "0"
|
|
|
|
|
|
.FUNCT ANONF-6:ANY:0:0
|
|
CALL FIRST-IN-PARTY,ESHER,HURTH,MINAR,PRAXIX >LEADER
|
|
CALL ADD-TRAVEL-COMMAND,LEADER,GET-ADVICE-COMMAND
|
|
RSTACK
|
|
|
|
|
|
.FUNCT ANONF-7:ANY:0:0
|
|
ICALL REMOVE-TRAVEL-COMMAND,LEADER,GET-ADVICE-COMMAND
|
|
SET 'LEADER,BERGON
|
|
RETURN LEADER
|
|
|
|
|
|
.FUNCT ANONF-8:ANY:0:0
|
|
CALL FIRST-IN-PARTY,HURTH,MINAR
|
|
ZERO? STACK \FALSE
|
|
ICALL ADD-TRAVEL-COMMAND,ESHER,SCOUT-COMMAND
|
|
CALL ADD-PROVISION-COMMAND,ESHER,LOOK-AROUND-COMMAND
|
|
RSTACK
|
|
|
|
|
|
.FUNCT ANONF-9:ANY:0:0
|
|
EQUAL? ESHER,LEADER \FALSE
|
|
CALL FIRST-IN-PARTY,BERGON,HURTH,MINAR,PRAXIX >LEADER
|
|
RETURN LEADER
|
|
|
|
|
|
.FUNCT ANONF-10:ANY:0:0
|
|
FSET MINAR,DONT-DROP
|
|
FSET? HURTH,IN-PARTY /FALSE
|
|
FSET? ESHER,IN-PARTY \FALSE
|
|
ICALL REMOVE-TRAVEL-COMMAND,ESHER,SCOUT-COMMAND
|
|
CALL REMOVE-PROVISION-COMMAND,ESHER,LOOK-AROUND-COMMAND
|
|
RSTACK
|
|
|
|
|
|
.FUNCT ANONF-11:ANY:0:0
|
|
FSET? HURTH,IN-PARTY /FALSE
|
|
FSET? ESHER,IN-PARTY \FALSE
|
|
ICALL ADD-TRAVEL-COMMAND,ESHER,SCOUT-COMMAND
|
|
CALL ADD-PROVISION-COMMAND,ESHER,LOOK-AROUND-COMMAND
|
|
RSTACK
|
|
|
|
|
|
.FUNCT ANONF-12:ANY:0:0,F
|
|
EQUAL? HURTH,LEADER \?CND1
|
|
CALL FIRST-IN-PARTY,BERGON,ESHER,MINAR,PRAXIX >LEADER
|
|
?CND1: CALL FIRST-IN-PARTY,MINAR,ESHER >F
|
|
ZERO? F /FALSE
|
|
ICALL ADD-TRAVEL-COMMAND,F,SCOUT-COMMAND
|
|
CALL ADD-PROVISION-COMMAND,F,LOOK-AROUND-COMMAND
|
|
RSTACK
|
|
|
|
|
|
.FUNCT ANONF-13:ANY:0:0,F
|
|
CALL FIRST-IN-PARTY,MINAR,ESHER >F
|
|
ZERO? F /FALSE
|
|
ICALL REMOVE-TRAVEL-COMMAND,F,SCOUT-COMMAND
|
|
CALL REMOVE-PROVISION-COMMAND,F,LOOK-AROUND-COMMAND
|
|
RSTACK
|
|
|
|
|
|
.FUNCT CLEAR-PARTY-BIT:ANY:1:1,BIT,OFF
|
|
?PRG1: IGRTR? 'OFF,PARTY-MAX /TRUE
|
|
GET PARTY,OFF
|
|
FCLEAR STACK,BIT
|
|
JUMP ?PRG1
|
|
|
|
|
|
.FUNCT MAKE-UNBUSY:ANY:1:1,ACT
|
|
FCLEAR ACT,BUSY
|
|
SET 'UPDATE-FLAG,TRUE-VALUE
|
|
RETURN UPDATE-FLAG
|
|
|
|
|
|
.FUNCT MAKE-BUSY:ANY:1:2,ACT,CMD,OFF,TBL
|
|
ASSIGNED? 'CMD /?CND1
|
|
SET 'CMD,BUSY-COMMAND
|
|
?CND1: CALL2 PARTY-PCM,ACT >OFF
|
|
ZERO? OFF /FALSE
|
|
FSET ACT,BUSY
|
|
GET CHARACTER-INPUT-TBL,OFF >TBL
|
|
PUT TBL,0,CMD
|
|
PUT TBL,1,NUL-COMMAND
|
|
PUT TBL,2,NUL-COMMAND
|
|
CALL2 NORMAL-ALL,OFF
|
|
RSTACK
|
|
|
|
|
|
.FUNCT CLEAR-BUSY:ANY:0:0
|
|
CALL2 CLEAR-PARTY-BIT,BUSY
|
|
RSTACK
|
|
|
|
|
|
.FUNCT NEW-CHARACTER:ANY:1:1,CHR,ACT
|
|
SET 'ACT,ACTOR
|
|
ICALL2 PURIFY-CHARACTER,CHR
|
|
SET 'UPDATE-FLAG,TRUE-VALUE
|
|
ICALL1 PRINT-CHARACTER-COMMANDS
|
|
SET 'ACTOR,ACT
|
|
RETURN ACTOR
|
|
|
|
|
|
.FUNCT PURIFY-CHARACTER:ANY:1:1,CHR
|
|
FCLEAR CHR,BUSY
|
|
FCLEAR CHR,SUBGROUP
|
|
PUTP CHR,P?STATUS,100
|
|
RTRUE
|
|
|
|
|
|
.FUNCT PARTY-ADD:ANY:1:1,CHR,NC
|
|
ADD PARTY-MAX,1 >NC
|
|
GRTR? NC,5 \?CND1
|
|
PRINTI "[Error: Attempt to add 6th party member]"
|
|
ICALL2 WPRINTD,CHR
|
|
RTRUE
|
|
?CND1: PUT PARTY,PARTY-MAX,CHR
|
|
PUT PARTY,NC,TAG
|
|
SET 'PARTY-MAX,NC
|
|
FSET CHR,IN-PARTY
|
|
ICALL1 SORT-PARTY
|
|
ICALL2 NEW-CHARACTER,CHR
|
|
GETP CHR,P?ADD
|
|
CALL STACK >NC
|
|
SET 'UPDATE-FLAG,TRUE-VALUE
|
|
RTRUE
|
|
|
|
|
|
.FUNCT PARTY-CHANGE:ANY:2:2,CHR1,CHR2,CNT,TMP
|
|
GET PARTY,0 >CNT
|
|
?PRG1: LESS? CNT,1 /FALSE
|
|
GET PARTY,CNT
|
|
EQUAL? STACK,CHR1 \?CND3
|
|
PUT PARTY,CNT,CHR2
|
|
FSET CHR2,IN-PARTY
|
|
FCLEAR CHR1,IN-PARTY
|
|
ICALL1 SORT-PARTY
|
|
ICALL2 NEW-CHARACTER,CHR2
|
|
GETP CHR1,P?REMOVE
|
|
CALL STACK >TMP
|
|
GETP CHR2,P?ADD
|
|
CALL STACK >TMP
|
|
SET 'UPDATE-FLAG,TRUE-VALUE
|
|
RTRUE
|
|
?CND3: DEC 'CNT
|
|
JUMP ?PRG1
|
|
|
|
|
|
.FUNCT PARTY-REMOVE:ANY:1:1,CHR,CNT,C,ACT,?TMP1,?TMP2
|
|
SET 'ACT,ACTOR
|
|
?PRG1: IGRTR? 'CNT,PARTY-MAX /FALSE
|
|
GET PARTY,CNT
|
|
EQUAL? STACK,CHR \?PRG1
|
|
ADD CNT,1
|
|
MUL STACK,2
|
|
ADD PARTY,STACK >?TMP2
|
|
MUL CNT,2
|
|
ADD PARTY,STACK >?TMP1
|
|
SUB PARTY-MAX,CNT
|
|
MUL STACK,2
|
|
COPYT ?TMP2,?TMP1,STACK
|
|
MUL PARTY-MAX,2
|
|
ADD PARTY,STACK
|
|
COPYT STACK,0,2
|
|
DEC 'PARTY-MAX
|
|
FCLEAR CHR,IN-PARTY
|
|
ICALL1 SORT-PARTY
|
|
SET 'UPDATE-FLAG,TRUE-VALUE
|
|
ICALL1 PRINT-CHARACTER-COMMANDS
|
|
SET 'ACTOR,ACT
|
|
GETP CHR,P?REMOVE
|
|
CALL STACK >C
|
|
RTRUE
|
|
|
|
|
|
.FUNCT SORT-PARTY:ANY:0:0,CNT
|
|
SET 'CNT,1
|
|
FSET? BERGON,IN-PARTY \?CND1
|
|
PUT PARTY-SORT-TBL,CNT,BERGON
|
|
INC 'CNT
|
|
?CND1: FSET? PRAXIX,IN-PARTY \?CND3
|
|
PUT PARTY-SORT-TBL,CNT,PRAXIX
|
|
INC 'CNT
|
|
?CND3: FSET? ESHER,IN-PARTY \?CND5
|
|
PUT PARTY-SORT-TBL,CNT,ESHER
|
|
INC 'CNT
|
|
?CND5: FSET? MINAR,IN-PARTY \?CND7
|
|
PUT PARTY-SORT-TBL,CNT,MINAR
|
|
INC 'CNT
|
|
?CND7: FSET? HURTH,IN-PARTY \?CND9
|
|
PUT PARTY-SORT-TBL,CNT,HURTH
|
|
INC 'CNT
|
|
?CND9: FSET? UMBER,IN-PARTY \?CND11
|
|
PUT PARTY-SORT-TBL,CNT,UMBER
|
|
INC 'CNT
|
|
?CND11: FSET? TAG,IN-PARTY \?CND13
|
|
PUT PARTY-SORT-TBL,CNT,TAG
|
|
INC 'CNT
|
|
?CND13: MUL PARTY-MAX,2
|
|
ADD STACK,2
|
|
COPYT PARTY-SORT-TBL,PARTY,STACK
|
|
RTRUE
|
|
|
|
.ENDSEG
|
|
|
|
.ENDI
|