New game #348

Open
Max wants to merge 20 commits from Max/kolibrios:max-patch-1 into main
2 changed files with 17 additions and 17 deletions
Showing only changes of commit 756fa8dd66 - Show all commits

View File

@@ -4,4 +4,4 @@ tup.include(HELPERDIR .. "/use_fasm.lua")
add_include(tup.getvariantdir())
tup.rule("echo lang fix " .. ((tup.getconfig("LANG") == "") and "en_US" or tup.getconfig("LANG")) .. " > %o", {"lang.inc"})
tup.rule("solitare.asm", FASM .. " %f %o " .. tup.getconfig("KPACK_CMD"), "solitare")
tup.rule("solitares.asm", FASM .. " %f %o " .. tup.getconfig("KPACK_CMD"), "solitares")

View File

@@ -10,7 +10,7 @@ dd mem_end
dd stacktop
dd 0, 0
; --- STAŁE ---
; --- CONSTANTS ---
CARD_W equ 50
CARD_H equ 70
STACK_OFFSET equ 22
@@ -191,7 +191,7 @@ on_redraw:
int 0x40
jmp event_loop
; --- PROCEDURY RYSOWANIA ---
; --- DRAWING PROCEDURES ---
draw_char_to_buf:
pushad
@@ -266,7 +266,7 @@ draw_card_to_buffer:
.is_red:
push edx
push esi
; --- LEWY GÓRNY RÓG (Margines 3px) ---
; --- TOP-LEFT CORNER (3px margin) ---
movzx eax, byte [esi]
dec eax
mov esi, eax
@@ -277,32 +277,32 @@ draw_card_to_buffer:
push esi
movzx eax, byte [esi+1]
add eax, 13
add ebx, 6 ; Ikona obok rangi
add ebx, 6 ; Suit icon next to rank
mov esi, eax
call draw_char_to_buf
; --- PRAWY DOLNY RÓG (Symetryczny Margines 3px) ---
; --- BOTTOM-RIGHT CORNER (symmetric 3px margin) ---
pop esi
pop edx
push edx
push esi
movzx ebx, word [esi+4]
add ebx, CARD_W - 8 ; (50 - 3 marginesu - 5 szerokości fontu = 42, czyli add 42)
add ebx, CARD_W - 8 ; (50 - 3 margin - 5 font width = 42, so add 42)
movzx ecx, word [esi+6]
add ecx, CARD_H - 10 ; (70 - 3 marginesu - 7 wysokości fontu = 60, czyli add 60)
add ecx, CARD_H - 10 ; (70 - 3 margin - 7 font height = 60, so add 60)
; Ranga na dole (najbardziej wysunięta w prawo)
; Rank at the bottom (furthest to the right)
movzx eax, byte [esi]
dec eax
mov esi, eax
call draw_char_to_buf
; Ikona koloru obok rangi na dole
; Suit icon next to the bottom rank
pop esi
push esi
movzx eax, byte [esi+1]
add eax, 13
sub ebx, 6 ; Ikona 6px na lewo od rangi
sub ebx, 6 ; Icon 6px to the left of rank
mov esi, eax
call draw_char_to_buf
@@ -365,7 +365,7 @@ draw_slots:
popad
ret
; --- LOGIKA GRY ---
; --- GAME LOGIC ---
is_card_active:
push eax
@@ -1001,7 +1001,7 @@ layout_tableau:
jmp .sf
.fin: ret
; --- DANE ---
; --- DATA ---
title db 'Solitaire Symmetric Corner', 0
score dd 0
game_won db 0
@@ -1030,10 +1030,10 @@ db 10111000b,10101000b,10101000b,10101000b,10101000b,10101000b,10111000b ; 9:10
db 00011000b,00001000b,00001000b,00001000b,00001000b,10001000b,01110000b ; 10:J
db 01110000b,10001000b,10001000b,10001000b,10101000b,10010000b,01101000b ; 11:Q
db 10001000b,10010000b,10100000b,11000000b,10100000b,10010000b,10001000b ; 12:K
db 01010000b,11111000b,11111000b,01110000b,00100000b,00000000b,00000000b ; 13:Kier
db 00100000b,01110000b,11111000b,11111000b,01110000b,00100000b,00000000b ; 14:Karo
db 00100000b,00100000b,11111000b,11111000b,00100000b,00100000b,01110000b ; 15:Trefl
db 00100000b,01110000b,11111000b,11111000b,01110000b,00100000b,01110000b ; 16:Pik
db 01010000b,11111000b,11111000b,01110000b,00100000b,00000000b,00000000b ; 13:Hearts
db 00100000b,01110000b,11111000b,11111000b,01110000b,00100000b,00000000b ; 14:Diamonds
db 00100000b,00100000b,11111000b,11111000b,00100000b,00100000b,01110000b ; 15:Clubs
db 00100000b,01110000b,11111000b,11111000b,01110000b,00100000b,01110000b ; 16:Spades
db 01111000b,10000000b,01110000b,00001000b,00001000b,11110000b,00000000b ; 17:S
db 01110000b,10001000b,10000000b,10000000b,10000000b,10001000b,01110000b ; 18:C
db 01110000b,10001000b,10001000b,10001000b,10001000b,10001000b,01110000b ; 19:O