Added files
This commit is contained in:
188
dane/game/debug/arraytest/Array_test.cnv
Normal file
188
dane/game/debug/arraytest/Array_test.cnv
Normal file
@@ -0,0 +1,188 @@
|
||||
OBJECT=KEYBOARD
|
||||
KEYBOARD:TYPE=KEYBOARD
|
||||
KEYBOARD:ONKEYDOWN^LEFT={DEBUG_VALUE^DEC();DEBUG^GOTO("LOGIC_TEST");}
|
||||
KEYBOARD:ONKEYDOWN^RIGHT={TXTMSG^SETTEXT(["Przejscie_do_test_"+[DEBUG_VALUE+1]]);DEBUG_VALUE^INC();DEBUG^GOTO("ANIMO_TEST");}
|
||||
KEYBOARD:ONKEYDOWN^ESC={EXITPROGRAM^RUN();}
|
||||
KEYBOARD:ONKEYDOWN^UP={@IF("BEHNO",">","1","{BEHNO^DEC();}","");*[ARRAY_TEST_+BEHNO]^RUN();}
|
||||
KEYBOARD:ONKEYDOWN^DOWN={@IF("BEHNO","<","28","{BEHNO^INC();}","");*[ARRAY_TEST_+BEHNO]^RUN();}
|
||||
KEYBOARD:DESCRIPTION=CZEMU_SIE_CRASHUJE_JAK_PROBUJE_PRZEJSC_DALEJ
|
||||
|
||||
OBJECT=ARIAL14
|
||||
ARIAL14:TYPE=FONT
|
||||
ARIAL14:DEF_ARIAL_STANDARD_14=$COMMON\ARIAL14.FNT
|
||||
|
||||
OBJECT=TXTMSG
|
||||
TXTMSG:TYPE=TEXT
|
||||
TXTMSG:VISIBLE=TRUE
|
||||
TXTMSG:HYPERTEXT=
|
||||
TXTMSG:FONT=ARIAL14
|
||||
TXTMSG:TOCANVAS=TRUE
|
||||
TXTMSG:RECT=0,0,800,250
|
||||
TXTMSG:PRIORITY=10000
|
||||
TXTMSG:HJUSTIFY=CENTER
|
||||
TXTMSG:VJUSTIFY=TOP
|
||||
TXTMSG:MONITORCOLLISION=FALSE
|
||||
TXTMSG:MONITORCOLLISIONALPHA=FALSE
|
||||
|
||||
OBJECT=TXTMSG2
|
||||
TXTMSG2:TYPE=TEXT
|
||||
TXTMSG2:VISIBLE=TRUE
|
||||
TXTMSG2:HYPERTEXT=
|
||||
TXTMSG2:FONT=ARIAL14
|
||||
TXTMSG2:TOCANVAS=TRUE
|
||||
TXTMSG2:RECT=0,0,800,250
|
||||
TXTMSG2:PRIORITY=10000
|
||||
TXTMSG2:HJUSTIFY=CENTER
|
||||
TXTMSG2:VJUSTIFY=BOTTOM
|
||||
TXTMSG2:MONITORCOLLISION=FALSE
|
||||
TXTMSG2:MONITORCOLLISIONALPHA=FALSE
|
||||
|
||||
OBJECT=TXTMSG3
|
||||
TXTMSG3:TYPE=TEXT
|
||||
TXTMSG3:VISIBLE=FALSE
|
||||
TXTMSG3:HYPERTEXT=
|
||||
TXTMSG3:FONT=ARIAL14
|
||||
TXTMSG3:TOCANVAS=TRUE
|
||||
TXTMSG3:RECT=0,350,800,650
|
||||
TXTMSG3:PRIORITY=10000
|
||||
TXTMSG3:HJUSTIFY=CENTER
|
||||
TXTMSG3:VJUSTIFY=TOP
|
||||
TXTMSG3:MONITORCOLLISION=FALSE
|
||||
TXTMSG3:MONITORCOLLISIONALPHA=FALSE
|
||||
|
||||
OBJECT=BEHNO
|
||||
BEHNO:TYPE=INTEGER
|
||||
BEHNO:VALUE=1
|
||||
|
||||
OBJECT=DANETESTOWE
|
||||
DANETESTOWE:TYPE=ARRAY
|
||||
DANETESTOWE:ONINIT={EVENT_DEBUG_TXT^ADD("|INIT");TXTMSG3^SETTEXT(["SCIEZKA_EVENTY|"+EVENT_DEBUG_TXT^GET()]);}
|
||||
#DANETESTOWE:ONDONE={EVENT_DEBUG_TXT^ADD("|DONE");TXTMSG3^SETTEXT(["SCIEZKA_EVENTY|"+EVENT_DEBUG_TXT^GET()]);}
|
||||
DANETESTOWE:ONSIGNAL^TEST={EVENT_DEBUG_TXT^ADD("|SIGNAL_TEST");TXTMSG3^SETTEXT(["SCIEZKA_EVENTY|"+EVENT_DEBUG_TXT^GET()]);}
|
||||
|
||||
OBJECT=TEST_COPY_ARRAY
|
||||
TEST_COPY_ARRAY:TYPE=ARRAY
|
||||
|
||||
OBJECT=EVENT_DEBUG_TXT
|
||||
EVENT_DEBUG_TXT:TYPE=STRING
|
||||
EVENT_DEBUG_TXT:VALUE=
|
||||
|
||||
OBJECT=ARRAY_TO_STRING
|
||||
ARRAY_TO_STRING:TYPE=BEHAVIOUR
|
||||
ARRAY_TO_STRING:CODE={@STRING("ARRAY_TEXT", "");@LOOP("{ARRAY_TEXT^ADD([""+_I_+"__"+DANETESTOWE^GET(_I_)]);@IF("_I_","!_", [DANETESTOWE^GETSIZE()-1], "{ARRAY_TEXT^ADD("|");}", "");}", "0", DANETESTOWE^GETSIZE(), "1");@RETURN(ARRAY_TEXT);}
|
||||
|
||||
OBJECT=ARRAY2_TO_STRING
|
||||
ARRAY2_TO_STRING:TYPE=BEHAVIOUR
|
||||
ARRAY2_TO_STRING:CODE={@STRING("ARRAY_TEXT", "");@LOOP("{ARRAY_TEXT^ADD([""+_I_+"__"+TEST_COPY_ARRAY^GET(_I_)]);@IF("_I_","!_", [TEST_COPY_ARRAY^GETSIZE()-1], "{ARRAY_TEXT^ADD("|");}", "");}", "0", TEST_COPY_ARRAY^GETSIZE(), "1");@RETURN(ARRAY_TEXT);}
|
||||
|
||||
OBJECT=ARRAY_TEST_1
|
||||
ARRAY_TEST_1:TYPE=BEHAVIOUR
|
||||
ARRAY_TEST_1:CODE={DANETESTOWE^LOAD("TESTOWE_DANE.ARR");DANETESTOWE^ADD("FALSE");TXTMSG2^SETTEXT(["METODA_ADD|ZWROCONY_WYNIK__void|"+ARRAY_TO_STRING^RUN()]);}
|
||||
|
||||
OBJECT=ARRAY_TEST_2
|
||||
ARRAY_TEST_2:TYPE=BEHAVIOUR
|
||||
ARRAY_TEST_2:CODE={DANETESTOWE^LOAD("TESTOWE_DANE.ARR");DANETESTOWE^ADDAT(0, "FALSE");TXTMSG2^SETTEXT(["METODA_ADDAT|ZWROCONY_WYNIK__void|"+ARRAY_TO_STRING^RUN()]);}
|
||||
|
||||
OBJECT=ARRAY_TEST_3
|
||||
ARRAY_TEST_3:TYPE=BEHAVIOUR
|
||||
ARRAY_TEST_3:CODE={DANETESTOWE^LOAD("TESTOWE_DANE.ARR");DANETESTOWE^CHANGEAT(0, "FALSE");TXTMSG2^SETTEXT(["METODA_CHANGEAT|ZWROCONY_WYNIK__void|"+ARRAY_TO_STRING^RUN()]);}
|
||||
|
||||
OBJECT=ARRAY_TEST_4
|
||||
ARRAY_TEST_4:TYPE=BEHAVIOUR
|
||||
ARRAY_TEST_4:CODE={DANETESTOWE^LOAD("TESTOWE_DANE.ARR");DANETESTOWE^CLAMPAT(2, -2, 0.5);TXTMSG2^SETTEXT(["METODA_CLAMPEAT|ZWROCONY_WYNIK__void|"+ARRAY_TO_STRING^RUN()]);}
|
||||
|
||||
OBJECT=ARRAY_TEST_5
|
||||
ARRAY_TEST_5:TYPE=BEHAVIOUR
|
||||
ARRAY_TEST_5:CODE={DANETESTOWE^LOAD("TESTOWE_DANE.ARR");TXTMSG2^SETTEXT(["METODA_CONTAINS|ZWROCONY_WYNIK__"+DANETESTOWE^CONTAINS(TRUE)+"|"+ARRAY_TO_STRING^RUN()]);}
|
||||
|
||||
OBJECT=ARRAY_TEST_6
|
||||
ARRAY_TEST_6:TYPE=BEHAVIOUR
|
||||
ARRAY_TEST_6:CODE={DANETESTOWE^LOAD("TESTOWE_DANE.ARR");DANETESTOWE^COPYTO("TEST_COPY_ARRAY");TXTMSG2^SETTEXT(["METODA_COPYTO|ZWROCONY_WYNIK__void|"+ARRAY2_TO_STRING^RUN()]);}
|
||||
|
||||
OBJECT=ARRAY_TEST_7
|
||||
ARRAY_TEST_7:TYPE=BEHAVIOUR
|
||||
ARRAY_TEST_7:CODE={DANETESTOWE^LOAD("TESTOWE_DANE.ARR");TXTMSG2^SETTEXT(["METODA_FIND|ZWROCONY_WYNIK__"+DANETESTOWE^FIND("TRUE")+"|"+ARRAY_TO_STRING^RUN()]);}
|
||||
|
||||
OBJECT=ARRAY_TEST_8
|
||||
ARRAY_TEST_8:TYPE=BEHAVIOUR
|
||||
ARRAY_TEST_8:CODE={DANETESTOWE^LOAD("TESTOWE_DANE.ARR");TXTMSG2^SETTEXT(["METODA_FIND__NIEISTNIEJACY_ELEMENT|ZWROCONY_WYNIK__"+DANETESTOWE^FIND(250)+"|"+ARRAY_TO_STRING^RUN()]);}
|
||||
|
||||
OBJECT=ARRAY_TEST_9
|
||||
ARRAY_TEST_9:TYPE=BEHAVIOUR
|
||||
ARRAY_TEST_9:CODE={DANETESTOWE^LOAD("TESTOWE_DANE_JEDEN_TYP.ARR");TXTMSG2^SETTEXT(["METODA_FIND__NIEISTNIEJACY_ELEMENT_TABLICA_JEDEN_TYP|ZWROCONY_WYNIK__"+DANETESTOWE^FIND(250)+"|"+ARRAY_TO_STRING^RUN()]);}
|
||||
|
||||
OBJECT=ARRAY_TEST_10
|
||||
ARRAY_TEST_10:TYPE=BEHAVIOUR
|
||||
ARRAY_TEST_10:CODE={DANETESTOWE^LOAD("TESTOWE_DANE.ARR");TXTMSG2^SETTEXT(["METODA_GET__ISTNIEJACY_ELEMENT|ZWROCONY_WYNIK__"+DANETESTOWE^GET(2)+"|"+ARRAY_TO_STRING^RUN()]);}
|
||||
|
||||
OBJECT=ARRAY_TEST_11
|
||||
ARRAY_TEST_11:TYPE=BEHAVIOUR
|
||||
ARRAY_TEST_11:CODE={DANETESTOWE^LOAD("TESTOWE_DANE.ARR");TXTMSG2^SETTEXT(["METODA_GET__NIEISTNIEJACY_ELEMENT|ZWROCONY_WYNIK__"+DANETESTOWE^GET(10)+"|"+ARRAY_TO_STRING^RUN()]);}
|
||||
|
||||
OBJECT=ARRAY_TEST_12
|
||||
ARRAY_TEST_12:TYPE=BEHAVIOUR
|
||||
ARRAY_TEST_12:CODE={DANETESTOWE^LOAD("TESTOWE_DANE.ARR");TXTMSG2^SETTEXT(["METODA_GET__NIEISTNIEJACY_ELEMENT_DWA_ARGUMENTY|ZWROCONY_WYNIK__"+DANETESTOWE^GET(8,1)+"|"+ARRAY_TO_STRING^RUN()]);}
|
||||
|
||||
OBJECT=ARRAY_TEST_13
|
||||
ARRAY_TEST_13:TYPE=BEHAVIOUR
|
||||
ARRAY_TEST_13:CODE={DANETESTOWE^LOAD("TESTOWE_DANE.ARR");TXTMSG2^SETTEXT(["METODA_GETSIZE|ZWROCONY_WYNIK__"+DANETESTOWE^GETSIZE()+"|"+ARRAY_TO_STRING^RUN()]);}
|
||||
|
||||
OBJECT=ARRAY_TEST_14
|
||||
ARRAY_TEST_14:TYPE=BEHAVIOUR
|
||||
ARRAY_TEST_14:CODE={DANETESTOWE^LOAD("TESTOWE_DANE.ARR");TXTMSG2^SETTEXT(["METODA_GETSUMVALUE|ZWROCONY_WYNIK__"+DANETESTOWE^GETSUMVALUE()+"|"+ARRAY_TO_STRING^RUN()]);}
|
||||
|
||||
OBJECT=ARRAY_TEST_15
|
||||
ARRAY_TEST_15:TYPE=BEHAVIOUR
|
||||
ARRAY_TEST_15:CODE={DANETESTOWE^LOAD("TESTOWE_DANE_JEDEN_TYP.ARR");TXTMSG2^SETTEXT(["METODA_GETSUMVALUE__TABLICA_JEDEN_TYP|ZWROCONY_WYNIK__"+DANETESTOWE^GETSUMVALUE()+"|"+ARRAY_TO_STRING^RUN()]);}
|
||||
|
||||
OBJECT=ARRAY_TEST_16
|
||||
ARRAY_TEST_16:TYPE=BEHAVIOUR
|
||||
ARRAY_TEST_16:CODE={DANETESTOWE^LOAD("TESTOWE_DANE.ARR");DANETESTOWE^INSERTAT(3, 2.5);TXTMSG2^SETTEXT(["METODA_INSERTAT|ZWROCONY_WYNIK__void|"+ARRAY_TO_STRING^RUN()]);}
|
||||
|
||||
OBJECT=ARRAY_TEST_17
|
||||
ARRAY_TEST_17:TYPE=BEHAVIOUR
|
||||
ARRAY_TEST_17:CODE={DANETESTOWE^LOAD("TESTOWE_DANE.ARR");DANETESTOWE^SAVEINI();TXTMSG2^SETTEXT(["METODA_SAVEINI|ZWROCONY_WYNIK__void|"+ARRAY_TO_STRING^RUN()]);}
|
||||
|
||||
OBJECT=ARRAY_TEST_18
|
||||
ARRAY_TEST_18:TYPE=BEHAVIOUR
|
||||
ARRAY_TEST_18:CODE={DANETESTOWE^LOAD("TESTOWE_DANE.ARR");DANETESTOWE^REMOVE(TRUE);TXTMSG2^SETTEXT(["METODA_REMOVE|ZWROCONY_WYNIK__void|"+ARRAY_TO_STRING^RUN()]);}
|
||||
|
||||
OBJECT=ARRAY_TEST_19
|
||||
ARRAY_TEST_19:TYPE=BEHAVIOUR
|
||||
ARRAY_TEST_19:CODE={DANETESTOWE^LOAD("TESTOWE_DANE.ARR");DANETESTOWE^REMOVEALL();TXTMSG2^SETTEXT(["METODA_REMOVEALL|ZWROCONY_WYNIK__void|"+ARRAY_TO_STRING^RUN()]);}
|
||||
|
||||
OBJECT=ARRAY_TEST_20
|
||||
ARRAY_TEST_20:TYPE=BEHAVIOUR
|
||||
ARRAY_TEST_20:CODE={DANETESTOWE^LOAD("TESTOWE_DANE.ARR");DANETESTOWE^REMOVEAT(2);TXTMSG2^SETTEXT(["METODA_REMOVEAT|ZWROCONY_WYNIK__void|"+ARRAY_TO_STRING^RUN()]);}
|
||||
|
||||
OBJECT=ARRAY_TEST_21
|
||||
ARRAY_TEST_21:TYPE=BEHAVIOUR
|
||||
ARRAY_TEST_21:CODE={DANETESTOWE^LOAD("TESTOWE_DANE.ARR");TXTMSG2^SETTEXT(["METODA_REVERSEFIND|ZWROCONY_WYNIK__"+DANETESTOWE^REVERSEFIND("TRUE")+"|"+ARRAY_TO_STRING^RUN()]);}
|
||||
|
||||
OBJECT=ARRAY_TEST_22
|
||||
ARRAY_TEST_22:TYPE=BEHAVIOUR
|
||||
ARRAY_TEST_22:CODE={DANETESTOWE^LOAD("TESTOWE_DANE.ARR");TXTMSG2^SETTEXT(["METODA_REVERSEFIND__NIEISTNIEJACY_ELEMENT|ZWROCONY_WYNIK__"+DANETESTOWE^REVERSEFIND(250)+"|"+ARRAY_TO_STRING^RUN()]);}
|
||||
|
||||
OBJECT=ARRAY_TEST_23
|
||||
ARRAY_TEST_23:TYPE=BEHAVIOUR
|
||||
ARRAY_TEST_23:CODE={DANETESTOWE^LOAD("TESTOWE_DANE_JEDEN_TYP.ARR");TXTMSG2^SETTEXT(["METODA_REVERSEFIND__NIEISTNIEJACY_ELEMENT_TABLICA_JEDEN_TYP|ZWROCONY_WYNIK__"+DANETESTOWE^REVERSEFIND(250)+"|"+ARRAY_TO_STRING^RUN()]);}
|
||||
|
||||
OBJECT=ARRAY_TEST_24
|
||||
ARRAY_TEST_24:TYPE=BEHAVIOUR
|
||||
ARRAY_TEST_24:CODE={DANETESTOWE^LOAD("TESTOWE_DANE.ARR");DANETESTOWE^SUB(5);TXTMSG2^SETTEXT(["METODA_SUB|ZWROCONY_WYNIK__void|"+ARRAY_TO_STRING^RUN()]);}
|
||||
|
||||
OBJECT=ARRAY_TEST_25
|
||||
ARRAY_TEST_25:TYPE=BEHAVIOUR
|
||||
ARRAY_TEST_25:CODE={DANETESTOWE^LOAD("TESTOWE_DANE.ARR");DANETESTOWE^SUM(5);TXTMSG2^SETTEXT(["METODA_SUM|ZWROCONY_WYNIK__void|"+ARRAY_TO_STRING^RUN()]);}
|
||||
|
||||
OBJECT=ARRAY_TEST_26
|
||||
ARRAY_TEST_26:TYPE=BEHAVIOUR
|
||||
ARRAY_TEST_26:CODE={DANETESTOWE^LOAD("TESTOWE_DANE.ARR");DANETESTOWE^ADD(ARIAL14);TXTMSG2^SETTEXT(["PROBA_DODANIA_INNEGO_TYPU|WIELKOSC_TABLICY__"+DANETESTOWE^GETSIZE()]);}
|
||||
|
||||
OBJECT=ARRAY_TEST_27
|
||||
ARRAY_TEST_27:TYPE=BEHAVIOUR
|
||||
ARRAY_TEST_27:CODE={TXTMSG3^SHOW();EVENT_DEBUG_TXT^ADD("|PRZED_LOAD");DANETESTOWE^LOAD("TESTOWE_DANE.ARR");EVENT_DEBUG_TXT^ADD("|PO_LOAD|PRZED_SAVE");DANETESTOWE^SAVE("TEST_ZAPISU.ARR");EVENT_DEBUG_TXT^ADD("|PO_SAVE");DANETESTOWE^SEND("TEST");TXTMSG3^SETTEXT(["SCIEZKA_EVENTY|"+EVENT_DEBUG_TXT^GET()]);}
|
||||
|
||||
OBJECT=__INIT__
|
||||
__INIT__:TYPE=BEHAVIOUR
|
||||
__INIT__:CODE={TXTMSG^SETTEXT(["Test"+DEBUG_VALUE+"_Test_tablic"]);TXTMSG^SHOW();TXTMSG2^SHOW();ARRAY_TEST_1^RUN();}
|
||||
70
dane/game/debug/arraytest/Array_test2.cnv
Normal file
70
dane/game/debug/arraytest/Array_test2.cnv
Normal file
@@ -0,0 +1,70 @@
|
||||
OBJECT=KEYBOARD
|
||||
KEYBOARD:TYPE=KEYBOARD
|
||||
KEYBOARD:ONKEYDOWN^LEFT={DEBUG_VALUE^DEC();DEBUG^GOTO("LOGIC_TEST");}
|
||||
KEYBOARD:ONKEYDOWN^RIGHT={TXTMSG^SETTEXT(["Przejscie_do_test_"+[DEBUG_VALUE+1]]);DEBUG_VALUE^INC();DEBUG^GOTO("ANIMO_TEST");}
|
||||
KEYBOARD:ONKEYDOWN^ESC={EXITPROGRAM^RUN();}
|
||||
KEYBOARD:DESCRIPTION=CZEMU_SIE_CRASHUJE_JAK_PROBUJE_PRZEJSC_DALEJ
|
||||
|
||||
OBJECT=ARIAL14
|
||||
ARIAL14:TYPE=FONT
|
||||
ARIAL14:DEF_ARIAL_STANDARD_14=$COMMON\ARIAL14.FNT
|
||||
|
||||
OBJECT=TXTMSG
|
||||
TXTMSG:TYPE=TEXT
|
||||
TXTMSG:VISIBLE=TRUE
|
||||
TXTMSG:HYPERTEXT=
|
||||
TXTMSG:FONT=ARIAL14
|
||||
TXTMSG:TOCANVAS=TRUE
|
||||
TXTMSG:RECT=0,0,800,250
|
||||
TXTMSG:PRIORITY=10000
|
||||
TXTMSG:HJUSTIFY=CENTER
|
||||
TXTMSG:VJUSTIFY=TOP
|
||||
TXTMSG:MONITORCOLLISION=FALSE
|
||||
TXTMSG:MONITORCOLLISIONALPHA=FALSE
|
||||
|
||||
OBJECT=TXTMSG2
|
||||
TXTMSG2:TYPE=TEXT
|
||||
TXTMSG2:VISIBLE=TRUE
|
||||
TXTMSG2:HYPERTEXT=
|
||||
TXTMSG2:FONT=ARIAL14
|
||||
TXTMSG2:TOCANVAS=TRUE
|
||||
TXTMSG2:RECT=0,0,800,250
|
||||
TXTMSG2:PRIORITY=10000
|
||||
TXTMSG2:HJUSTIFY=CENTER
|
||||
TXTMSG2:VJUSTIFY=BOTTOM
|
||||
TXTMSG2:MONITORCOLLISION=FALSE
|
||||
TXTMSG2:MONITORCOLLISIONALPHA=FALSE
|
||||
|
||||
OBJECT=DANETESTOWE
|
||||
DANETESTOWE:TYPE=ARRAY
|
||||
|
||||
OBJECT=ARRAY_TEMP_NAME
|
||||
ARRAY_TEMP_NAME:TYPE=STRING
|
||||
ARRAY_TEMP_NAME:VALUE=
|
||||
|
||||
OBJECT=TEST_STRING
|
||||
TEST_STRING:TYPE=STRING
|
||||
TEST_STRING:VALUE=
|
||||
TEST_STRING:DEFAULT=
|
||||
TEST_STRING:ONCHANGED={TXTMSG2^SETTEXT(TEST_STRING^GET());}
|
||||
TEST_STRING:TOINI=TRUE
|
||||
|
||||
OBJECT=ARRAY_TO_STRING
|
||||
ARRAY_TO_STRING:TYPE=BEHAVIOUR
|
||||
ARRAY_TO_STRING:CODE={@STRING("ARRAY_TEXT", "");ARRAY_TEMP_NAME^SET($1);ARRAY_TEXT^ADD([ARRAY_TEMP_NAME+"_"]);@LOOP("{ARRAY_TEXT^ADD(["_"+_I_]);ARRAY_TEXT^ADD(["__"+GAME^RUN(ARRAY_TEMP_NAME,"GET",_I_)]);}", "0", GAME^RUN(ARRAY_TEMP_NAME,"GETSIZE"), "1");@RETURN(ARRAY_TEXT);}
|
||||
|
||||
OBJECT=TEST_VALUE
|
||||
TEST_VALUE:TYPE=INTEGER
|
||||
TEST_VALUE:VALUE=0
|
||||
TEST_VALUE:ONCHANGED^1={TEST_STRING^ADD(ARRAY_TO_STRING^RUN("DANETESTOWE"));}
|
||||
|
||||
OBJECT=TEST_TIMER
|
||||
TEST_TIMER:TYPE=TIMER
|
||||
TEST_TIMER:ENABLED=TRUE
|
||||
TEST_TIMER:ELAPSE=100
|
||||
TEST_TIMER:TICKS=0
|
||||
TEST_TIMER:ONTICK={TEST_STRING^ADD(ARRAY_TO_STRING^RUN("DANETESTOWE"));TEST_TIMER^DISABLE();}
|
||||
|
||||
OBJECT=__INIT__
|
||||
__INIT__:TYPE=BEHAVIOUR
|
||||
__INIT__:CODE={KEYBOARD^SETAUTOREPEAT(FALSE);TEST_STRING^RESETINI();TXTMSG^SETTEXT(["Test"+DEBUG_VALUE+"_Test_tablic"]);TXTMSG^SHOW();TXTMSG2^SHOW();DANETESTOWE^ADD(0.0,1.0,0.0,0.0);TEST_STRING^ADD("BEHINITFILTERvBEHINITPLAYERvBEHROTATEv");}
|
||||
43
dane/game/debug/arraytest/Array_test3 — kopia.cnv
Normal file
43
dane/game/debug/arraytest/Array_test3 — kopia.cnv
Normal file
@@ -0,0 +1,43 @@
|
||||
OBJECT=KEYBOARD
|
||||
KEYBOARD:TYPE=KEYBOARD
|
||||
KEYBOARD:ONKEYDOWN^LEFT={DEBUG_VALUE^DEC();DEBUG^GOTO("LOGIC_TEST");}
|
||||
KEYBOARD:ONKEYDOWN^RIGHT={TXTMSG^SETTEXT(["Przejscie_do_test_"+[DEBUG_VALUE+1]]);DEBUG_VALUE^INC();DEBUG^GOTO("ANIMO_TEST");}
|
||||
KEYBOARD:ONKEYDOWN^ESC={EXITPROGRAM^RUN();}
|
||||
|
||||
OBJECT=ARIAL14
|
||||
ARIAL14:TYPE=FONT
|
||||
ARIAL14:DEF_ARIAL_STANDARD_14=$COMMON\ARIAL14.FNT
|
||||
|
||||
OBJECT=TXTMSG
|
||||
TXTMSG:TYPE=TEXT
|
||||
TXTMSG:VISIBLE=TRUE
|
||||
TXTMSG:HYPERTEXT=
|
||||
TXTMSG:FONT=ARIAL14
|
||||
TXTMSG:TOCANVAS=TRUE
|
||||
TXTMSG:RECT=0,0,800,250
|
||||
TXTMSG:PRIORITY=10000
|
||||
TXTMSG:HJUSTIFY=CENTER
|
||||
TXTMSG:VJUSTIFY=TOP
|
||||
TXTMSG:MONITORCOLLISION=FALSE
|
||||
TXTMSG:MONITORCOLLISIONALPHA=FALSE
|
||||
|
||||
OBJECT=TXTMSG2
|
||||
TXTMSG2:TYPE=TEXT
|
||||
TXTMSG2:VISIBLE=TRUE
|
||||
TXTMSG2:HYPERTEXT=
|
||||
TXTMSG2:FONT=ARIAL14
|
||||
TXTMSG2:TOCANVAS=TRUE
|
||||
TXTMSG2:RECT=0,0,800,250
|
||||
TXTMSG2:PRIORITY=10000
|
||||
TXTMSG2:HJUSTIFY=CENTER
|
||||
TXTMSG2:VJUSTIFY=BOTTOM
|
||||
TXTMSG2:MONITORCOLLISION=FALSE
|
||||
TXTMSG2:MONITORCOLLISIONALPHA=FALSE
|
||||
|
||||
OBJECT=ARPRZESZKODY
|
||||
ARPRZESZKODY:TYPE=MULTIARRAY
|
||||
ARPRZESZKODY:DIMENSIONS=2
|
||||
|
||||
OBJECT=__INIT__
|
||||
__INIT__:TYPE=BEHAVIOUR
|
||||
__INIT__:CODE={KEYBOARD^SETAUTOREPEAT(FALSE);ARPRZESZKODY^SET(0,0,0);ARPRZESZKODY^SET(0,1,1);ARPRZESZKODY^SET(0,2,2);ARPRZESZKODY^SET(1,0,3);ARPRZESZKODY^SET(1,1,4);ARPRZESZKODY^SET(1,2,5);ARPRZESZKODY^SET(2,0,6);ARPRZESZKODY^SET(2,1,7);ARPRZESZKODY^SET(2,2,8);ARPRZESZKODY^SAVE("TEST.MAR");TXTMSG2^SETTEXT(ARPRZESZKODY^GETSIZE(1,1));}
|
||||
43
dane/game/debug/arraytest/Array_test3.cnv
Normal file
43
dane/game/debug/arraytest/Array_test3.cnv
Normal file
@@ -0,0 +1,43 @@
|
||||
OBJECT=KEYBOARD
|
||||
KEYBOARD:TYPE=KEYBOARD
|
||||
KEYBOARD:ONKEYDOWN^LEFT={DEBUG_VALUE^DEC();DEBUG^GOTO("LOGIC_TEST");}
|
||||
KEYBOARD:ONKEYDOWN^RIGHT={TXTMSG^SETTEXT(["Przejscie_do_test_"+[DEBUG_VALUE+1]]);DEBUG_VALUE^INC();DEBUG^GOTO("ANIMO_TEST");}
|
||||
KEYBOARD:ONKEYDOWN^ESC={EXITPROGRAM^RUN();}
|
||||
|
||||
OBJECT=ARIAL14
|
||||
ARIAL14:TYPE=FONT
|
||||
ARIAL14:DEF_ARIAL_STANDARD_14=$COMMON\ARIAL14.FNT
|
||||
|
||||
OBJECT=TXTMSG
|
||||
TXTMSG:TYPE=TEXT
|
||||
TXTMSG:VISIBLE=TRUE
|
||||
TXTMSG:HYPERTEXT=
|
||||
TXTMSG:FONT=ARIAL14
|
||||
TXTMSG:TOCANVAS=TRUE
|
||||
TXTMSG:RECT=0,0,800,250
|
||||
TXTMSG:PRIORITY=10000
|
||||
TXTMSG:HJUSTIFY=CENTER
|
||||
TXTMSG:VJUSTIFY=TOP
|
||||
TXTMSG:MONITORCOLLISION=FALSE
|
||||
TXTMSG:MONITORCOLLISIONALPHA=FALSE
|
||||
|
||||
OBJECT=TXTMSG2
|
||||
TXTMSG2:TYPE=TEXT
|
||||
TXTMSG2:VISIBLE=TRUE
|
||||
TXTMSG2:HYPERTEXT=
|
||||
TXTMSG2:FONT=ARIAL14
|
||||
TXTMSG2:TOCANVAS=TRUE
|
||||
TXTMSG2:RECT=0,0,800,250
|
||||
TXTMSG2:PRIORITY=10000
|
||||
TXTMSG2:HJUSTIFY=CENTER
|
||||
TXTMSG2:VJUSTIFY=BOTTOM
|
||||
TXTMSG2:MONITORCOLLISION=FALSE
|
||||
TXTMSG2:MONITORCOLLISIONALPHA=FALSE
|
||||
|
||||
OBJECT=ARPRZESZKODY
|
||||
ARPRZESZKODY:TYPE=MULTIARRAY
|
||||
ARPRZESZKODY:DIMENSIONS=2
|
||||
|
||||
OBJECT=__INIT__
|
||||
__INIT__:TYPE=BEHAVIOUR
|
||||
__INIT__:CODE={KEYBOARD^SETAUTOREPEAT(FALSE);ARPRZESZKODY^LOAD("TEST.MAR");ARPRZESZKODY^SET(0,20,15);ARPRZESZKODY^SAVE("TEST3.MAR");TXTMSG2^SETTEXT(ARPRZESZKODY^GET(0,1));}
|
||||
BIN
dane/game/debug/arraytest/TEST.MAR
Normal file
BIN
dane/game/debug/arraytest/TEST.MAR
Normal file
Binary file not shown.
BIN
dane/game/debug/arraytest/TEST2.MAR
Normal file
BIN
dane/game/debug/arraytest/TEST2.MAR
Normal file
Binary file not shown.
BIN
dane/game/debug/arraytest/TEST3.MAR
Normal file
BIN
dane/game/debug/arraytest/TEST3.MAR
Normal file
Binary file not shown.
BIN
dane/game/debug/arraytest/TEST_ZAPISU.ARR
Normal file
BIN
dane/game/debug/arraytest/TEST_ZAPISU.ARR
Normal file
Binary file not shown.
241
dane/game/debug/arraytest/mar_parser.py
Normal file
241
dane/game/debug/arraytest/mar_parser.py
Normal file
@@ -0,0 +1,241 @@
|
||||
#!/usr/bin/env python3
|
||||
"""
|
||||
Parser dla plików .mar (MultiArray) z gier Reksio
|
||||
"""
|
||||
|
||||
import struct
|
||||
import sys
|
||||
from pathlib import Path
|
||||
|
||||
|
||||
class MultiArrayParser:
|
||||
def __init__(self, filepath):
|
||||
self.filepath = Path(filepath)
|
||||
self.dimensions = []
|
||||
self.total_elements = 0
|
||||
self.data = {} # sparse dictionary: index -> value
|
||||
|
||||
def read_int(self, f):
|
||||
"""Czyta int32 little-endian"""
|
||||
return struct.unpack('<i', f.read(4))[0]
|
||||
|
||||
def read_double(self, f):
|
||||
"""Czyta double jako int32/10000"""
|
||||
raw = struct.unpack('<i', f.read(4))[0]
|
||||
return raw / 10000.0
|
||||
|
||||
def read_bool(self, f):
|
||||
"""Czyta bool jako byte"""
|
||||
return struct.unpack('<?', f.read(1))[0]
|
||||
|
||||
def read_string(self, f):
|
||||
"""Czyta string: [int32 length][bytes data]"""
|
||||
length = self.read_int(f)
|
||||
if length <= 0:
|
||||
return ""
|
||||
data = f.read(length)
|
||||
# Usuń null terminatory
|
||||
return data.decode('utf-8', errors='ignore').rstrip('\x00')
|
||||
|
||||
def read_variable(self, f):
|
||||
"""Czyta zmienną: [int32 type][data]"""
|
||||
data_type = self.read_int(f)
|
||||
|
||||
if data_type == 1: # INTEGER
|
||||
value = self.read_int(f)
|
||||
return ('INTEGER', value)
|
||||
elif data_type == 2: # STRING
|
||||
value = self.read_string(f)
|
||||
return ('STRING', value)
|
||||
elif data_type == 3: # BOOL
|
||||
value = self.read_bool(f)
|
||||
return ('BOOL', value)
|
||||
elif data_type == 4: # DOUBLE
|
||||
value = self.read_double(f)
|
||||
return ('DOUBLE', value)
|
||||
else:
|
||||
raise ValueError(f"Unknown data type: {data_type}")
|
||||
|
||||
def flat_to_indices(self, flat_index):
|
||||
"""Konwertuje flat index na wielowymiarowe indeksy"""
|
||||
indices = []
|
||||
remaining = flat_index
|
||||
|
||||
for i in range(len(self.dimensions) - 1, -1, -1):
|
||||
indices.insert(0, remaining % self.dimensions[i])
|
||||
remaining //= self.dimensions[i]
|
||||
|
||||
return indices
|
||||
|
||||
def indices_to_flat(self, indices):
|
||||
"""Konwertuje wielowymiarowe indeksy na flat index"""
|
||||
flat_index = 0
|
||||
multiplier = 1
|
||||
|
||||
for i in range(len(self.dimensions) - 1, -1, -1):
|
||||
flat_index += indices[i] * multiplier
|
||||
multiplier *= self.dimensions[i]
|
||||
|
||||
return flat_index
|
||||
|
||||
def parse(self):
|
||||
"""Parsuje plik .mar"""
|
||||
with open(self.filepath, 'rb') as f:
|
||||
# Czytaj liczbę wymiarów
|
||||
dimensions_count = self.read_int(f)
|
||||
print(f"Dimensions count: {dimensions_count}")
|
||||
|
||||
# Czytaj rozmiary wymiarów
|
||||
self.total_elements = 1
|
||||
for i in range(dimensions_count):
|
||||
dim_size = self.read_int(f)
|
||||
self.dimensions.append(dim_size)
|
||||
self.total_elements *= dim_size
|
||||
print(f" Dimension {i}: {dim_size}")
|
||||
|
||||
print(f"Total elements: {self.total_elements}")
|
||||
print(f"Array shape: {self.dimensions}")
|
||||
print()
|
||||
|
||||
# Czytaj elementy (sparse format)
|
||||
loaded_count = 0
|
||||
try:
|
||||
while True:
|
||||
# Sprawdź czy są jeszcze dane
|
||||
pos = f.tell()
|
||||
if f.read(1) == b'':
|
||||
break
|
||||
f.seek(pos)
|
||||
|
||||
# Czytaj indeks
|
||||
flat_index = self.read_int(f)
|
||||
|
||||
if flat_index < 0 or flat_index >= self.total_elements:
|
||||
print(f"WARNING: Index out of bounds: {flat_index}")
|
||||
break
|
||||
|
||||
# Czytaj zmienną
|
||||
var_type, var_value = self.read_variable(f)
|
||||
|
||||
# Zapisz w sparse dictionary
|
||||
self.data[flat_index] = (var_type, var_value)
|
||||
loaded_count += 1
|
||||
|
||||
except struct.error:
|
||||
pass # Koniec pliku
|
||||
|
||||
print(f"Loaded {loaded_count}/{self.total_elements} elements ({100*loaded_count/self.total_elements:.1f}% filled)")
|
||||
|
||||
def print_summary(self):
|
||||
"""Wyświetla podsumowanie"""
|
||||
print("\n" + "="*80)
|
||||
print(f"File: {self.filepath.name}")
|
||||
print(f"Dimensions: {len(self.dimensions)}D array")
|
||||
print(f"Shape: {' × '.join(map(str, self.dimensions))}")
|
||||
print(f"Total slots: {self.total_elements}")
|
||||
print(f"Filled slots: {len(self.data)}")
|
||||
print(f"Empty slots: {self.total_elements - len(self.data)}")
|
||||
print(f"Fill rate: {100*len(self.data)/self.total_elements:.1f}%")
|
||||
print("="*80)
|
||||
|
||||
def print_data(self, max_items=50):
|
||||
"""Wyświetla dane"""
|
||||
print("\nData:")
|
||||
print("-" * 80)
|
||||
|
||||
if not self.data:
|
||||
print(" (empty)")
|
||||
return
|
||||
|
||||
for i, (flat_index, (var_type, var_value)) in enumerate(sorted(self.data.items())):
|
||||
if i >= max_items:
|
||||
remaining = len(self.data) - max_items
|
||||
print(f" ... and {remaining} more items")
|
||||
break
|
||||
|
||||
indices = self.flat_to_indices(flat_index)
|
||||
indices_str = '[' + ']['.join(map(str, indices)) + ']'
|
||||
|
||||
# Formatuj wartość
|
||||
if var_type == 'STRING':
|
||||
value_str = f'"{var_value}"'
|
||||
elif var_type == 'BOOL':
|
||||
value_str = 'true' if var_value else 'false'
|
||||
else:
|
||||
value_str = str(var_value)
|
||||
|
||||
print(f" {indices_str:20s} (flat: {flat_index:5d}) = {var_type:8s} {value_str}")
|
||||
|
||||
def export_to_python(self, output_file=None):
|
||||
"""Eksportuje do Pythona jako nested lists"""
|
||||
if output_file is None:
|
||||
output_file = self.filepath.with_suffix('.py')
|
||||
|
||||
def create_nested_structure(dims):
|
||||
"""Tworzy zagnieżdżoną strukturę list"""
|
||||
if len(dims) == 1:
|
||||
return [None] * dims[0]
|
||||
else:
|
||||
return [create_nested_structure(dims[1:]) for _ in range(dims[0])]
|
||||
|
||||
def set_value(arr, indices, value):
|
||||
"""Ustawia wartość w zagnieżdżonej strukturze"""
|
||||
for idx in indices[:-1]:
|
||||
arr = arr[idx]
|
||||
arr[indices[-1]] = value
|
||||
|
||||
# Stwórz strukturę
|
||||
nested = create_nested_structure(self.dimensions)
|
||||
|
||||
# Wypełnij danymi
|
||||
for flat_index, (var_type, var_value) in self.data.items():
|
||||
indices = self.flat_to_indices(flat_index)
|
||||
set_value(nested, indices, (var_type, var_value))
|
||||
|
||||
# Zapisz do pliku
|
||||
with open(output_file, 'w', encoding='utf-8') as f:
|
||||
f.write(f"# Generated from {self.filepath.name}\n")
|
||||
f.write(f"# Dimensions: {self.dimensions}\n\n")
|
||||
f.write(f"data = {nested!r}\n")
|
||||
|
||||
print(f"\nExported to: {output_file}")
|
||||
|
||||
|
||||
def main():
|
||||
if len(sys.argv) < 2:
|
||||
print("Usage: mar_parser.py <file.mar> [--export] [--verbose] [--max-items N]")
|
||||
print()
|
||||
print("Options:")
|
||||
print(" --export Export to Python file")
|
||||
print(" --verbose Show all data items")
|
||||
print(" --max-items N Show max N items (default: 50)")
|
||||
sys.exit(1)
|
||||
|
||||
filepath = sys.argv[1]
|
||||
export = '--export' in sys.argv
|
||||
verbose = '--verbose' in sys.argv
|
||||
|
||||
max_items = 50
|
||||
if '--max-items' in sys.argv:
|
||||
idx = sys.argv.index('--max-items')
|
||||
if idx + 1 < len(sys.argv):
|
||||
max_items = int(sys.argv[idx + 1])
|
||||
|
||||
if verbose:
|
||||
max_items = 999999
|
||||
|
||||
# Parsuj plik
|
||||
parser = MultiArrayParser(filepath)
|
||||
parser.parse()
|
||||
|
||||
# Pokaż wyniki
|
||||
parser.print_summary()
|
||||
parser.print_data(max_items=max_items)
|
||||
|
||||
# Eksportuj jeśli trzeba
|
||||
if export:
|
||||
parser.export_to_python()
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
150
dane/game/debug/arraytest/mar_writer.py
Normal file
150
dane/game/debug/arraytest/mar_writer.py
Normal file
@@ -0,0 +1,150 @@
|
||||
#!/usr/bin/env python3
|
||||
"""
|
||||
Narzędzie do tworzenia plików .mar
|
||||
"""
|
||||
|
||||
import struct
|
||||
import sys
|
||||
|
||||
|
||||
class MultiArrayWriter:
|
||||
def __init__(self, dimensions):
|
||||
"""
|
||||
dimensions: list of ints, np. [3, 4, 2] dla tablicy [3][4][2]
|
||||
"""
|
||||
self.dimensions = dimensions
|
||||
self.total_elements = 1
|
||||
for dim in dimensions:
|
||||
self.total_elements *= dim
|
||||
self.data = {} # sparse: flat_index -> (type, value)
|
||||
|
||||
def write_int(self, f, value):
|
||||
f.write(struct.pack('<i', value))
|
||||
|
||||
def write_double(self, f, value):
|
||||
f.write(struct.pack('<i', int(value * 10000)))
|
||||
|
||||
def write_bool(self, f, value):
|
||||
f.write(struct.pack('<?', value))
|
||||
|
||||
def write_string(self, f, value):
|
||||
data = value.encode('utf-8')
|
||||
self.write_int(f, len(data))
|
||||
f.write(data)
|
||||
|
||||
def write_variable(self, f, var_type, value):
|
||||
"""type: 1=int, 2=string, 3=bool, 4=double"""
|
||||
self.write_int(f, var_type)
|
||||
|
||||
if var_type == 1:
|
||||
self.write_int(f, value)
|
||||
elif var_type == 2:
|
||||
self.write_string(f, value)
|
||||
elif var_type == 3:
|
||||
self.write_bool(f, value)
|
||||
elif var_type == 4:
|
||||
self.write_double(f, value)
|
||||
|
||||
def indices_to_flat(self, indices):
|
||||
"""Konwertuje [x][y][z] na flat index"""
|
||||
flat = 0
|
||||
multiplier = 1
|
||||
|
||||
for i in range(len(self.dimensions) - 1, -1, -1):
|
||||
flat += indices[i] * multiplier
|
||||
multiplier *= self.dimensions[i]
|
||||
|
||||
return flat
|
||||
|
||||
def set(self, indices, var_type, value):
|
||||
"""
|
||||
Ustawia wartość pod wielowymiarowymi indeksami
|
||||
|
||||
indices: list of ints, np. [1, 2, 0]
|
||||
var_type: 1=int, 2=string, 3=bool, 4=double
|
||||
value: wartość
|
||||
"""
|
||||
if len(indices) != len(self.dimensions):
|
||||
raise ValueError(f"Wrong number of indices: got {len(indices)}, expected {len(self.dimensions)}")
|
||||
|
||||
for i, idx in enumerate(indices):
|
||||
if idx < 0 or idx >= self.dimensions[i]:
|
||||
raise ValueError(f"Index {i} out of bounds: {idx} (max: {self.dimensions[i]-1})")
|
||||
|
||||
flat_index = self.indices_to_flat(indices)
|
||||
self.data[flat_index] = (var_type, value)
|
||||
|
||||
def set_int(self, indices, value):
|
||||
self.set(indices, 1, value)
|
||||
|
||||
def set_string(self, indices, value):
|
||||
self.set(indices, 2, value)
|
||||
|
||||
def set_bool(self, indices, value):
|
||||
self.set(indices, 3, value)
|
||||
|
||||
def set_double(self, indices, value):
|
||||
self.set(indices, 4, value)
|
||||
|
||||
def save(self, filepath):
|
||||
"""Zapisuje do pliku .mar"""
|
||||
with open(filepath, 'wb') as f:
|
||||
# Liczba wymiarów
|
||||
self.write_int(f, len(self.dimensions))
|
||||
|
||||
# Rozmiary wymiarów
|
||||
for dim in self.dimensions:
|
||||
self.write_int(f, dim)
|
||||
|
||||
# Zapisz elementy (posortowane po indeksie)
|
||||
for flat_index in sorted(self.data.keys()):
|
||||
var_type, value = self.data[flat_index]
|
||||
self.write_int(f, flat_index)
|
||||
self.write_variable(f, var_type, value)
|
||||
|
||||
print(f"Saved to {filepath}")
|
||||
print(f" Dimensions: {self.dimensions}")
|
||||
print(f" Total slots: {self.total_elements}")
|
||||
print(f" Filled slots: {len(self.data)}")
|
||||
print(f" Fill rate: {100*len(self.data)/self.total_elements:.1f}%")
|
||||
|
||||
|
||||
def example_usage():
|
||||
"""Przykład użycia"""
|
||||
# Stwórz tablicę 2D [5][3]
|
||||
mar = MultiArrayWriter([5, 3])
|
||||
|
||||
# Wypełnij danymi
|
||||
mar.set_string([0, 0], "Reksio")
|
||||
mar.set_int([0, 1], 123)
|
||||
mar.set_double([1, 2], 3.14159)
|
||||
mar.set_bool([2, 0], True)
|
||||
mar.set_string([4, 2], "Koniec!")
|
||||
|
||||
# Zapisz
|
||||
mar.save('/tmp/example.mar')
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
if len(sys.argv) > 1 and sys.argv[1] == '--example':
|
||||
example_usage()
|
||||
else:
|
||||
print("MultiArray Writer - narzędzie do tworzenia plików .mar")
|
||||
print()
|
||||
print("Użycie w kodzie:")
|
||||
print()
|
||||
print(" from mar_writer import MultiArrayWriter")
|
||||
print()
|
||||
print(" # Stwórz tablicę [3][4][2]")
|
||||
print(" mar = MultiArrayWriter([3, 4, 2])")
|
||||
print()
|
||||
print(" # Ustaw wartości")
|
||||
print(" mar.set_string([0, 0, 0], 'Hello')")
|
||||
print(" mar.set_int([1, 2, 1], 42)")
|
||||
print(" mar.set_double([2, 3, 0], 3.14)")
|
||||
print(" mar.set_bool([0, 1, 1], True)")
|
||||
print()
|
||||
print(" # Zapisz")
|
||||
print(" mar.save('output.mar')")
|
||||
print()
|
||||
print("Uruchom z --example aby stworzyć przykładowy plik")
|
||||
BIN
dane/game/debug/arraytest/testowe_dane.arr
Normal file
BIN
dane/game/debug/arraytest/testowe_dane.arr
Normal file
Binary file not shown.
BIN
dane/game/debug/arraytest/testowe_dane_jeden_typ.arr
Normal file
BIN
dane/game/debug/arraytest/testowe_dane_jeden_typ.arr
Normal file
Binary file not shown.
Reference in New Issue
Block a user