(script 267)

(string
    string_04c4 "Fifi"
    string_04c9 "dusting"
    string_04d1 "fifi"
    string_04d6 "fifiActions"
)

(said
    said_03c0 */fifi>
    said_03c7 ecouter
    said_03ca look/fifi
    said_03d0 bonjour
)

(synonym
    fifi | maid = person | personne
    fifi | maid = dame | femme | fille | girl | lady | maiden | woman
)

(local
    local0 = $0000
    local1 = $0000
    local2 = $0060
    local3 = $0091
    local4 = $00d8
    local5 = $008f
    local6 = $00a5
    local7 = $009b
    local8 = $00bd
    local9 = $0068
    local10 = $006f
    local11 = $0068
    local12 = $0022
    local13 = $005c
    local14 = $0000
)

// 03da
(instance public dusting of Rgn
    (properties
        script $0
        number $0
        timer $0
        keep $0
        initialized $0
    )
    (method (init) // method_003c
  003c:39 57            pushi 57 // $57 init
  003e:76               push0 
  003f:57 36 04         super Rgn 4 

  0042:35 01              ldi 1 
  0044:a0 00c0            sag gFifiState 
  0047:7a               push2 
  0048:38 0087          pushi 87 // $87 clean
  004b:39 04            pushi 4 // $4 x
  004d:43 00 04         callk Load 4 

  0050:39 03            pushi 3 // $3 y
  0052:38 008f          pushi 8f // $8f moveTo
  0055:38 00f3          pushi f3 // $f3 close
  0058:38 0126          pushi 126 // $126 curAngle
  005b:45 15 06         callb procedure_0015 6 // LoadMany 

  005e:39 03            pushi 3 // $3 y
  0060:38 0080          pushi 80 // $80 timeLeft
  0063:38 01d6          pushi 1d6 // $1d6 sel_470
  0066:38 0388          pushi 388 // $388 sel_904
  0069:45 15 06         callb procedure_0015 6 // LoadMany 

  006c:35 10              ldi 10 
  006e:a0 00d0            sag global208 
  0071:34 0126            ldi 126 
  0074:a0 017d            sag global381 
  0077:39 05            pushi 5 // $5 view
  0079:78               push1 
  007a:38 01d0          pushi 1d0 // $1d0 sel_464
  007d:38 00d4          pushi d4 // $d4 setAvoider
  0080:78               push1 
  0081:38 00be          pushi be // $be offScreenOK
  0084:78               push1 
  0085:78               push1 
  0086:39 56            pushi 56 // $56 new
  0088:76               push0 
  0089:51 21            class Avoid 
  008b:4a 04             send 4 

  008d:4a 06             send 6 

  008f:36                push 
  0090:39 57            pushi 57 // $57 init
  0092:76               push0 
  0093:39 7a            pushi 7a // $7a setScript
  0095:78               push1 
  0096:74 0379          lofss $0412 // fifiActions
  0099:72 03a6          lofsa $0442 // Fifi
  009c:4a 16             send 16 

  009e:48                 ret 
    )

    (method (doit) // method_009f
  009f:39 3c            pushi 3c // $3c doit
  00a1:76               push0 
  00a2:57 36 04         super Rgn 4 

  00a5:48                 ret 
    )

    (method (dispose) // method_00a6
  00a6:78               push1 
  00a7:38 03d9          pushi 3d9 // $3d9 sel_985
  00aa:43 03 02         callk DisposeScript 2 

  00ad:39 58            pushi 58 // $58 dispose
  00af:76               push0 
  00b0:57 36 04         super Rgn 4 

  00b3:48                 ret 
    )

    (method (handleEvent) // method_00b4
  00b4:39 6f            pushi 6f // $6f handleEvent
  00b6:78               push1 
  00b7:8f 01              lsp param1 
  00b9:57 36 06         super Rgn 6 

  00bc:48                 ret 
    )

)

