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 |