Subversion Repositories Kolibri OS

Rev

Rev 7581 | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 7581 Rev 7773
Line 1... Line 1...
1
;
1
;
2
;   pipes kolibri
2
;   pipes kolibri
3
;   v1.41
3
;   v1.42
4
;   2006 by Mario Birkner
4
;   2006 by Mario Birkner
5
;
5
;
6
;   l.mod. 29.01.19
6
;   l.mod. 29.01.19
7
;
7
;
8
;   Compile with FASM
8
;   Compile with FASM
Line 272... Line 272...
272
      sub   al,[diffic]
272
      sub   al,[diffic]
273
      add   [score],eax          ;points/item = 6 - difficulty
273
      add   [score],eax          ;points/item = 6 - difficulty
274
      mov   ecx,dword [speed]
274
      mov   ecx,dword [speed]
275
      add   byte [esi],10
275
      add   byte [esi],10
276
      .down:
276
      .down:
277
      mov   eax,5
-
 
278
      mov   ebx,2
-
 
279
      mcall
277
      mcall 5, 2
280
      mov   eax,11
-
 
281
      mcall
278
      mcall 11
282
      cmp   eax,1
279
      cmp   eax,1
283
      jne   .nored
280
      jne   .nored
284
      call  draw_window
281
      call  draw_window
285
      .nored:
282
      .nored:
286
      cmp   eax,3
283
      cmp   eax,3
Line 297... Line 294...
297
     jmp   .findway
294
     jmp   .findway
298
   .collision:
295
   .collision:
299
    cmp [stat],1
296
    cmp [stat],1
300
    jne .loose
297
    jne .loose
301
    call draw_message
298
    call draw_message
302
    mov   eax,5
-
 
303
    mov   ebx,500
299
    mcall 5, 500
304
    mcall
-
 
305
    mov [stat],0
300
    mov [stat],0
306
    inc [level]
301
    inc [level]
307
    cmp [speed],6                ;waterflowdelay < 6 ?
302
    cmp [speed],6                ;waterflowdelay < 6 ?
308
    jle .skipsub
303
    jle .skipsub
309
    sub [speed],2
304
    sub [speed],2
Line 319... Line 314...
319
popa
314
popa
320
ret
315
ret
Line 321... Line 316...
321
 
316
 
322
show_score:
317
show_score:
323
pusha
-
 
324
mov  eax,47
-
 
325
mov  ebx,0x20000
-
 
326
mov  ecx,[time]
-
 
327
mov  edx,60*65536+395
318
pusha
328
mov  esi,fg2color
319
mov  esi,fg2color
329
mov  edi,bgcolor
320
mov  edi,bgcolor
330
or   esi,0x50000000
321
or   esi,0x50000000
331
mcall
322
mcall 47, 0x20000, [time], <60,395>
332
mov  ebx,0x50000
323
mov  ebx,0x50000
333
mov  ecx,[score]
324
mov  ecx,[score]
334
if lang eq et
325
if lang eq et
335
add  edx,88 shl 16
326
add  edx,88 shl 16
Line 405... Line 396...
405
    shl   eax,8
396
    shl   eax,8
406
    shr   eax,8
397
    shr   eax,8
407
    cmp   ebx,0
398
    cmp   ebx,0
408
    jz    .nowcolor
399
    jz    .nowcolor
409
    mov   ebx,eax
400
    mov   ebx,eax
410
    cmp   ebx,0x00B0B5B0
401
    cmp   ebx,0x00B0B4B0
411
    jne   .nog1
402
    jne   .nog1
412
    jmp   .wcolor
403
    jmp   .wcolor
413
 .nog1:
404
 .nog1:
414
    cmp   ebx,0x00A0A5A0
405
    cmp   ebx,0x00A0A4A0
415
    jne   .nog2
406
    jne   .nog2
416
    jmp   .wcolor
407
    jmp   .wcolor
417
 .nog2:
408
 .nog2:
418
    cmp   ebx,0x00909590
409
    cmp   ebx,0x00909490
419
    jne   .nog3
410
    jne   .nog3
420
    jmp   .wcolor
411
    jmp   .wcolor
421
 .nog3:
412
 .nog3:
422
    cmp   ebx,0x00808580
413
    cmp   ebx,0x00808480
423
    jne   .nog4
414
    jne   .nog4
424
    jmp   .wcolor
415
    jmp   .wcolor
425
 .nog4:
416
 .nog4:
426
    cmp   ebx,0x00707570
417
    cmp   ebx,0x00707470
427
    jne   .nowcolor
418
    jne   .nowcolor
428
    jmp   .wcolor
419
    jmp   .wcolor
429
 .wcolor:
420
 .wcolor:
430
    add   eax,0x40
421
    add   eax,0x40
431
 .nowcolor:
422
 .nowcolor:
Line 451... Line 442...
451
    mov  edx,fgcolor
442
    mov  edx,fgcolor
452
    mcall
443
    mcall
Line 453... Line 444...
453
 
444
 
454
        cmp  [stat],3
445
        cmp  [stat],3
455
        jne .stat1
446
        jne .stat1
456
    mov   eax,4
-
 
457
    mov   ebx,159 shl 16 +202
-
 
458
    mov   edx,lbl_new_game
447
 
459
    mov   ecx,btcolor
448
    mov   ecx,btcolor
460
    or    ecx,0xB0000000
449
    or    ecx,0xB0000000
461
    mcall
450
    mcall 4, <159,202>,,lbl_new_game
Line 462... Line 451...
462
    jmp .nomessage
451
    jmp .nomessage
463
 
452
 
464
  .stat1:       
453
  .stat1:       