// 040c
(instance fifiActions of Script
    (properties
        client $0
        state $ffff
        start $0
        timer $0
        cycles $0
        seconds $0
        lastSeconds $0
        register $0
        script $0
        caller $0
    )
    (method (changeState) // method_00bd
  00bd:87 01              lap param1 
  00bf:65 0a             aTop state 
  00c1:36                push 
  00c2:3c                 dup 
  00c3:35 00              ldi 0 
  00c5:1a                 eq? 
  00c6:31 24              bnt code_00ec 
  00c8:8b 00              lsl local0 
  00ca:35 03              ldi 3 
  00cc:1a                 eq? 
  00cd:31 16              bnt code_00e5 
  00cf:38 00d3          pushi d3 // $d3 setMotion
  00d2:39 04            pushi 4 // $4 x
  00d4:51 1d            class MoveTo 
  00d6:36                push 
  00d7:38 00b1          pushi b1 // $b1 bumpTurn
  00da:38 0090          pushi 90 // $90 setMark
  00dd:7c            pushSelf 
  00de:72 0361          lofsa $0442 // Fifi
  00e1:4a 0c             send c 

  00e3:33 04              jmp code_00e9 

        code_00e5
  00e5:35 01              ldi 1 
  00e7:65 10             aTop cycles 

        code_00e9
  00e9:32 01d5            jmp code_02c1 

        code_00ec
  00ec:3c                 dup 
  00ed:35 01              ldi 1 
  00ef:1a                 eq? 
  00f0:31 23              bnt code_0115 
  00f2:8b 00              lsl local0 
  00f4:35 03              ldi 3 
  00f6:1a                 eq? 
  00f7:31 15              bnt code_010e 
  00f9:38 00d3          pushi d3 // $d3 setMotion
  00fc:39 04            pushi 4 // $4 x
  00fe:51 1d            class MoveTo 
  0100:36                push 
  0101:38 00aa          pushi aa // $aa triedToMove
  0104:39 7c            pushi 7c // $7c lastTime
  0106:7c            pushSelf 
  0107:72 0338          lofsa $0442 // Fifi
  010a:4a 0c             send c 

  010c:33 04              jmp code_0112 

        code_010e
  010e:35 01              ldi 1 
  0110:65 10             aTop cycles 

        code_0112
  0112:32 01ac            jmp code_02c1 

        code_0115
  0115:3c                 dup 
  0116:35 02              ldi 2 
  0118:1a                 eq? 
  0119:31 38              bnt code_0153 
  011b:35 00              ldi 0 
  011d:a3 0e              sal local14 
  011f:39 05            pushi 5 // $5 view
  0121:78               push1 
  0122:38 01d0          pushi 1d0 // $1d0 sel_464
  0125:39 7e            pushi 7e // $7e setCycle
  0127:78               push1 
  0128:51 17            class Walk 
  012a:36                push 
  012b:38 00c9          pushi c9 // $c9 ignoreActors
  012e:78               push1 
  012f:76               push0 
  0130:38 00d3          pushi d3 // $d3 setMotion
  0133:39 04            pushi 4 // $4 x
  0135:51 1d            class MoveTo 
  0137:36                push 
  0138:8b 00              lsl local0 
  013a:35 02              ldi 2 
  013c:06                 mul 
  013d:9b 02             lsli local2 
  013f:8b 00              lsl local0 
  0141:35 02              ldi 2 
  0143:06                 mul 
  0144:36                push 
  0145:35 01              ldi 1 
  0147:02                 add 
  0148:9b 02             lsli local2 
  014a:7c            pushSelf 
  014b:72 02f4          lofsa $0442 // Fifi
  014e:4a 1e             send 1e 

  0150:32 016e            jmp code_02c1 

        code_0153
  0153:3c                 dup 
  0154:35 03              ldi 3 
  0156:1a                 eq? 
  0157:31 5a              bnt code_01b3 
  0159:39 05            pushi 5 // $5 view
  015b:78               push1 
  015c:38 01d6          pushi 1d6 // $1d6 sel_470
  015f:39 07            pushi 7 // $7 cel
  0161:78               push1 
  0162:76               push0 
  0163:39 06            pushi 6 // $6 loop
  0165:78               push1 
  0166:8b 00              lsl local0 
  0168:3c                 dup 
  0169:35 00              ldi 0 
  016b:1a                 eq? 
  016c:31 04              bnt code_0172 
  016e:35 04              ldi 4 
  0170:33 30              jmp code_01a2 

        code_0172
  0172:3c                 dup 
  0173:35 01              ldi 1 
  0175:1a                 eq? 
  0176:31 04              bnt code_017c 
  0178:35 04              ldi 4 
  017a:33 26              jmp code_01a2 

        code_017c
  017c:3c                 dup 
  017d:35 02              ldi 2 
  017f:1a                 eq? 
  0180:31 04              bnt code_0186 
  0182:35 05              ldi 5 
  0184:33 1c              jmp code_01a2 

        code_0186
  0186:3c                 dup 
  0187:35 03              ldi 3 
  0189:1a                 eq? 
  018a:31 04              bnt code_0190 
  018c:35 01              ldi 1 
  018e:33 12              jmp code_01a2 

        code_0190
  0190:3c                 dup 
  0191:35 04              ldi 4 
  0193:1a                 eq? 
  0194:31 04              bnt code_019a 
  0196:35 00              ldi 0 
  0198:33 08              jmp code_01a2 

        code_019a
  019a:3c                 dup 
  019b:35 05              ldi 5 
  019d:1a                 eq? 
  019e:31 02              bnt code_01a2 
  01a0:35 01              ldi 1 

        code_01a2
  01a2:3a                toss 
  01a3:36                push 
  01a4:39 7e            pushi 7e // $7e setCycle
  01a6:7a               push2 
  01a7:51 1a            class End 
  01a9:36                push 
  01aa:7c            pushSelf 
  01ab:72 0294          lofsa $0442 // Fifi
  01ae:4a 1a             send 1a 

  01b0:32 010e            jmp code_02c1 

        code_01b3
  01b3:3c                 dup 
  01b4:35 04              ldi 4 
  01b6:1a                 eq? 
  01b7:31 53              bnt code_020c 
  01b9:39 06            pushi 6 // $6 loop
  01bb:78               push1 
  01bc:8b 00              lsl local0 
  01be:3c                 dup 
  01bf:35 00              ldi 0 
  01c1:1a                 eq? 
  01c2:31 04              bnt code_01c8 
  01c4:35 06              ldi 6 
  01c6:33 30              jmp code_01f8 

        code_01c8
  01c8:3c                 dup 
  01c9:35 01              ldi 1 
  01cb:1a                 eq? 
  01cc:31 04              bnt code_01d2 
  01ce:35 06              ldi 6 
  01d0:33 26              jmp code_01f8 

        code_01d2
  01d2:3c                 dup 
  01d3:35 02              ldi 2 
  01d5:1a                 eq? 
  01d6:31 04              bnt code_01dc 
  01d8:35 07              ldi 7 
  01da:33 1c              jmp code_01f8 

        code_01dc
  01dc:3c                 dup 
  01dd:35 03              ldi 3 
  01df:1a                 eq? 
  01e0:31 04              bnt code_01e6 
  01e2:35 03              ldi 3 
  01e4:33 12              jmp code_01f8 

        code_01e6
  01e6:3c                 dup 
  01e7:35 04              ldi 4 
  01e9:1a                 eq? 
  01ea:31 04              bnt code_01f0 
  01ec:35 02              ldi 2 
  01ee:33 08              jmp code_01f8 

        code_01f0
  01f0:3c                 dup 
  01f1:35 05              ldi 5 
  01f3:1a                 eq? 
  01f4:31 02              bnt code_01f8 
  01f6:35 03              ldi 3 

        code_01f8
  01f8:3a                toss 
  01f9:36                push 
  01fa:39 7e            pushi 7e // $7e setCycle
  01fc:78               push1 
  01fd:51 16            class Fwd 
  01ff:36                push 
  0200:72 023f          lofsa $0442 // Fifi
  0203:4a 0c             send c 

  0205:35 04              ldi 4 
  0207:65 12             aTop seconds 
  0209:32 00b5            jmp code_02c1 

        code_020c
  020c:3c                 dup 
  020d:35 05              ldi 5 
  020f:1a                 eq? 
  0210:31 53              bnt code_0265 
  0212:39 07            pushi 7 // $7 cel
  0214:78               push1 
  0215:7a               push2 
  0216:39 06            pushi 6 // $6 loop
  0218:78               push1 
  0219:8b 00              lsl local0 
  021b:3c                 dup 
  021c:35 00              ldi 0 
  021e:1a                 eq? 
  021f:31 04              bnt code_0225 
  0221:35 04              ldi 4 
  0223:33 30              jmp code_0255 

        code_0225
  0225:3c                 dup 
  0226:35 01              ldi 1 
  0228:1a                 eq? 
  0229:31 04              bnt code_022f 
  022b:35 04              ldi 4 
  022d:33 26              jmp code_0255 

        code_022f
  022f:3c                 dup 
  0230:35 02              ldi 2 
  0232:1a                 eq? 
  0233:31 04              bnt code_0239 
  0235:35 05              ldi 5 
  0237:33 1c              jmp code_0255 

        code_0239
  0239:3c                 dup 
  023a:35 03              ldi 3 
  023c:1a                 eq? 
  023d:31 04              bnt code_0243 
  023f:35 01              ldi 1 
  0241:33 12              jmp code_0255 

        code_0243
  0243:3c                 dup 
  0244:35 04              ldi 4 
  0246:1a                 eq? 
  0247:31 04              bnt code_024d 
  0249:35 00              ldi 0 
  024b:33 08              jmp code_0255 

        code_024d
  024d:3c                 dup 
  024e:35 05              ldi 5 
  0250:1a                 eq? 
  0251:31 02              bnt code_0255 
  0253:35 01              ldi 1 

        code_0255
  0255:3a                toss 
  0256:36                push 
  0257:39 7e            pushi 7e // $7e setCycle
  0259:7a               push2 
  025a:51 1b            class Beg 
  025c:36                push 
  025d:7c            pushSelf 
  025e:72 01e1          lofsa $0442 // Fifi
  0261:4a 14             send 14 

  0263:33 5c              jmp code_02c1 

        code_0265
  0265:3c                 dup 
  0266:35 06              ldi 6 
  0268:1a                 eq? 
  0269:31 29              bnt code_0294 
  026b:39 05            pushi 5 // $5 view
  026d:78               push1 
  026e:38 01d0          pushi 1d0 // $1d0 sel_464
  0271:39 7e            pushi 7e // $7e setCycle
  0273:78               push1 
  0274:51 17            class Walk 
  0276:36                push 
  0277:38 00c9          pushi c9 // $c9 ignoreActors
  027a:78               push1 
  027b:76               push0 
  027c:72 01c3          lofsa $0442 // Fifi
  027f:4a 12             send 12 

  0281:8b 00              lsl local0 
  0283:35 05              ldi 5 
  0285:22                 lt? 
  0286:31 06              bnt code_028e 
  0288:c3 00              +al local0 
  028a:35 ff              ldi ff 
  028c:65 0a             aTop state 

        code_028e
  028e:35 01              ldi 1 
  0290:65 10             aTop cycles 
  0292:33 2d              jmp code_02c1 

        code_0294
  0294:3c                 dup 
  0295:35 07              ldi 7 
  0297:1a                 eq? 
  0298:31 14              bnt code_02ae 
  029a:38 00d3          pushi d3 // $d3 setMotion
  029d:39 04            pushi 4 // $4 x
  029f:51 1d            class MoveTo 
  02a1:36                push 
  02a2:39 ec            pushi ec // $ec get
  02a4:39 62            pushi 62 // $62 eachElementDo
  02a6:7c            pushSelf 
  02a7:72 0198          lofsa $0442 // Fifi
  02aa:4a 0c             send c 

  02ac:33 13              jmp code_02c1 

        code_02ae
  02ae:3c                 dup 
  02af:35 08              ldi 8 
  02b1:1a                 eq? 
  02b2:31 0d              bnt code_02c1 
  02b4:35 02              ldi 2 
  02b6:a0 00c0            sag gFifiState 
  02b9:39 58            pushi 58 // $58 dispose
  02bb:76               push0 
  02bc:72 0183          lofsa $0442 // Fifi
  02bf:4a 04             send 4 


        code_02c1
  02c1:3a                toss 
  02c2:48                 ret 
    )

)

