From 5450a7e74842d0b7ba4ae8883262e91a4cf17196 Mon Sep 17 00:00:00 2001 From: Shadow15510 Date: Sat, 23 Oct 2021 18:51:28 +0200 Subject: [PATCH] Update repo --- CMakeLists.txt | 12 +++++-- README.md | 8 ++++- assets-fx/icon.bmp | Bin 138 -> 0 bytes assets-fx/icon.png | Bin 0 -> 613 bytes assets-fx/large_tileset.png | Bin 0 -> 5392 bytes assets-fx/large_water.png | Bin 0 -> 622 bytes assets-fx/title.png | Bin 0 -> 866 bytes src/calccity.c | 0 src/calccity.h | 35 ++++++++++----------- src/main.c | 61 ++++++++++++++++++++++++++++++++++++ 10 files changed, 94 insertions(+), 22 deletions(-) delete mode 100644 assets-fx/icon.bmp create mode 100644 assets-fx/icon.png create mode 100644 assets-fx/large_tileset.png create mode 100644 assets-fx/large_water.png create mode 100644 assets-fx/title.png create mode 100644 src/calccity.c diff --git a/CMakeLists.txt b/CMakeLists.txt index f7455ba..8470387 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -13,10 +13,16 @@ set(SOURCES src/main.c ) +set(ASSETS) + set(ASSETS_fx - + assets-fx/large_tileset.png + assets-fx/large_water.png + assets-fx/title.png ) +set(ASSETS_cg) + fxconv_declare_assets(${ASSETS} ${ASSETS_fx} ${ASSETS_cg} WITH_METADATA) add_executable(myaddin ${SOURCES} ${ASSETS} ${ASSETS_${FXSDK_PLATFORM}}) @@ -27,6 +33,6 @@ if("${FXSDK_PLATFORM_LONG}" STREQUAL fx9860G) generate_g1a(TARGET myaddin OUTPUT "CalcCity.g1a" NAME "CalcCity" ICON assets-fx/icon.png) elseif("${FXSDK_PLATFORM_LONG}" STREQUAL fxCG50) - generate_g3a(TARGET myaddin OUTPUT "MyAddin.g3a" - NAME "MyAddin" ICONS assets-cg/icon-uns.png assets-cg/icon-sel.png) + generate_g3a(TARGET myaddin OUTPUT "CalcCity.g3a" + NAME "CalcCity" ICONS assets-cg/icon-uns.png assets-cg/icon-sel.png) endif() diff --git a/README.md b/README.md index 02ea0c4..34d2784 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,9 @@ # CalcCity -A redesign of a management game like Sim's City. \ No newline at end of file +## Presentation + +This game is a redesign of [CalcCity](https://www.planet-casio.com/Fr/programmes/programme1062-1-calccity-v3-menno-jeux-add-ins.html), a management game like Sim's City. + +## License + +All rights reserved. \ No newline at end of file diff --git a/assets-fx/icon.bmp b/assets-fx/icon.bmp deleted file mode 100644 index 50f4b698479d2a17b17ce3a0c0f81df79c4b21d5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 138 zcmZ?r?P7ocJ0PV2#Bx9^48)8;2m(Gp+yN8-VPx?C|9^%Cpuqoc_Za^Fj$`=$_Z`Et zTk9BZ-3?>7e`6cNy{^MQZvTJ$W!r|33h&6FUh2 diff --git a/assets-fx/icon.png b/assets-fx/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..44ab7e2c28b2d0899cd8731322756cfdd579b6ad GIT binary patch literal 613 zcmV-r0-F7aP)EX>4Tx04R}tkv&MmKpe$iTcuK31nnT=kf92K1yK=4twIqhgj%6h2a`*`ph-iL z;^HW{799LotU9+0Yt2!bCVZf;JBE>hzEl0u6Z503ls?%w0>9pG10C4=2nH^D?*5%52J`l%+%*ZF$K@@bq^n3@8Uem``n)+qU22m_ypovrW+RV2J!T! zrE}gVjzPKZb$eF3_yo_V=-EH&1}TGjOG~{nZ9A^GSNW zt;LRj-fiIGx~<83z~v4w@T5zImKj!>Fn*_Gp+u90F!)jv<7a3jQ{`u22e~?MF0Q*|NsA`*`M72000SaNLh0L z027D+027D-qlyVA00007bV*G`2jvP45-BMw(U5ci003c0L_t&t*A2_D4M0E`K;c)K zz#tl%D9xfa!A+sGfC)4rC+;K?Itc|Q$nS4n^*u!7MH5(8F$~vX@M&Uj-4S8q36>U= z+)88*3^E5?*#vxFgB>#^wo>wKnkUzs4hp?~!Lu~j-)X4800000NkvXXu0mjf33Ca5 literal 0 HcmV?d00001 diff --git a/assets-fx/large_tileset.png b/assets-fx/large_tileset.png new file mode 100644 index 0000000000000000000000000000000000000000..05e0ecf9924d7edd4d8574c0d352f47524bf3f91 GIT binary patch literal 5392 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 literal 0 HcmV?d00001 diff --git a/assets-fx/title.png b/assets-fx/title.png new file mode 100644 index 0000000000000000000000000000000000000000..af7c008e1fc3cc7c2538b1536007699ac6ec0cef GIT binary patch literal 866 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`2qYMOt#!Htq*&4&eH|GXHuiJ>Nn{1`6_P!I zd>I(3)PQPRfU1B(4KElNN(~qoUL`OvSj}Ky5HFasE6@fg!Ib3f?!v%$w@Y{lkjGx) z>Fdh=l#5r8Rc?j!gC3xKmZytjh{fsDOa2}rfimnLmV4_dZDC)_;<;Y&(aL5=(`vph zzDv0+0dE9c6ko5iez(u%)a<)9okA`XE=_5-S(CFkqO#!PiwCPVT1V%yb)7pFWc=;f z-s`_F@7R60d1fR3ee=(?`(qjYa9^72>crX_av<0KZ`S<;1HaQHOMNuoU5-qWRCz7Y zut`yPef7bNo@pmjR|LeYXXi>klyF7&Z^ay$jC&>42WuXmjT2bh>d4T2cJq!pJ%O}N z!Ci(G^WX8FJ>|m9Z1lh=AcCpIpONjf5ZBxXuE{f0`<8dF+b!Py+d(bq=}VtNmB$VR zj%seq{N_@xjBLM1Rj3J_ys-Ohz=TGd?C$a%$&al6b-iv5{mC)$72`(1(jNyz8#39K z_8mGXsQkxS$7|xrg({5y_uXjTRP#PugR%b9v2%qt1QXQl=KNjp_LJ^;&Gw*2*Tcj( zJ-9a9lk-d6DzpA$T+_w6?AtpJG1xDfnlvMJ#Y!%L-EYjIqVI096i_ki*}Pjb(ZgZZ zU0!de*KfDJ_rElmt5zZLokRSs&OTS4Pe-R*Sfc;5=_Ol7_&>%ZhRYWmR<||8Zd8>u ze9Or>|8~i@OCLRt&T80t)aMm*^M$Ae^$*2sr}EDIAn0M?75S#oo0GqTA>@Kq!I9+~ zdu$FctuegKJjLpXsa68F0n;@0)~%oaxN}CC9_8SiwQpI|({xd;$8S{C8zRkKIhsuB z&N{dKU$t;7xBuL=b_Rc*J&ipZc2#=i*LRw~fAMs@{#<-w=i;*Ed|zCn&w6h#Expm) zB6;?q?$m=-=FO6f?$dw$e(W8~-F^G#zEw$L`=72}RsLcBr>p;0|Gpmox#iUi&ntDN zz=Wt;;u=wsl30>zm0Xkxq!^40j0|-R4Rj5SLk!KW3{0$y&9w~-tPBi_m@NLFXvob^ Z$xN%nt${hd!2zg&!PC{xWt~$(69AdvY{CEl literal 0 HcmV?d00001 diff --git a/src/calccity.c b/src/calccity.c new file mode 100644 index 0000000..e69de29 diff --git a/src/calccity.h b/src/calccity.h index 7b3612d..2a8cc5b 100644 --- a/src/calccity.h +++ b/src/calccity.h @@ -1,45 +1,44 @@ #ifndef _CALCCITY_H #define _CALCCITY_H -struct calccity = +struct calccity { // human's statistics = {happyness, health, education, housing, work, food} - signed long humans[6] = {0}; + signed long humans[6]; // population evolution = {population, birth_rate, death_rate, immigration, emigration} - signed long population[5] = {0}; + signed long population[5]; // trade statistics = {import, export, production, commercial, industrial, annual_cost} - signed long trade[6] = {0}; + signed long trade[6]; // production = {water, power} - signed long production[2] = {0}; + signed long production[2]; // consumption = {water, power} - signed long consumption[2] = {0}; + signed long consumption[2]; - // some others statistics = {crime, safety, fire_hazard, nuclear_hazard, pollution, transport, grabage, graves} - signed long misc[8] = {0}; + // some others statistics = {treasure, crime, safety, fire_hazard, nuclear_hazard, pollution, transport, grabage, graves} + signed long misc[9]; // taxes in percents on {housing, trade, industry, export} - int taxes[4] = {10, 10, 10, 10}; + int taxes[4]; // fund in percents on {police, fireman, education, heathcare} - int funds[4] = {0}; + int funds[4]; // in-game time - int month = 1, year = 1900; - int blinker = 0; + int month, year; + int blinker; // in-game options - bool disaster = true; - bool show_fps = false; - int time_speed = 30; + bool disaster; + int time_speed; }; -struct camera = +struct camera { int x, y; int zoom; @@ -48,9 +47,9 @@ struct camera = }; -struct map = +struct map { - unsigned char map_data[50][50]; + unsigned char data[50][50]; }; diff --git a/src/main.c b/src/main.c index 7115429..a678939 100644 --- a/src/main.c +++ b/src/main.c @@ -1,8 +1,69 @@ #include #include +#include +#include + +#include "calccity.h" + +void title_screen(void); +void default_values(struct calccity *current_game, struct camera *camera, struct map *map); + int main(void) { + title_screen(); + + struct calccity calccity; + struct camera camera; + struct map map; + default_values(&calccity, &camera, &map); return 1; } + + +void title_screen(void) +{ + extern const bopti_image_t img_title; + dclear(C_WHITE); + + dimage(0, 0, &img_title); + dupdate(); + + getkey(); +} + + +void default_values(struct calccity *calccity, struct camera *camera, struct map *map) +{ + // Initialisation of struct calccity + memset(calccity, 0, sizeof *calccity); + + // Treasure + calccity->misc[0] = 500000; + + for (int i = 0; i < 4; i++) + calccity->taxes[i] = 10; + + calccity->month = 1; + calccity->year = 1900; + calccity->blinker = 0; + + calccity->disaster = true; + calccity->time_speed = 30; + + + // Initialisation of struct camera + memset(camera, 0, sizeof *camera); + camera->cursor_x = 64; + camera->cursor_y = 32; + + + // Initialisation of struct map + for (int y = 0; y < 50; y++) + { + for (int x = 0; x < 50; x++) + map->data[y][x] = 48 + rand() % 2; + } + +} \ No newline at end of file