From 4d4d2c7f3d8bd3ef30576f9d8f7fad52d99f7c78 Mon Sep 17 00:00:00 2001 From: Saffron Date: Fri, 19 Apr 2024 15:23:21 +0200 Subject: [PATCH] Work in character screen. Code cleaned. --- art/aseprite/charcrtn.aseprite | Bin 1784 -> 2346 bytes art/aseprite/enemies.aseprite | Bin 4720 -> 6255 bytes art/aseprite/menu_background.aseprite | Bin 0 -> 769 bytes build.bat | 14 ++--- dsk/srangers.com | Bin 26214 -> 26156 bytes src/character.c | 12 +++++ src/character.h | 12 +++++ src/{charcreation.c => createpcscr.c} | 4 +- src/{charcreation.h => createpcscr.h} | 4 +- src/encounter.c | 3 +- src/{font.c => fnt.c} | 13 +++-- src/{font.h => fnt.h} | 4 +- src/gfx.c | 18 +++---- src/gfx.h | 2 + src/ingame.c | 73 ++++++++++++-------------- src/ingame.h | 6 ++- src/intro.c | 30 ++++++++--- src/main.c | 14 +++-- src/main.h | 2 +- src/procgen.c | 2 +- src/{random.c => rnd.c} | 2 +- src/{random.h => rnd.h} | 4 +- src/startscr.c | 13 +++-- src/startscr.h | 2 +- 24 files changed, 136 insertions(+), 98 deletions(-) create mode 100644 art/aseprite/menu_background.aseprite create mode 100644 src/character.c create mode 100644 src/character.h rename src/{charcreation.c => createpcscr.c} (98%) rename src/{charcreation.h => createpcscr.h} (90%) rename src/{font.c => fnt.c} (96%) rename src/{font.h => fnt.h} (95%) rename src/{random.c => rnd.c} (98%) rename src/{random.h => rnd.h} (93%) diff --git a/art/aseprite/charcrtn.aseprite b/art/aseprite/charcrtn.aseprite index d27af1ed5e9e4570eb68489ff2b61dafa7742169..9e456d5342e0c3eee93f505ad744eb3d619c9ca6 100644 GIT binary patch delta 2117 zcmeytyGn>ji*q7V9q%d*28LfBSr}3n7#LV4_DW7xV2ota=9pZ~C|y67^ZXnIfwswa zYYaC={`~)cTigL21DR7RKQEi7@S))BgIi^haqC`Qjr#e#GB38v?A8JEf0@7b1!eQf z{8`(cpe_67^7c~8sF&7;`;Y2>S|J!T>CT_XXVWJBEM9Wv4|B(p?Z-Ckv3vjW!efo~ zSN}fzxpv2KUDw)q>#QsJwwr(OF1ub|SW|bpN%BvTg^c=-s!E3aqTf^BuGeR^+1D1| z%dpd3R%T}N^DqAw|EPRZe_rV)|9w;T`tzSYq&vKiJG1_r%%9B1E3RiX$FtIFl1e}64^zL}_YEY5+uz+Fb0ZOhruF*VvJ^v{VW zR@Bez_;K*(e*5g%*Mp|q^ZLYn;(bjm!>#|7f4U=h>K?9XDf}VMTg9~@__6%FzO(fo zq@ISG3Ox~5vtKhw@rUT|FVRc09oVa$)o1^5-~O-fUhB52ruzGqewd$Y|94x``ya2g z8LR*FFP`$#|6=}+$*)+B{L$}c+Q%0A#W3N2ZM5?5{q=Hnv;JAk=BN{n{K6Z@}Nv+zTF(tq=p{mSL$C(htV@jRA z*SY_mUAO=3zgM%j9{XMUd;8b=n;8Q0pNacF`oH$`vHbOom-%@wnp< z@P;3WHM8m!f3)Y+ue|*GZ}-FcfdBE{o7(h#pXr=!Z}R{5?|R+p`pf^Cx$19ZC4AcU zUt!lF``pqEHO~WnGpqCO{C~lG%J#0@nfL#%KbU@erg+sqMt$G5Cbj)C-@2Vl zKPLL}9NKTVdQ<&WX_qbbc2?8>Cx3i@#<>27xYIf&jk>q&8ukLW+LWVC{JVeC=;nV3 z+nfK6FFX2Yr*}ly8Tn`aKc{_Yyl=0jp<5=;_0c~5%=&YA-~O+T-QXlw^6clc{ilNi z4o4a<{=0j{-2DY|`_9aq|MRKnXZ9agmvrVYm~QoJsah>>(8WJ};ml>btRB1WixA4# z+soCu{%!r0ML)mmM_oKE9U>4>_TyXsF1FBTPsJ5V=WGwquPl_5VP#BA+wmvn0TCf7AH;upNQV(QiV*8a2c{#{A`+WzU!*!D3deQEFFo5jhD|G56G zKWye@7h>yXrtrP#kLVxyF8P$KNB54tKlT4=A&-iXcuLf){aL@8J()iV{Wz8>`H$FM*br~hBgv(s{ZWajf=|9|WEbgn9%Xj*>$+}&sEpZ?d;;Q4L;^P~0W z`qCy1;pvB`d;Z;Ozbg68zn>p>f2u$Dqx{!@)(^Ws)jvH_-}YEXcG+^)dPd&V`v0dz z8h>&>e|UP%Pv$>Q?GL{C^?UuNRTJ6gTGszR`RCJ_zwhhqV@>{hyL{a5d*=L~Gw1)T zJ$=y&g(dsx_5A&PM{oVKR@_%+JN;L-@uwCp42tHlNP_Qy_%`}x#nec!v^+q;Dx^?R>7aQ@3w zkq7-O+L!K@%F~bKe8G& z=L0{wDBKBH|L3{h#@EsOEN`D4{&Dt4|MTO2Z_oS1_V)i(ms|UHoOGAde4O3x?#WVr z`|R%$rx^Wu1H**EImfQ^^-pG~pR_hR=*yWu=U#5-*#EP2!%fDM1v>lx3%{yyf3U@M zc8sd&;pC-1UzYM6mE^PVgJHo6wrNv@ysXUg-)iS|49ZTcX5>^g`4 zh0uQ~HQW9}f-LImocDZB9<6^?Q@$Yk&&)aX@A;lQ)qh)4u3-K@==jfXOITu0tqz_z zbDp+>di^oCw#S}p*Sz}>d_Mij`J2aE?Jl~mKXSjhq<-(N7Nbj-Jrlp4TJQhPY_DIw zL!HUL_sh(M_FMi>_q;HR?|4(20**__7VUx<*`Yen4cC|&1mVd1OzTk{mvBkeL!p{o+-1%3@ ztG53C-A{Y}@BDplvvTaF|GaazZQip<^4;>~Wo>)j*Ej!pQf_d>FzVC&dvTBc^Q9^5 zRc(y_I<5TE@A)ehG5;yCpZ(>(-jB1bKYG7R6Z*Sf6kZfo98c)t(Cj$yY|0(li4i4f0b(+&9j*AANxQ1Y88js_4>?JTTKDxlBhNS delta 1554 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 literal 0 HcmV?d00001 diff --git a/build.bat b/build.bat index 2c9ab5b..70dca05 100644 --- a/build.bat +++ b/build.bat @@ -40,10 +40,12 @@ cd ..\.. SDCC --code-loc %ADDR_CODE% --data-loc %ADDR_DATA% --disable-warning 196 -mz80 --no-std-crt0 --opt-code-size fusion.lib -L %LIBDIR% %INC1% %INC2% %INC3% %INC4% %INC5% %INC6% %INC7% %INC8% %INC9% %INCA% %INCB% %INCC% %INCD% %INCE% %INCF% -c src\startscr.c -SDCC --code-loc %ADDR_CODE% --data-loc %ADDR_DATA% --disable-warning 196 -mz80 --no-std-crt0 --opt-code-size fusion.lib -L %LIBDIR% %INC1% %INC2% %INC3% %INC4% %INC5% %INC6% %INC7% %INC8% %INC9% %INCA% %INCB% %INCC% %INCD% %INCE% %INCF% -c src\charcreation.c - SDCC --code-loc %ADDR_CODE% --data-loc %ADDR_DATA% --disable-warning 196 -mz80 --no-std-crt0 --opt-code-size fusion.lib -L %LIBDIR% %INC1% %INC2% %INC3% %INC4% %INC5% %INC6% %INC7% %INC8% %INC9% %INCA% %INCB% %INCC% %INCD% %INCE% %INCF% -c src\intro.c +SDCC --code-loc %ADDR_CODE% --data-loc %ADDR_DATA% --disable-warning 196 -mz80 --no-std-crt0 --opt-code-size fusion.lib -L %LIBDIR% %INC1% %INC2% %INC3% %INC4% %INC5% %INC6% %INC7% %INC8% %INC9% %INCA% %INCB% %INCC% %INCD% %INCE% %INCF% -c src\character.c + +SDCC --code-loc %ADDR_CODE% --data-loc %ADDR_DATA% --disable-warning 196 -mz80 --no-std-crt0 --opt-code-size fusion.lib -L %LIBDIR% %INC1% %INC2% %INC3% %INC4% %INC5% %INC6% %INC7% %INC8% %INC9% %INCA% %INCB% %INCC% %INCD% %INCE% %INCF% -c src\createpcscr.c + SDCC --code-loc %ADDR_CODE% --data-loc %ADDR_DATA% --disable-warning 196 -mz80 --no-std-crt0 --opt-code-size fusion.lib -L %LIBDIR% %INC1% %INC2% %INC3% %INC4% %INC5% %INC6% %INC7% %INC8% %INC9% %INCA% %INCB% %INCC% %INCD% %INCE% %INCF% -c src\menu.c SDCC --code-loc %ADDR_CODE% --data-loc %ADDR_DATA% --disable-warning 196 -mz80 --no-std-crt0 --opt-code-size fusion.lib -L %LIBDIR% %INC1% %INC2% %INC3% %INC4% %INC5% %INC6% %INC7% %INC8% %INC9% %INCA% %INCB% %INCC% %INCD% %INCE% %INCF% -c src\procgen.c @@ -52,17 +54,17 @@ SDCC --code-loc %ADDR_CODE% --data-loc %ADDR_DATA% --disable-warning 196 -mz80 - SDCC --code-loc %ADDR_CODE% --data-loc %ADDR_DATA% --disable-warning 196 -mz80 --no-std-crt0 --opt-code-size fusion.lib -L %LIBDIR% %INC1% %INC2% %INC3% %INC4% %INC5% %INC6% %INC7% %INC8% %INC9% %INCA% %INCB% %INCC% %INCD% %INCE% %INCF% -c src\encounter.c -SDCC --code-loc %ADDR_CODE% --data-loc %ADDR_DATA% --disable-warning 196 -mz80 --no-std-crt0 --opt-code-size fusion.lib -L %LIBDIR% %INC1% %INC2% %INC3% %INC4% %INC5% %INC6% %INC7% %INC8% %INC9% %INCA% %INCB% %INCC% %INCD% %INCE% %INCF% -c src\font.c +SDCC --code-loc %ADDR_CODE% --data-loc %ADDR_DATA% --disable-warning 196 -mz80 --no-std-crt0 --opt-code-size fusion.lib -L %LIBDIR% %INC1% %INC2% %INC3% %INC4% %INC5% %INC6% %INC7% %INC8% %INC9% %INCA% %INCB% %INCC% %INCD% %INCE% %INCF% -c src\fnt.c SDCC --code-loc %ADDR_CODE% --data-loc %ADDR_DATA% --disable-warning 196 -mz80 --no-std-crt0 --opt-code-size fusion.lib -L %LIBDIR% %INC1% %INC2% %INC3% %INC4% %INC5% %INC6% %INC7% %INC8% %INC9% %INCA% %INCB% %INCC% %INCD% %INCE% %INCF% -c src\gfx.c SDCC --code-loc %ADDR_CODE% --data-loc %ADDR_DATA% --disable-warning 196 -mz80 --no-std-crt0 --opt-code-size fusion.lib -L %LIBDIR% %INC1% %INC2% %INC3% %INC4% %INC5% %INC6% %INC7% %INC8% %INC9% %INCA% %INCB% %INCC% %INCD% %INCE% %INCF% -c src\snd.c +SDCC --code-loc %ADDR_CODE% --data-loc %ADDR_DATA% --disable-warning 196 -mz80 --no-std-crt0 --opt-code-size fusion.lib -L %LIBDIR% %INC1% %INC2% %INC3% %INC4% %INC5% %INC6% %INC7% %INC8% %INC9% %INCA% %INCB% %INCC% %INCD% %INCE% %INCF% -c src\rnd.c + SDCC --code-loc %ADDR_CODE% --data-loc %ADDR_DATA% --disable-warning 196 -mz80 --no-std-crt0 --opt-code-size fusion.lib -L %LIBDIR% %INC1% %INC2% %INC3% %INC4% %INC5% %INC6% %INC7% %INC8% %INC9% %INCA% %INCB% %INCC% %INCD% %INCE% %INCF% -c src\system.c -SDCC --code-loc %ADDR_CODE% --data-loc %ADDR_DATA% --disable-warning 196 -mz80 --no-std-crt0 --opt-code-size fusion.lib -L %LIBDIR% %INC1% %INC2% %INC3% %INC4% %INC5% %INC6% %INC7% %INC8% %INC9% %INCA% %INCB% %INCC% %INCD% %INCE% %INCF% -c src\random.c - -SDCC --code-loc %ADDR_CODE% --data-loc %ADDR_DATA% --disable-warning 196 -mz80 --no-std-crt0 --opt-code-size fusion.lib -L %LIBDIR% %INC1% %INC2% %INC3% %INC4% %INC5% %INC6% %INC7% %INC8% %INC9% %INCA% %INCB% %INCC% %INCD% %INCE% %INCF% src\main.c startscr.rel charcreation.rel intro.rel menu.rel procgen.rel ingame.rel encounter.rel font.rel gfx.rel snd.rel system.rel random.rel src\audio\audio.rel +SDCC --code-loc %ADDR_CODE% --data-loc %ADDR_DATA% --disable-warning 196 -mz80 --no-std-crt0 --opt-code-size fusion.lib -L %LIBDIR% %INC1% %INC2% %INC3% %INC4% %INC5% %INC6% %INC7% %INC8% %INC9% %INCA% %INCB% %INCC% %INCD% %INCE% %INCF% src\main.c startscr.rel intro.rel character.rel createpcscr.rel menu.rel procgen.rel ingame.rel encounter.rel fnt.rel gfx.rel snd.rel rnd.rel system.rel src\audio\audio.rel SET cpath=%~dp0 diff --git a/dsk/srangers.com b/dsk/srangers.com index fbc18e57898466ac5ff907e85177213674193590..a9fa66eafb824b116a6e0392747d3c09c4099776 100644 GIT binary patch delta 12019 zcmaEMhH=dqMwPR?>4*K8)_*lVdrjMTeYhOoRS^4R)JNm99R+G_qUG0_7pes-#UhCOs77uf@tPbAz(hsspnEBLEvnTLGAVfaMgTZ zS*BB;p{hf{e3n!5q(O>L{#7glnR<=UjzQcA%(PWtJzL2r!F+bPsWix}YfOjk8Jul3 zsNH_*o&m^l@dn0!6$>UYiq+pUIIGQk_@2SpFfe&W`tUsi#lko7AYp*dYu!EEb z1sb1q3sYoZczU)V@FPfMaiHLWEM7R`9*Z?BjjwWmc5uS-A>;e|{R$PrN&UIBW z0xYh$7fm<`B771}I0qtp6(l@ao_TG3Gb>gvbfO7Ey)Y3?80v*-Xu?o0EJhQCctLRk zlCS_MH2ols+6xk&9L*A>5^n&?B4}}bww&3H=_@!cPaZzS3W`srv$G~ku$D5_#7(|n zAUSyjs}tj_$*);8>Wkz4)-nFw#&AlX^WoE{pp{Vy?rzwYWGyIbz~|8CyDyJ`QQLe%`ZTk;pG8LZ|fNX`Gd zb${+o`*yeP@7;OdA01_X*YN2bJ6zl3%WSF^U<>};E&0FxZuy_P<$v$i{Q#NscN&9& z?A^Mbf2T1jh~BOH^;fYn4kX5Tx9<1fX^f}zCmXO!GL}#FVwYhopPbIF%UCmcD!Vxg z8;4@$M=qsojjFOp1UTFv(8q7 zRgd9t{N(+d6%gf8lY_ZL>Z{}OK~DRsSRH2uDrc06<8qWr5gDlKt$6!<)r^j%3B9B&0oEbxGh%lo))7uSN4?$jlxc1{mUl&0JhKh|EhDWcS z&EdRwP*;JOTjIU2o$GEphFJ#B{?;qP(xV0|BLjoPRfMUaz|mubgp|_6I27*WxTjhZ z7JLefizi3&DWoq3JLM-R(iFe^xBPk6><80bv!4v>@0S0%TmJiQ z-LGrRck6!NW4QD};I7#prn_c;L301@mjAz7_wO3(-Matx7%rU`_^UWI?r$E08iOVz zr~a*D*sj42s!*8}TUrV^!{kz-tE#Hpk zZr}HGKV`S0NAKqSxSRI#=~=KMkPc7?H^=|2W9$kyHokiFZr-1}X@8;eT9YRy^J_BJ zP44BFst2V_P-#;x!KPRj$7#j@QL25n6jV0cHTidF6aQV4|A#m6L+sFo6g_uMejS>| zf7j&q;c5Kfq;Az3x806WgK>TSNvj3~vlGE=K``s#Oc$$WINPcY!R$sb+Yrn~1hXB% zY?_=UAj`Q@Uy+l+@~2h*YjFFSq3dpNRLL$p*Lfm!*B}GPtr+Q3J^?X4Uq@MOu zy#-J8YC&Z|Ino&^hXgLpX*&RI#p+U=)2 zgdutb>cQ#{c?g3o0MTH}*}+_eO0cYk7KEn^aTuQ>8^cpQxu<87c|U%X0Jn4CJP(Mm zyozFACxKO%K(z6KwBDWIijy zf7TVmf`>6k92Uk9{en-=E(Ha$JVXz#q88X9uo%ot5a(*^IM!O|L13#?j!`K%t_*)+l0?I*y(2f(5Sz&_Ft2I<&- z0F;{a1fHJd!I^hk%{4{9uLTLJ%#Y6dJ0c-K$-I_)O~Oj77!I61$qitRiq%Pa6nZt zIa^dR18U;>a5?^~iaZQY^)5bD=0g)sfd~ts2~U6si@}5;ZTiV?MD0wH zU}7KFhs$wXRh-QLa*<*tLij7F)Y2V~N zF&o2O5_jwV9a{iuaMk@k$8fj&uhzu4{coKVto|xa29@`q8dVQkp{gA{>oNJam{iyc z{f{4w4<248aX0SY-LU`JNt%+Hnwp%iAuS9BXdNN-k6A(W=vfb)(1UW&8bI=>9p_i$ zr;t+r=~;+565iXv>LzE4OL0SmltETa5SLPe@Ih6^UU5*Bu~(e=aEmxfO8Tofb@Byq zE%RJSSo}+Pt`C>vyb4OBdLd60^AQpTC=!JriOGf%A|}Nk7Pwbs)f;E4z-=`l4$^y^ z5O=no|7@Wkye;m>;K~rp5YBLR*5pbFBXCvsk5Pl=8k2$)qy?cgG45_2+ubyFrO9!M zy>VuYXN6_&K0FDoo9h_1E3o}FV_=qG2lGuC>==#u;$V{3n8C6PP+1eG?AcjSU%y)4 zHT%zSx9UoOBq_ms_Pr!1BE_Y^ zkq8PQ2F1QOGX}*8Afg{cOa~EDL0xW8Kbi5VVwp6!pRCBh{8+IT!Up%5*0F#u*BJUqK9`)o+hOo zG#wm@3haN)7#I%E6SeA%+pfU>VaDgC+!%FX2jWX8O@9X_1-p{NHZ}?&xreL!f=vNSVn6`oEigXo#M>6X?6_a z`6thMOb(QBVmH%Q6lAdc3DQu1c2?BgI+kk+x8k(y>h4ZsxfQ2%w~po51AjIK#XYi| zoSZKYi)kEQp>a4)3p;AoIDA&)@JIE-pEM4iQ9mrMc{p0_aJ|~$C2EIHsvUl(c34>b zu!Z{JSoOnA>W7!BAGXm1nUe@6FKE_-IPn^XXDJ=tuXOl{(qT^J!+OexgOv|gC?B4y zeE5*^;pfVSc~lM?svHheIb5xBc!A2{qbi4AsvPE1J#4IcI70Pst?J=Ls)vuO9)6>G zSWxY-ncCqtu<2hk4_j*-UJYj7lso)S?y$1_VGsGkx$=i6$sgV>fB264VFyNq!)gkL zy%i1@C>)-uaCn!(;rj}QSriXzC?57zJY1xBc)H@@J&K1PDjsH2I;^d9I6&!esS?Q1 z65#N#nXD);$;0vVtez}5J`Tr$1q9FqB+vyE&;>Nm1q{#yEYJlUPz7W-Q5_M0DlN$q zfi94ME|7sPP=GE_fh@qND8ZA1Du5OkjEa&xD1iYIKnV zl)wN9pacd;03|RCRgrxLl12#$L3K2D3#y~J8zg|@ZjbJfHJWKEtZFT$~h;i(?T?#Vow%8YuG z4K$U_pvBZ(@Zi?hyM8Qp-B|B}n=@Q@%l~aZbxHef9G4ycWbn`f_x4k6+D}1EwN6cS z#<q2~~3V)MQ635kV*qq(LJE zY*?C>Dr4MaxOye13T8nL2Fb&PTA(o;MJ5KzI-~P(R_Eis8lM%L{7@^U{yeA^bP_SU zZ~-KBCB*oo)djGOB8Se?v$3HcLBlMJ3>-%x&9$eBv*MnfU2OhQaaP>pv(+IVYY%SM z5QWNtYWK6d%sv|HF&uW%t=OnhWF;04ZefE4$xlWZD>86AR=gMoGKBZ(S?<7(py9EK zjT%=cU(gn>KN)g z4om1MvNJpdIRUH(?Bct1|L$)4s}YOaZ&0s2hN?U_d7qBB*~Pf0FmHf-(FpNH2gnz* z!G=S8Aq;gRxCOn-Y%;g51MhYpaE%O#3A+oE7wTH`K-)cFzfGR6Ys-%;5M{>!QdEy3 zrg$LkZXHXx^4&Vt^1E&Vb_{ph*!(N*_OZLabv_iQcqHy_9S=yBxBRY~5J;8}B+Kvq z*7;bR;)%GsbsQjB&T_?5ad+#uKy2=E#WSFm=UEVOF79rfNV(zxkSF~>NpAhu$xHQ2 z8RI73*3;tL=nERI1r7A^>5DOXOjgyGuaEPEMyVnvgXC*wiG#-AWr*CWm?qz6QO7ml5U_N>_%Jrkttu#JHtxIWj6K{DK zY28X=W8gGn$OMlrg2wUwDqc#PoNC~}=3)e9t~T&zx|KHhkAZ{n3PYa5zJ}liKB)5o zGUM(v7K{A5c`RxSn!YYtm(n=n?iT;QYxa*JGC&%vJ>O8e{#M%GI)=M#ETBQga}429 zwhA0?ov)G+_cT0cXE%{YoPLdbjTX-SXeh`29i6at`;SM~%;34=_Gh z`PKNS@mZP4VMZEEm(nIT7|AfoOrC2bA#n-hJy`GfZrFd3qhF1$f>fS0QV~IsJQ^;? zcJ-{xWLD#Nr|SW=#;4owZu@_?{D*{!9XqJ!2NLRs3JD^FrbC48*8TWueD=Iit#P;< zJII)2#s-ccV-B94zY%Q8QMjIira>Cv-?O+S8ot;Lxx`Phm(U6C_=oe_7s6;HY%SNb|5o^&n7 z^ru>!=}#fbs{evaS;z3T>hC&6|BrtanbZHeF}#iDPG^x|ey#ah;P+}H&h*MvMqKGy ztm#j+xS<;3l(^F&^AMn292<>X! zZxwD`Y{kG3Zsowhz_7!5=jIYi2S&~#*4M26SXCgY$I~y*R@>SM9G+rp!F>AV$vUG-N9EHiPu3aDc2ur2nlri9 z#;QKT`R#(Y3j|-=fha#^H|4j^+)i(uO`Y07POei<%NJy2kQ7vMc)LLGw%ywWO1XB5 zrgn@B>}QSacoZG&*qF~6*(ti(F>Yr$Yh1LN-l5&0!y&^i$+{o%svMQN z9PRcWwsQoD*fH83Qg*Oov{leFWMFt$yG4Qd;m?OkOYI&iso6hNT4n$6ZE>#M&xgM2 zjb_>zN!c6Cv#&JDu(M;h#%RH2G}G>|q`e{ogP(HcGy8uw7FySAPVIBF)ey4PV5zTD zmXNJvXMe_QV>HuF!l%w?rk%2cs~`iz+u)-P5=zGyjP^O47BqNQr+gDMq$S9}Ao=rQ zowCtI2apFZ+1-4--pJO$=&*y8zk`vVgI0ipl8M9X(}K5-IVvrMxj@SP@LY5kTn4+K zUW27hSwaEo0x5e5|2iWndu0g^unRsoNT|A7-L`8mdI@sG>pJC|@nQ^Guk9ouj`#x( z;$VA_BXS*#-Z@y+I~dhDXf-$}rGOoA+fhl)9vTeu><=qCpasK=dax@{95D~{gVqKIr72)Xd~j4+WpBq|lw_yK zz))j!!aluR5zL8-{VAi=`Gz`!7>v>W8y8l%t1 z8m#Kz>Qfxn8|8wOz|=njacYd@9g!@sS_fA@#bLeCT#yo&dLhTR_0_vU2~?1Q;pSgG z21N!2LH-A4t(^YW+Wcd%U{N~iu-@pfL$y(r<7um#O75si<@gzplzwnnZ}iTg+NjIX z{It|frEq*|WgOQVNjX*3OWkPIlK+l zbb2i%d|KT?6_jE@2^L)L7%4eD`p5Q1kd4VH~oB^Y<(rm}qH&4o2u*hGEbpjP5hpn6pL~g#; zWNe*$%uzkI)tM6{DtYsyoB+JM67X|WJ}q$es8gl5_%oT4md-ZLp3W~UURVS=*MVse z8yT;cV3HF4TYkrG``_{>hZUW`oWqKfy_|G76rKK>J=uO(adVxMD5H?Gt0Du#DdR9-@2HHbh||Fo zQ_c#y-+h>`#-Mr@Lu55>b}Ew-yk#fPaT8(OHF=|(KI5m!58dn;=T2614`ZI|_IvVwH%UJ~zPk@U zpPlQr-sr7I<-h-jHhQf0w>iAXFgTh%^Ppx+z6&p`+d7ho?_WNY@)2l~cpFQn% z@Zv+IcOJFdPnmk^o{jd@so8$Y-c$8#w5Lk#zssk*Jax`Sd+OHw`+q9bQ{`;5r)tH< z6NgJYD>k0s1{)yge(>VMU8hPscb_WpJS^+UJXyh0m*wH-vl5dRc({vP_dM->>YwLb z<-2tZmuDZo?z#Rf+vMLKQe13a&lnF$c!9X`o|cRt)vA;0Jh>UKPww*6^tSM}Q@A|S zZsO&c>-lECO?+GVHuG&I44!rOh6&xRV|ZIxwfSwO9s5~*@3)SK1ajK_l)Crn`coe# z|MOHd`RKL&tiCrWLLf=z_RN!ZOlS4IpD`Y?@CHepteGUnaw*7LjNz?IdhKL6j!SWq zgS}iBEhf+KlC78V;hU|M?ENjE>Y=wC zJIunn5$=)|LuiiZP z8YInOl;nLW1SFjVlTP(UPGghx-Q*|Nc!Ltv9`6X2xsWtxI@#Ap6v3J8BL(BgOup)) z#t2HjAZ@ynJ$wc0^ZniiT`KW|SZ~L2@^sayG{5z5TOj>@NFs$r660*Xx0~xu*B_ei z_ie)4%HJ4@tu6;_KeW&9ZS<9Zy6va91O6r6I^}mw;a}*XtA1yN0uJl>|8qI?!0)U= zz~Op5|9?J*Ui+Qp0SgBm`sR050?c$h#NvNeA^@u1?T`?drvR37KcwJ)mL~vYfS&(9 zk3;5Q9@yl=r~D6J^FRE}|DV$#7k@iOqw@iW4gLT59SQ_-E`T|~hcf-o76(*5`@>() zzx`0Mzm3tgfWs#K|C|q1`JZhKu(}jr^zt)E!1vHXkhaSKAkm8f+Ye3f7i0LxbZR!p zF^A`YtOZ%6bLco&A4tU}e>sqfz5XEA9q>OZ6tLdtasbF#-~7P=a}8wTxqzoyR|2fg z*9UAr^vd7rKlIiAZSa+VhgRnTwx41TSZ{PL!03E{(S-oz!<+q1 zR-M%d2tQeURwE$(WEJ24v$h}}-{rHm0r4l#76+V-4A_3cR^T@;?=PDGp2OM!CwHE> z8VQlG*?lTJK;S1Y@2~Ixp2IEy7f*h*s=pkt{Zwv%70Bhe0d|as3j(aJ1-O4a`4!~j zO99&tH3irhT?+93c=GAjqsn#vv`@_p_@{enUch?o!wWzf76jNa8C?umZ*(a@xo-QZ zQvufuZk-DF$93scfWOtH0C#hHc6RoTj!vUX0f(0d9Q^q3B&ekV!i{NwdkU0hbw-C*KUvU{w#kD3uQqlUKB05OfP-WM+7~;j`UgBMSz_ z@E|2ihTkXu|NsA4(QUF@pd4Fk(E6=s+$LuQDhOo-{XVI9E69xX^WUeS8sl!-!d5aO?&J8HqB0(iPL9%?H`tZlwyJkPrDmI=fp1d_^8{_uLIl&FgTu~oEPMs_eQp-4fa$m?^ z#<0mgp;nBCCbx&m3m*#m`0?XOMHU9jIPE&^y!5T7vM28hwPAce`CF(aY7ALz_4Mqf$;-oLFm9Uc5H8OCF6^$!*Te57$At%@iChSeu798Q6w;M_ z3e#H=qsY!+`BNhLZr!i#8WMu<)9(8Hx$E}#Zr$&%##fJ?O^*Kf(OAOvZr$hY8j4^+ zMNC6XpoWNHXg30BziamI{av&FX?G{Dijd`e7k2dOQ{$s&H%-0};m^N6>Z2kvgJqc9 zLQo7t!p1*RhB0h%PGtCG=BOwhmAKa@KR_378M>XS300z|(?->u{L$E9HG>!SGQ zzva)PPp_U0nS3rPfRS~we6%DZ>txI5*)oQ)ck8(RaVc2(x+wkztAcdek6u07J^4d) r8l&Un@EBP}*3G3cw>ZWBrzt9=zuj=wGx#Jg11kd;11AF`0|Ns9&HIsU delta 12337 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 mvN5uZ_M5F^ZgGlRrYlCJzuj=wIrt +#include +#include + +#include "fusion-c/header/msx_fusion.h" + +#include "main.h" +#include "character.h" diff --git a/src/character.h b/src/character.h new file mode 100644 index 0000000..8704c80 --- /dev/null +++ b/src/character.h @@ -0,0 +1,12 @@ +//------------------------------------------------------------------ +// Star Rangers - A Dungeon Crawler for MSX2 using Fusion-C +//------------------------------------------------------------------ + +#ifndef CHARACTER_H +#define CHARACTER_H + +#include "main.h" + + + +#endif diff --git a/src/charcreation.c b/src/createpcscr.c similarity index 98% rename from src/charcreation.c rename to src/createpcscr.c index 3cedb7f..1f98013 100644 --- a/src/charcreation.c +++ b/src/createpcscr.c @@ -9,10 +9,10 @@ #include "fusion-c/header/msx_fusion.h" #include "main.h" -#include "font.h" +#include "fnt.h" #include "gfx.h" #include "ingame.h" // #WIP needed for draw portraits defines -#include "charcreation.h" +#include "createpcscr.h" //------------------------------------------------------------------ // Functions. diff --git a/src/charcreation.h b/src/createpcscr.h similarity index 90% rename from src/charcreation.h rename to src/createpcscr.h index 09e1fb7..0b9b24e 100644 --- a/src/charcreation.h +++ b/src/createpcscr.h @@ -2,8 +2,8 @@ // Star Rangers - A Dungeon Crawler for MSX2 using Fusion-C //------------------------------------------------------------------ -#ifndef CHARCREATION_H -#define CHARCREATION_H +#ifndef CREATEPCSCR_H +#define CREATEPCSCR_H #include "main.h" diff --git a/src/encounter.c b/src/encounter.c index 9df1cbd..cc7abfc 100644 --- a/src/encounter.c +++ b/src/encounter.c @@ -15,6 +15,7 @@ //------------------------------------------------------------------ #define ENCOUNTER_ARRAY_SIZE 256 +#define DEFAULT_ENCOUNTER_THRESHOLD 10 //------------------------------------------------------------------ // Variables. @@ -50,7 +51,7 @@ uchar current_threshold; void sr_init_encounter(void) { current_step = 0; - current_threshold = 10; + current_threshold = DEFAULT_ENCOUNTER_THRESHOLD; } void sr_encounter_step(void) diff --git a/src/font.c b/src/fnt.c similarity index 96% rename from src/font.c rename to src/fnt.c index b2d7327..9c42cc0 100644 --- a/src/font.c +++ b/src/fnt.c @@ -12,13 +12,13 @@ #include "main.h" #include "gfx.h" -#include "font.h" +#include "fnt.h" //------------------------------------------------------------------ // Defines. //------------------------------------------------------------------ -// Font graphics offset. +// Font images offset. #define FONT_OFFSET_X 0 #define FONT_OFFSET_Y 44 @@ -178,6 +178,8 @@ #define MINUS_Y 172 #define SLASH_X 120 #define SLASH_Y 172 +#define COLON_X 88 +#define COLON_Y 188 // Textbox. @@ -287,6 +289,7 @@ void sr_draw_char(uchar character, uint x, uint y, uchar log_op) case '+': sr_draw_char_src_to_dst(PLUS_X, PLUS_Y, x, y, log_op); break; case '-': sr_draw_char_src_to_dst(MINUS_X, MINUS_Y, x, y, log_op); break; case '/': sr_draw_char_src_to_dst(SLASH_X, SLASH_Y, x, y, log_op); break; + case ':': sr_draw_char_src_to_dst(COLON_X, COLON_Y, x, y, log_op); break; case '<': sr_draw_char_src_to_dst(TXTBOX_UP_L_X, TXTBOX_UP_L_Y, x, y, log_op); break; case '[': sr_draw_char_src_to_dst(TXTBOX_DWN_L_X, TXTBOX_DWN_L_Y, x, y, log_op); break; @@ -308,13 +311,13 @@ void sr_draw_text(uchar *text, uint x, uint y, uchar text_color, uchar border_co if (border_color != 0) { // Color border. - LMMV(x, y + sr_get_active_page() * 256, FONT_SIZE, FONT_SIZE, border_color, LOGICAL_IMP); + LMMV(x, y + sr_get_active_page() * PAGE_HEIGHT, FONT_SIZE, FONT_SIZE, border_color, LOGICAL_IMP); sr_draw_char(*text, x, y, LOGICAL_TIMP); // Only for color text. if (text_color != 0) { - LMMV(x, y + sr_get_active_page() * 256, FONT_SIZE, FONT_SIZE, 15-text_color, LOGICAL_IMP); + LMMV(x, y + sr_get_active_page() * PAGE_HEIGHT, FONT_SIZE, FONT_SIZE, 15 - text_color, LOGICAL_IMP); sr_draw_char(*text, x, y, LOGICAL_XOR); sr_draw_char(*text, x, y, LOGICAL_AND); } @@ -327,7 +330,7 @@ void sr_draw_text(uchar *text, uint x, uint y, uchar text_color, uchar border_co // Only for color text. if (text_color != 0) { - LMMV(x, y + sr_get_active_page() * 256, FONT_SIZE, FONT_SIZE, 15-text_color, LOGICAL_IMP); + LMMV(x, y + sr_get_active_page() * PAGE_HEIGHT, FONT_SIZE, FONT_SIZE, 15 - text_color, LOGICAL_IMP); sr_draw_char(*text, x, y, LOGICAL_XOR); sr_draw_char(*text, x, y, LOGICAL_AND); } diff --git a/src/font.h b/src/fnt.h similarity index 95% rename from src/font.h rename to src/fnt.h index e3c0662..3138562 100644 --- a/src/font.h +++ b/src/fnt.h @@ -2,8 +2,8 @@ // Star Rangers - A Dungeon Crawler for MSX2 using Fusion-C //------------------------------------------------------------------ -#ifndef FONT_H -#define FONT_H +#ifndef FNT_H +#define FNT_H #include "main.h" diff --git a/src/gfx.c b/src/gfx.c index 881f977..7e58703 100644 --- a/src/gfx.c +++ b/src/gfx.c @@ -126,7 +126,7 @@ bool sr_load_sf5_image(uchar *file_name, uint initial_y_pos) while (read != 0) { // Set border color based on a 'random' position from the load buffer. - SetColors(15, 0, load_buffer[69]); + SetColors(0, 0, load_buffer[69]); // Read file and write to load buffer. read = fcb_read(&file, load_buffer, BUFFER_SIZE); @@ -174,7 +174,7 @@ bool sr_load_sc8_image(uchar *file_name, uint initial_y_pos) while (read != 0) { // Set border color based on a 'random' position from the load buffer. - SetColors(15, 0, load_buffer[69]); + SetColors(0, 0, load_buffer[69]); // Read file and write to load buffer. read = fcb_read(&file, load_buffer, BUFFER_SIZE); @@ -245,12 +245,12 @@ void sr_page_copy_mode(uint src_x, uint src_y, uint width, uint height, uint dst fLMMM(&t); } -void sr_draw_rectangle(uint x, uint y, uint width, uint height, char color) +void sr_draw_rectangle(uint x, uint y, uint width, uint height, uchar color) { LMMV(x, y, width, height, color, 0); } -void sr_draw_pixel(uint x, uint y, char color) +void sr_draw_pixel(uint x, uint y, uchar color) { Pset(x, y, color, 0); } @@ -260,7 +260,7 @@ void sr_debug_draw_palette(void) uint x = 0; uint y = 0; - for (uint i = 0; i < 16; i++) + for (uint i = 0; i < PALETTE_SIZE; i++) { LMMV(x, y + sr_get_active_page() * PAGE_WIDTH, 8, 8, i, 0); y += 9; @@ -309,11 +309,11 @@ void sr_init_gfx(void) // Set game palette. sr_init_palette(); - // Set loading text. - sr_set_loading_text(); + // Set loading. + sr_set_display_loading(); - // Load images. - sr_load_sf5_image("P2.SF5", PAGE_HEIGHT * SPRITES_PAGE); // TODO: Move all the load images to gfx and handle it with an enum and single load function that checks what's already loaded. + // Load images (need to load this here for the font images). + sr_load_sf5_image("P2.SF5", PAGE_HEIGHT * IMAGES_PAGE); // Reset current screen. Cls(); diff --git a/src/gfx.h b/src/gfx.h index e895dc4..e8d7fd8 100644 --- a/src/gfx.h +++ b/src/gfx.h @@ -18,6 +18,8 @@ #define HARDWARE_SPRITE_SIZE 8 +#define PALETTE_SIZE 16 + //------------------------------------------------------------------ // Enums. //------------------------------------------------------------------ diff --git a/src/ingame.c b/src/ingame.c index 70be071..a5da24f 100644 --- a/src/ingame.c +++ b/src/ingame.c @@ -273,7 +273,7 @@ void sr_draw_fp_view(void) sr_page_copy_fast(BG_UNDERGROUND_CEILING_X, BG_UNDERGROUND_CEILING_Y, BG_UNDERGROUND_CEILING_SIZE_X, BG_UNDERGROUND_CEILING_SIZE_Y, LEVEL_SCREEN_X, 0, - SPRITES_PAGE, BACKBUFFER_PAGE); + IMAGES_PAGE, BACKBUFFER_PAGE); } else { @@ -281,7 +281,7 @@ void sr_draw_fp_view(void) sr_page_copy_fast(BG_SURFACE_CEILING_X, BG_SURFACE_CEILING_Y, BG_SURFACE_CEILING_SIZE_X, BG_SURFACE_CEILING_SIZE_Y, LEVEL_SCREEN_X, 0, - SPRITES_PAGE, BACKBUFFER_PAGE); + IMAGES_PAGE, BACKBUFFER_PAGE); } // Floor. @@ -291,7 +291,7 @@ void sr_draw_fp_view(void) sr_page_copy_fast(BG_FLOOR_X, BG_FLOOR_Y, BG_FLOOR_SIZE_X, BG_FLOOR_SIZE_Y, BG_FLOOR_DST_X, BG_FLOOR_DST_Y, - SPRITES_PAGE, BACKBUFFER_PAGE); + IMAGES_PAGE, BACKBUFFER_PAGE); } else { @@ -299,13 +299,13 @@ void sr_draw_fp_view(void) sr_page_copy_fast(BG_FLOOR_X, BG_FLOOR_Y, BG_FLOOR_SIZE_X, BG_ALT_FLOOR_SIZE_Y_1, BG_FLOOR_DST_X, BG_ALT_FLOOR_DST_Y_1, - SPRITES_PAGE, BACKBUFFER_PAGE); + IMAGES_PAGE, BACKBUFFER_PAGE); // Draw alternate floor. sr_page_copy_fast(BG_ALT_FLOOR_X, BG_ALT_FLOOR_Y, BG_FLOOR_SIZE_X, BG_ALT_FLOOR_SIZE_Y_2, BG_FLOOR_DST_X, BG_ALT_FLOOR_DST_Y_2, - SPRITES_PAGE, BACKBUFFER_PAGE); + IMAGES_PAGE, BACKBUFFER_PAGE); } // Front walls. @@ -554,7 +554,7 @@ void sr_draw_tiles_screen_background(void) sr_page_copy_fast(232, 188, 24, 24, x * 24, y * 24, - SPRITES_PAGE, sr_get_active_page()); + IMAGES_PAGE, sr_get_active_page()); } } @@ -569,37 +569,37 @@ void sr_draw_portraits(void) sr_set_drawing_state(BEGIN); // Names. - sr_draw_text("E.Ilba", PORTRAIT_1_NAME_X, PORTRAIT_1_NAME_Y, 15, 0); - sr_draw_text("Lisbeth", PORTRAIT_2_NAME_X, PORTRAIT_2_NAME_Y, 15, 0); - sr_draw_text("Krevar", PORTRAIT_3_NAME_X, PORTRAIT_3_NAME_Y, 15, 0); - sr_draw_text("Echo", PORTRAIT_4_NAME_X, PORTRAIT_4_NAME_Y, 15, 0); + sr_draw_text("E.Ilba", PORTRAIT_1_NAME_X, PORTRAIT_1_NAME_Y, PORTRAIT_NAME_COLOR, 0); + sr_draw_text("Lisbeth", PORTRAIT_2_NAME_X, PORTRAIT_2_NAME_Y, PORTRAIT_NAME_COLOR, 0); + sr_draw_text("Krevar", PORTRAIT_3_NAME_X, PORTRAIT_3_NAME_Y, PORTRAIT_NAME_COLOR, 0); + sr_draw_text("Echo", PORTRAIT_4_NAME_X, PORTRAIT_4_NAME_Y, PORTRAIT_NAME_COLOR, 0); // Portraits. sr_page_copy_fast(PORTRAIT_SRC_X, PORTRAIT_SRC_Y, PORTRAIT_SIZE, PORTRAIT_SIZE, PORTRAIT_1_X, PORTRAIT_1_Y, - SPRITES_PAGE, sr_get_active_page()); + IMAGES_PAGE, sr_get_active_page()); sr_page_copy_fast(PORTRAIT_SRC_X, PORTRAIT_SRC_Y + PORTRAIT_SIZE, PORTRAIT_SIZE, PORTRAIT_SIZE, PORTRAIT_2_X, PORTRAIT_2_Y, - SPRITES_PAGE, sr_get_active_page()); + IMAGES_PAGE, sr_get_active_page()); sr_page_copy_fast(PORTRAIT_SRC_X, PORTRAIT_SRC_Y + PORTRAIT_SIZE + PORTRAIT_SIZE, PORTRAIT_SIZE, PORTRAIT_SIZE, PORTRAIT_3_X, PORTRAIT_3_Y, - SPRITES_PAGE, sr_get_active_page()); + IMAGES_PAGE, sr_get_active_page()); sr_page_copy_fast(PORTRAIT_SRC_X, PORTRAIT_SRC_Y + PORTRAIT_SIZE + PORTRAIT_SIZE + PORTRAIT_SIZE, PORTRAIT_SIZE, PORTRAIT_SIZE, PORTRAIT_4_X, PORTRAIT_4_Y, - SPRITES_PAGE, sr_get_active_page()); + IMAGES_PAGE, sr_get_active_page()); // HP text. - sr_draw_text("10/12", PORTRAIT_1_NAME_X + PORTRAIT_SIZE + 1, PORTRAIT_1_NAME_Y + 8, 15, 0); - sr_draw_text("8/8", PORTRAIT_2_NAME_X + PORTRAIT_SIZE + 1, PORTRAIT_2_NAME_Y + 8, 15, 0); - sr_draw_text("7/7", PORTRAIT_3_NAME_X + PORTRAIT_SIZE + 1, PORTRAIT_3_NAME_Y + 8, 15, 0); - sr_draw_text("9/9", PORTRAIT_4_NAME_X + PORTRAIT_SIZE + 1, PORTRAIT_4_NAME_Y + 8, 15, 0); + sr_draw_text("10/12", PORTRAIT_1_NAME_X + PORTRAIT_SIZE + 1, PORTRAIT_1_NAME_Y + 8, PORTRAIT_NAME_COLOR, 0); + sr_draw_text("8/8", PORTRAIT_2_NAME_X + PORTRAIT_SIZE + 1, PORTRAIT_2_NAME_Y + 8, PORTRAIT_NAME_COLOR, 0); + sr_draw_text("7/7", PORTRAIT_3_NAME_X + PORTRAIT_SIZE + 1, PORTRAIT_3_NAME_Y + 8, PORTRAIT_NAME_COLOR, 0); + sr_draw_text("9/9", PORTRAIT_4_NAME_X + PORTRAIT_SIZE + 1, PORTRAIT_4_NAME_Y + 8, PORTRAIT_NAME_COLOR, 0); // // HP bars. // LMMV(HP_BAR_1_X, HP_BAR_1_Y + get_active_page() * SCREEN_HEIGHT, @@ -708,10 +708,10 @@ void sr_draw_level_screen(void) // Compass. switch(player_dir) { - case NORTH: sr_draw_text("N", COMPASS_X, COMPASS_Y, 9, 0); break; - case EAST: sr_draw_text("E", COMPASS_X, COMPASS_Y, 9, 0); break; - case SOUTH: sr_draw_text("S", COMPASS_X, COMPASS_Y, 9, 0); break; - case WEST: sr_draw_text("W", COMPASS_X, COMPASS_Y, 9, 0); break; + case NORTH: sr_draw_text("N", COMPASS_X, COMPASS_Y, COMPASS_COLOR, 0); break; + case EAST: sr_draw_text("E", COMPASS_X, COMPASS_Y, COMPASS_COLOR, 0); break; + case SOUTH: sr_draw_text("S", COMPASS_X, COMPASS_Y, COMPASS_COLOR, 0); break; + case WEST: sr_draw_text("W", COMPASS_X, COMPASS_Y, COMPASS_COLOR, 0); break; } // #WIP Draw a different floor in odd tiles to create ilusion of movement. @@ -720,7 +720,7 @@ void sr_draw_level_screen(void) floor_tile = !floor_tile; } - // Dungeon first person view. + // Level first person view. sr_update_fp_view(); sr_draw_fp_view(); @@ -801,15 +801,14 @@ void sr_update_input_level_mode(void) } } - // Actions. - if (TriggerRead(JOY1_BUTTONB) == PRESSED || - TriggerRead(SPACEBAR) == PRESSED ) - { - if (sr_is_generating_dungeon_level() == false) - { - sr_generate_dungeon_level(); - } - } + // // Actions. + // if (TriggerRead(JOY1_BUTTONB) == PRESSED || TriggerRead(SPACEBAR) == PRESSED ) + // { + // if (sr_is_generating_dungeon_level() == false) + // { + // sr_generate_dungeon_level(); + // } + // } } void sr_set_ingame_state(void) @@ -824,8 +823,8 @@ void sr_set_ingame_state(void) // This may be set by the random generator in the future? player_dir = NORTH; - // Set loading text. - sr_set_loading_text(); + // Set loading. + sr_set_display_loading(); // Load images. sr_load_sf5_image("P1.SF5", PAGE_HEIGHT * BACKBUFFER_PAGE); @@ -880,11 +879,5 @@ void sr_update_ingame_state(void) void sr_finished_ingame_drawing(void) { // Copy finished drawing of the first person view from back to front. - sr_page_copy_y_fast(LEVEL_SCREEN_X + LEVEL_SCREEN_SIZE_X, PAGE_HEIGHT, LEVEL_SCREEN_Y, LEVEL_SCREEN_SIZE_Y, 1); - - // sr_page_copy_fast(0, 0, - // LEVEL_SCREEN_DX, LEVEL_SCREEN_DY, - // LEVEL_SCREEN_X, LEVEL_SCREEN_Y, - // BACKBUFFER_PAGE, sr_get_active_page()); } diff --git a/src/ingame.h b/src/ingame.h index 3450987..31b7113 100644 --- a/src/ingame.h +++ b/src/ingame.h @@ -6,7 +6,7 @@ #define INGAME_H #include "main.h" -#include "font.h" +#include "fnt.h" //------------------------------------------------------------------ // Defines. @@ -15,7 +15,7 @@ #define LEVEL_SIZE 24 #define BACKBUFFER_PAGE 1 -#define SPRITES_PAGE 2 +#define IMAGES_PAGE 2 #define WALLS_PAGE 3 #define LEVEL_SCREEN_X 8 @@ -61,6 +61,7 @@ #define LEVEL_VIEW_DIST 2 +#define COMPASS_COLOR 9 #define COMPASS_X LEVEL_SCREEN_X + (LEVEL_SCREEN_SIZE_X - LEVEL_SCREEN_X) / 2 #define COMPASS_Y 0 @@ -76,6 +77,7 @@ #define PORTRAIT_SRC_Y 0 #define PORTRAIT_SIZE 32 +#define PORTRAIT_NAME_COLOR 15 #define PORTRAIT_1_NAME_X 176 #define PORTRAIT_1_NAME_Y FONT_SIZE - 4 #define PORTRAIT_2_NAME_X 176 diff --git a/src/intro.c b/src/intro.c index 48b1ac3..92cc6b9 100644 --- a/src/intro.c +++ b/src/intro.c @@ -9,7 +9,7 @@ #include "fusion-c/header/msx_fusion.h" #include "main.h" -#include "font.h" +#include "fnt.h" #include "gfx.h" #include "intro.h" @@ -22,7 +22,7 @@ enum Panel FIRST, SECOND, THIRD, - FOURTH, + FOURTH } current_panel; //------------------------------------------------------------------ @@ -37,13 +37,27 @@ enum Panel void sr_draw_intro_text(void) { - // TODO: Needs to be updated to new drawing system and actually do something. + // #TODO: Needs to be updated to new drawing system and actually do something. // // Intro text. // sr_set_drawing_state(Begin); // // Cls(); // SetColors(0, 0, 14); +/* + Deep in space, far away from the inhabited regions of the galaxy, lies a long-forgotten alien station. + + Since its discovery, many expeditions have tried to explore and uncover the secrets of this ancient civilization. Some with noble intentions, others seeking only personal profit. + + Neo-Midgard, as it’s known nowadays, is home to brave (or may I say foolish enough) settlers, scientists, adventurers, and bandits alike. + + Your transport ship has just arrived at Neo-Midgard's docking bay. + + You come in hopes to start anew, finding some adventures, and who knows, maybe getting rich and famous in the process. + + This is your story... +*/ + // sr_draw_text("Deep in space far away", 8*4, 8*19, 15, 14); // sr_draw_text("from the inhabited regions", 8*3, 8*19+9, 15, 14); // sr_draw_text("of the galaxy lies a long", 8*3, 8*19+9+9, 15, 14); @@ -52,22 +66,22 @@ void sr_draw_intro_text(void) // //sr_set_drawing_state(WaitingForVDP); // sr_wait(1000); - // // Go to dungeon state. + // // Go to ingame state. // sr_set_game_state(START_SCREEN); } void sr_set_intro_state(void) { - // TODO: Needs to be updated to new drawing system and actually do something. + // #TODO: Needs to be updated to new drawing system and actually do something. //sr_draw_intro_text(); } void sr_update_intro_state(void) { - // TODO: Needs to be updated to new drawing system and actually do something. + // #TODO: Needs to be updated to new drawing system and actually do something. } void sr_finished_intro_drawing(void) { - -} \ No newline at end of file + // #TODO: Needs to be updated to new drawing system and actually do something. +} diff --git a/src/main.c b/src/main.c index 805a9d0..8cf1133 100644 --- a/src/main.c +++ b/src/main.c @@ -8,18 +8,18 @@ #include "fusion-c/header/msx_fusion.h" -#include "charcreation.h" -#include "ingame.h" +#include "createpcscr.h" #include "encounter.h" -#include "font.h" +#include "fnt.h" #include "gfx.h" +#include "ingame.h" #include "intro.h" #include "menu.h" #include "procgen.h" +#include "rnd.h" #include "snd.h" #include "startscr.h" #include "system.h" -#include "random.h" #include "main.h" //------------------------------------------------------------------ @@ -34,14 +34,12 @@ uchar update_frame_count; // Functions. //------------------------------------------------------------------ -void sr_set_loading_text(void) +void sr_set_display_loading(void) { - // Set loading text. sr_set_active_page(0); + SetColors(0, 14, 0); Cls(); sr_set_display_page(0); - SetColors(15, 0, 0); - PutText(5, 5, "LOADING...", LOGICAL_TIMP); } void sr_set_game_state(uchar new_state) diff --git a/src/main.h b/src/main.h index c0fc24b..000200c 100644 --- a/src/main.h +++ b/src/main.h @@ -25,7 +25,7 @@ enum GameState // Prototypes. //------------------------------------------------------------------ -void sr_set_loading_text(void); +void sr_set_display_loading(void); void sr_set_game_state(uchar new_state); #endif diff --git a/src/procgen.c b/src/procgen.c index 64b3d88..c38e831 100644 --- a/src/procgen.c +++ b/src/procgen.c @@ -10,8 +10,8 @@ #include "main.h" #include "ingame.h" +#include "rnd.h" #include "procgen.h" -#include "random.h" //------------------------------------------------------------------ // Variables. diff --git a/src/random.c b/src/rnd.c similarity index 98% rename from src/random.c rename to src/rnd.c index 00d9a5c..94f118e 100644 --- a/src/random.c +++ b/src/rnd.c @@ -2,7 +2,7 @@ // Star Rangers - A Dungeon Crawler for MSX2 using Fusion-C //------------------------------------------------------------------ -#include "random.h" +#include "rnd.h" //------------------------------------------------------------------ // Variables. diff --git a/src/random.h b/src/rnd.h similarity index 93% rename from src/random.h rename to src/rnd.h index f97db2a..344e1a3 100644 --- a/src/random.h +++ b/src/rnd.h @@ -2,8 +2,8 @@ // Star Rangers - A Dungeon Crawler for MSX2 using Fusion-C //------------------------------------------------------------------ -#ifndef RANDOM_H -#define RANDOM_H +#ifndef RND_H +#define RND_H #include "main.h" diff --git a/src/startscr.c b/src/startscr.c index d4acc1c..eeabb7a 100644 --- a/src/startscr.c +++ b/src/startscr.c @@ -9,7 +9,7 @@ #include "fusion-c/header/msx_fusion.h" #include "main.h" -#include "font.h" +#include "fnt.h" #include "gfx.h" #include "startscr.h" @@ -19,8 +19,8 @@ void sr_draw_startscr_intro_text(void) { - // Set loading text. - sr_set_loading_text(); + // Set loading. + sr_set_display_loading(); // Load the title screen. sr_load_sf5_image("STRTSCR.SF5", PAGE_HEIGHT * TITLE_PAGE); @@ -35,7 +35,7 @@ void sr_draw_startscr_intro_text(void) SetColors(0, 0, 14); sr_draw_text("PRESS SPACE KEY", FONT_SIZE * 8, FONT_SIZE * 16, 15, 14); - sr_draw_text("@ 2023 SAFFRON SOFT", FONT_SIZE * 6, FONT_SIZE * 22, 15, 14); + sr_draw_text("@ 1986 SAFFRON SOFT", FONT_SIZE * 6, FONT_SIZE * 22, 15, 14); // Finish drawing. sr_set_drawing_state(END); @@ -48,13 +48,12 @@ void sr_set_startscr_state(void) void sr_update_startscr_state(void) { - // TODO: + // #TODO // MENU // Go to load game -> ingame. // Go to new game -> intro. - if (TriggerRead(JOY1_BUTTONA) == PRESSED || - TriggerRead(SPACEBAR) == PRESSED ) + if (TriggerRead(JOY1_BUTTONA) == PRESSED || TriggerRead(SPACEBAR) == PRESSED ) { sr_set_game_state(IN_GAME); } diff --git a/src/startscr.h b/src/startscr.h index 6c234ef..6cd65c6 100644 --- a/src/startscr.h +++ b/src/startscr.h @@ -11,7 +11,7 @@ // Defines. //------------------------------------------------------------------ -#define TITLE_PAGE 1 +#define TITLE_PAGE 0 //------------------------------------------------------------------ // Prototypes.