465
    cmp   [stat],1
-
 
466
     je   .winmessage
-
 
467
    mov   eax,4
-
 
468
    mov   ebx,170 shl 16 +196
454
    cmp   [stat],1
469
    mov   edx,lbl_gameover
455
     je   .winmessage
470
    mov   ecx,btcolor OR 0xB0000000
456
    mov   ecx,btcolor OR 0xB0000000
471
    mcall
457
    mcall 4, <170,196>, , lbl_gameover
472
    add   ebx,8 shl 16 +17
458
    add   ebx,8 shl 16 +17
473
    mov   edx,lbl_yscore
459
    mov   edx,lbl_yscore
474
    mcall
460
    mcall
Line 479... Line 465...
479
    mov   ecx,[score]    ;inp
465
    mov   ecx,[score]    ;inp
480
    mov   eax,47
466
    mov   eax,47
481
    mcall
467
    mcall
482
    jmp   .nomessage
468
    jmp   .nomessage
483
   .winmessage:
469
   .winmessage:
484
    mov   eax,4
-
 
485
    mov   ebx,124 shl 16 +194
-
 
486
    mov   edx,lbl_win
-
 
487
    mov   ecx,btcolor
470
    mov   ecx,btcolor
488
    or    ecx,0xB0000000
471
    or    ecx,0xB0000000
489
    mcall
472
    mcall 4, <124,194>, , lbl_win
490
    add   ebx,17
473
    add   ebx,17
491
    add   edx,lbl_win2-lbl_win
474
    add   edx,lbl_win2-lbl_win
492
    mcall
475
    mcall
493
   .nomessage:
476
   .nomessage:
494
popa
477
popa
Line 513... Line 496...
513
    sub  edx,0x30000000     ;first delete previous button
496
    sub  edx,0x30000000     ;first delete previous button
514
    mcall
497
    mcall
515
    pop  edx
498
    pop  edx
516
    push ebx
499
    push ebx
517
    push ecx
500
    push ecx
518
    mov  eax,7
-
 
519
    mov  ebx,0x10000
501
    mcall 7, 0x10000, <32,32>
520
    mov  ecx,32 shl 16 +32
-
 
521
    mcall
-
 
522
    pop  ecx
502
    pop  ecx
523
    pop  ebx
503
    pop  ebx
524
    add  edx,33 shl 16
504
    add  edx,33 shl 16
525
    add  ebx,33 shl 16
505
    add  ebx,33 shl 16
526
    dec  edi
506
    dec  edi
Line 561... Line 541...
561
    mcall
541
    mcall
562
	or    ecx,0x00000000
542
	or    ecx,0x00000000
563
    mov   ebx,18 shl 16 +395
543
    mov   ebx,18 shl 16 +395
564
    mov   edx,lbl_score
544
    mov   edx,lbl_score
565
    mcall
545
    mcall
566
    mov   ebx,340 shl 16 +405
546
    mov   ebx,360 shl 16 +405
567
    mov   ecx,fg3color
547
    mov   ecx,fg3color
568
    mov   edx,lbl_copy
548
    mov   edx,lbl_copy
569
    mcall
549
    mcall
Line 570... Line 550...
570
 
550
 
Line 582... Line 562...
582
lbl_new_game db 'Alusta enne uut mängu',0
562
lbl_new_game db 'Alusta enne uut mängu',0
583
lbl_win      db '          T u b l i !           ',0
563
lbl_win      db '          T u b l i !           ',0
584
lbl_win2     db '          Lähme edasi!          ',0
564
lbl_win2     db '          Lähme edasi!          ',0
585
lbl_yscore   db 'Sinu tulemus:',0
565
lbl_yscore   db 'Sinu tulemus:',0
586
lbl_toolbar  db 'Uus mäng:  Lihtne    Keskmine   Raske',0
566
lbl_toolbar  db 'Uus mäng:  Lihtne    Keskmine   Raske',0
587
lbl_copy     db 'v1.41 2006,Mario Birkner',0
-
 
588
lbl_score    db ' Aeg:   Tulemus:       Tase:',0
567
lbl_score    db ' Aeg:   Tulemus:       Tase:',0
589
else
568
else
590
lbl_title    db 'Pipes',0
569
lbl_title    db 'Pipes',0
591
lbl_gameover db 'G a m e   O v e r !',0
570
lbl_gameover db 'G a m e   O v e r !',0
592
lbl_new_game db 'Start a new game first',0
571
lbl_new_game db 'Start a new game first',0
593
lbl_win      db '          G r e a t !           ',0
572
lbl_win      db '          G r e a t !           ',0
594
lbl_win2     db "       Let's keep going!        ",0
573
lbl_win2     db "       Let's keep going!        ",0
595
lbl_yscore   db 'Your Score:',0
574
lbl_yscore   db 'Your Score:',0
596
lbl_toolbar  db 'New Game:    Easy     Normal    Hard',0
575
lbl_toolbar  db 'New Game:    Easy     Normal    Hard',0
597
lbl_copy     db 'v1.41 2006,Mario Birkner',0
-
 
598
lbl_score    db 'Time:    Score:       Level:',0
576
lbl_score    db 'Time:    Score:       Level:',0
599
end if
577
end if
Line -... Line 578...
-
 
578
 
-
 
579
lbl_copy     db '2006, Mario Birkner',0
600
 
580
 
601
;=================================================
581
;=================================================
602
; DATA - VARS
582
; DATA - VARS
603
;=================================================
583
;=================================================
604
stat    db 3  ;0=gameplay 1=won 2-lost 3=stopped
584
stat    db 3  ;0=gameplay 1=won 2-lost 3=stopped