// 043c
(instance Fifi of Act
    (properties
        y $8c
        x $c4
        z $0
        heading $0
        yStep $2
        view $0
        loop $0
        cel $0
        priority $0
        underBits $0
        signal $0
        nsTop $0
        nsLeft $0
        nsBottom $0
        nsRight $0
        lsTop $0
        lsLeft $0
        lsBottom $0
        lsRight $0
        brTop $0
        brLeft $0
        brBottom $0
        brRight $0
        cycleSpeed $0
        script $0
        cycler $0
        timer $0
        illegalBits $8000
        xLast $0
        yLast $0
        xStep $3
        moveSpeed $0
        blocks $0
        baseSetter $0
        mover $0
        looper $0
        viewer $0
        avoider $0
    )
    (method (handleEvent) // method_02c3
  02c3:39 03            pushi 3 // $3 y
  02c5:7c            pushSelf 
  02c6:8f 01              lsp param1 
  02c8:39 03            pushi 3 // $3 y
  02ca:46 00ff 0005 06  calle ff procedure_0005 6 // MousedOn 

  02d0:31 1b              bnt code_02ed 
  02d2:88 00cf            lsg global207 
  02d5:35 10              ldi 10 
  02d7:12                 and 
  02d8:18                 not 
  02d9:31 12              bnt code_02ed 
  02db:39 4c            pushi 4c // $4c claimed
  02dd:78               push1 
  02de:78               push1 
  02df:87 01              lap param1 
  02e1:4a 06             send 6 

  02e3:78               push1 
  02e4:74 01ea          lofss $04d1 // fifi
  02e7:45 19 02         callb procedure_0019 2 // DoLook 

  02ea:32 00cd            jmp code_03ba 

        code_02ed
  02ed:88 00cf            lsg global207 
  02f0:35 10              ldi 10 
  02f2:12                 and 
  02f3:31 2e              bnt code_0323 
  02f5:39 03            pushi 3 // $3 y
  02f7:7c            pushSelf 
  02f8:8f 01              lsp param1 
  02fa:39 03            pushi 3 // $3 y
  02fc:46 00ff 0005 06  calle ff procedure_0005 6 // MousedOn 

  0302:2f 09               bt code_030d 
  0304:78               push1 
  0305:74 00c2          lofss $03ca // look/fifi
  0308:43 25 02         callk Said 2 

  030b:31 16              bnt code_0323 

        code_030d
  030d:39 4c            pushi 4c // $4c claimed
  030f:78               push1 
  0310:78               push1 
  0311:87 01              lap param1 
  0313:4a 06             send 6 

  0315:7a               push2 
  0316:38 010b          pushi 10b // $10b setFeatures
  0319:76               push0 
  031a:46 00ff 0000 04  calle ff procedure_0000 4 // Print 

  0320:32 0097            jmp code_03ba 

        code_0323
  0323:39 22            pushi 22 // $22 type
  0325:76               push0 
  0326:87 01              lap param1 
  0328:4a 04             send 4 

  032a:36                push 
  032b:34 0080            ldi 80 
  032e:1a                 eq? 
  032f:30 0088            bnt code_03ba 
  0332:78               push1 
  0333:74 008a          lofss $03c0 // */fifi>
  0336:43 25 02         callk Said 2 

  0339:31 7f              bnt code_03ba 
  033b:78               push1 
  033c:74 0091          lofss $03d0 // bonjour
  033f:43 25 02         callk Said 2 

  0342:31 61              bnt code_03a5 
  0344:35 05              ldi 5 
  0346:a0 00d5            sag global213 
  0349:8b 01              lsl local1 
  034b:3c                 dup 
  034c:35 00              ldi 0 
  034e:1a                 eq? 
  034f:31 0c              bnt code_035d 
  0351:39 03            pushi 3 // $3 y
  0353:78               push1 
  0354:38 010b          pushi 10b // $10b setFeatures
  0357:78               push1 
  0358:45 01 06         callb procedure_0001 6 // Say 

  035b:33 43              jmp code_03a0 

        code_035d
  035d:3c                 dup 
  035e:35 01              ldi 1 
  0360:1a                 eq? 
  0361:31 0c              bnt code_036f 
  0363:39 03            pushi 3 // $3 y
  0365:78               push1 
  0366:38 010b          pushi 10b // $10b setFeatures
  0369:7a               push2 
  036a:45 01 06         callb procedure_0001 6 // Say 

  036d:33 31              jmp code_03a0 

        code_036f
  036f:3c                 dup 
  0370:35 02              ldi 2 
  0372:1a                 eq? 
  0373:31 0d              bnt code_0382 
  0375:39 03            pushi 3 // $3 y
  0377:78               push1 
  0378:38 010b          pushi 10b // $10b setFeatures
  037b:39 03            pushi 3 // $3 y
  037d:45 01 06         callb procedure_0001 6 // Say 

  0380:33 1e              jmp code_03a0 

        code_0382
  0382:3c                 dup 
  0383:35 03              ldi 3 
  0385:1a                 eq? 
  0386:31 0d              bnt code_0395 
  0388:39 03            pushi 3 // $3 y
  038a:78               push1 
  038b:38 010b          pushi 10b // $10b setFeatures
  038e:39 04            pushi 4 // $4 x
  0390:45 01 06         callb procedure_0001 6 // Say 

  0393:33 0b              jmp code_03a0 

        code_0395
  0395:39 03            pushi 3 // $3 y
  0397:78               push1 
  0398:38 010b          pushi 10b // $10b setFeatures
  039b:39 05            pushi 5 // $5 view
  039d:45 01 06         callb procedure_0001 6 // Say 


        code_03a0
  03a0:3a                toss 
  03a1:c3 01              +al local1 
  03a3:33 15              jmp code_03ba 

        code_03a5
  03a5:78               push1 
  03a6:74 001e          lofss $03c7 // ecouter
  03a9:43 25 02         callk Said 2 

  03ac:31 0c              bnt code_03ba 
  03ae:7a               push2 
  03af:38 010b          pushi 10b // $10b setFeatures
  03b2:39 06            pushi 6 // $6 loop
  03b4:46 00ff 0000 04  calle ff procedure_0000 4 // Print 


        code_03ba
  03ba:48                 ret 
  03bb:00                bnot 
    )

)



