From a20f960f35f3a23e1b9e46ebc5a26f49bbe5f64c Mon Sep 17 00:00:00 2001 From: ElijahZAwesome Date: Fri, 26 Jan 2018 07:23:27 -0600 Subject: [PATCH] Added potion saving and stuff. forgot about that --- data/icons2.png | Bin 38209 -> 38227 bytes run in Citra.bat | 5 ++++ source/Crafting.c | 3 ++- source/Entity.h | 1 + source/Globals.c | 64 +++++++++++++++++++++++++++------------------- source/Globals.h | 4 +++ source/Item.c | 2 ++ source/Item.h | 1 + source/Render.c | 3 +++ source/SaveLoad.c | 16 ++++++++++++ source/main.c | 2 +- 11 files changed, 72 insertions(+), 29 deletions(-) create mode 100644 run in Citra.bat diff --git a/data/icons2.png b/data/icons2.png index a53170527cdf766e37db49fee729e525e723c63d..d755d059ad45cb39634d473b6c421e38b463bd8b 100644 GIT binary patch delta 12428 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 Kp!h%QH~$~i_)Ee7 delta 12440 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 R5PS{-`by(v>2r&q{|Dq)F9ZMp diff --git a/run in Citra.bat b/run in Citra.bat new file mode 100644 index 0000000..353f7ea --- /dev/null +++ b/run in Citra.bat @@ -0,0 +1,5 @@ +@echo off +echo Building 3DSX/ELF/SMDH... +make +echo Running in citra +C:/Users/computer/AppData/Local/Citra/canary-mingw/citra-qt.exe result/Minicraft3DS.3dsx \ No newline at end of file diff --git a/source/Crafting.c b/source/Crafting.c index b4edef9..5356df8 100644 --- a/source/Crafting.c +++ b/source/Crafting.c @@ -152,11 +152,12 @@ void initRecipes(){ enchanterRecipes.recipes[6] = defineRecipe(ITEM_WALL_GEM,1,1,ITEM_GEM,10); enchanterRecipes.recipes[7] = defineRecipe(ITEM_GOLD_APPLE,1,2,ITEM_APPLE,1,ITEM_GOLDINGOT,15); - potionMakerRecipes.size = 3; + potionMakerRecipes.size = 4; potionMakerRecipes.recipes = (Recipe*)malloc(sizeof(Recipe) * (potionMakerRecipes.size)); potionMakerRecipes.recipes[0] = defineRecipe(ITEM_STRENGTH_POTION,1,3,ITEM_GOLD_APPLE,1,ITEM_GLASS,10,ITEM_IRONINGOT,10); potionMakerRecipes.recipes[1] = defineRecipe(ITEM_SPEED_POTION,1,4,ITEM_GEM,2,ITEM_GLASS,10,ITEM_IRONINGOT,10, ITEM_GOLDINGOT,15); potionMakerRecipes.recipes[2] = defineRecipe(ITEM_REGEN_POTION,1,3,ITEM_GOLD_APPLE,2,ITEM_GLASS,10,ITEM_GEM,10); + potionMakerRecipes.recipes[3] = defineRecipe(ITEM_SWIM_BREATH_POTION,1,4,ITEM_GOLD_APPLE,2,ITEM_GLASS,10,ITEM_GEM,10, ITEM_STRING,15); } /* Free up allocated memory */ diff --git a/source/Entity.h b/source/Entity.h index d2ea03a..351980b 100644 --- a/source/Entity.h +++ b/source/Entity.h @@ -47,6 +47,7 @@ typedef struct { int swimTimer; int regenTimer; int strengthTimer; + int swimBreathTimer; int speedTimer; int score; Inventory* inv; diff --git a/source/Globals.c b/source/Globals.c index 69da0ee..71debdf 100644 --- a/source/Globals.c +++ b/source/Globals.c @@ -4,9 +4,6 @@ char versionText[34] = "Version 1.4.1"; char fpsstr[34]; u8 currentMenu = 0; -bool UnderStrengthEffect = false; -bool UnderSpeedEffect = false; -bool regening = false; void addItemsToWorld(Item item,int x, int y, int count){ int i; @@ -222,12 +219,6 @@ void tickTouchQuickSelect() { void hurtEntity(Entity* e, int damage, int dir, u32 hurtColor){ if (shouldRenderDebug && e->type==ENTITY_PLAYER) return; - if(UnderStrengthEffect && player.p.strengthTimer <2000) { - damage = damage + 5; - } else if (player.p.strengthTimer >= 2000) { - UnderStrengthEffect = false; - player.p.strengthTimer = 0; - } if (e->hurtTime > 0) return; int xd = player.x - e->x; int yd = player.y - e->y; @@ -690,14 +681,19 @@ void healPlayer(int amount){ addEntityToList(newTextParticleEntity(healText,0xFF00FF00,player.x,player.y,currentLevel), &eManager); } -void strengthPotionEffect() { - UnderStrengthEffect = true; -} -void speedPotionEffect() { - UnderSpeedEffect = true; -} -void regenPotionEffect() { - regening = true; +void potionEffect(int type) { + if(type == 1) { + UnderStrengthEffect = true; + } + if(type == 2) { + UnderSpeedEffect = true; + } + if (type == 3) { + regening = true; + } + if (type == 4) { + UnderSwimBreathEffect = true; + } } s8 itemTileInteract(int tile, Item* item, int x, int y, int px, int py, int dir){ @@ -723,19 +719,25 @@ s8 itemTileInteract(int tile, Item* item, int x, int y, int px, int py, int dir) return 0; case ITEM_STRENGTH_POTION: if(player.p.health < 20 && playerUseEnergy(2) && player.p.strengthTimer == 0){ - strengthPotionEffect(); + potionEffect(1); --item->countLevel; } return 0; case ITEM_SPEED_POTION: if(player.p.health < 20 && playerUseEnergy(2) && player.p.strengthTimer == 0){ - speedPotionEffect(); + potionEffect(2); --item->countLevel; } return 0; case ITEM_REGEN_POTION: if(player.p.health < 20 && playerUseEnergy(2) && player.p.strengthTimer == 0){ - regenPotionEffect(); + potionEffect(3); + --item->countLevel; + } + return 0; + case ITEM_SWIM_BREATH_POTION: + if(player.p.health < 20 && playerUseEnergy(2) && player.p.strengthTimer == 0){ + potionEffect(4); --item->countLevel; } return 0; @@ -1674,6 +1676,10 @@ void spawnPlayer(){ } void initPlayer(){ + UnderStrengthEffect = false; + UnderSpeedEffect = false; + regening = false; + UnderSwimBreathEffect = false; player.type = ENTITY_PLAYER; spawnPlayer(); player.xr = 4; @@ -1703,6 +1709,7 @@ void initPlayer(){ addItemToInventory(newItem(ITEM_STRENGTH_POTION,1), player.p.inv); addItemToInventory(newItem(ITEM_SPEED_POTION,1), player.p.inv); addItemToInventory(newItem(ITEM_REGEN_POTION,1), player.p.inv); + addItemToInventory(newItem(ITEM_SWIM_BREATH_POTION,1), player.p.inv); addItemToInventory(newItem(TOOL_SHOVEL,4), player.p.inv); addItemToInventory(newItem(TOOL_HOE,4), player.p.inv); addItemToInventory(newItem(TOOL_SWORD,4), player.p.inv); @@ -1725,12 +1732,6 @@ void initPlayer(){ void playerHurtTile(int tile, int xt, int yt, int damage, int dir){ if(shouldRenderDebug) damage = 99; - if(UnderStrengthEffect && player.p.strengthTimer <2000) { - damage = damage + 8; - } else if (player.p.strengthTimer >= 2000) { - UnderStrengthEffect = false; - player.p.strengthTimer = 0; - } char hurtText[11]; switch(tile){ @@ -1981,7 +1982,11 @@ void playerAttack(){ if (player.p.dir == 3) xt = (player.x + r) >> 4; if (xt >= 0 && yt >= 0 && xt < 128 && 128) { + if(UnderStrengthEffect && player.p.strengthTimer <2000) { + playerHurtTile(getTile(xt,yt), xt, yt, (rand()%3 + 5) + 1, player.p.dir); + } else { playerHurtTile(getTile(xt,yt), xt, yt, (rand()%3) + 1, player.p.dir); + } } } } @@ -2251,7 +2256,7 @@ void tickPlayer(){ if (player.p.staminaRechargeDelay % 2 == 0) moveMob(&player, player.p.ax, player.p.ay); - if (swimming && player.p.swimTimer % 60 == 0) { + if (swimming && player.p.swimTimer % 60 == 0 && !UnderSwimBreathEffect) { if (player.p.stamina > 0) { if(!shouldRenderDebug) --player.p.stamina; } else { @@ -2298,6 +2303,11 @@ void tickPlayer(){ player.p.regenTimer = 0; regening = false; } + if(UnderSwimBreathEffect) ++player.p.swimBreathTimer; + if(player.p.swimBreathTimer >= 2000) { + player.p.swimBreathTimer = 0; + UnderSwimBreathEffect = false; + } if(player.p.attackTimer > 0) { --player.p.attackTimer; } diff --git a/source/Globals.h b/source/Globals.h index 217dde1..b501a6d 100644 --- a/source/Globals.h +++ b/source/Globals.h @@ -91,6 +91,10 @@ Entity player; bool shouldRenderDebug; bool shouldSpeedup; bool shouldRenderMap; +bool UnderStrengthEffect; +bool UnderSpeedEffect; +bool regening; +bool UnderSwimBreathEffect; u8 zoomLevel; char mapText[32]; s16 mScrollX, mScrollY; diff --git a/source/Item.c b/source/Item.c index 7e1e122..f218d33 100644 --- a/source/Item.c +++ b/source/Item.c @@ -155,6 +155,7 @@ char* getItemName(int itemID, int countLevel){ case ITEM_STRENGTH_POTION: sprintf(currentName,"%d Strength Potion", countLevel); return currentName; case ITEM_SPEED_POTION: sprintf(currentName,"%d Speed Potion", countLevel); return currentName; case ITEM_REGEN_POTION: sprintf(currentName,"%d Regen Potion", countLevel); return currentName; + case ITEM_SWIM_BREATH_POTION: sprintf(currentName,"%d Swim Potion", countLevel); return currentName; case ITEM_COAL: sprintf(currentName,"%d Coal", countLevel); return currentName; case ITEM_IRONORE: sprintf(currentName,"%d Iron ore", countLevel); return currentName; case ITEM_GOLDORE: sprintf(currentName,"%d Gold ore", countLevel); return currentName; @@ -306,6 +307,7 @@ char* getBasicItemName(int itemID, int countLevel){ case ITEM_STRENGTH_POTION: return "Strength Potion"; case ITEM_SPEED_POTION: return "Speed Potion"; case ITEM_REGEN_POTION: return "Regen Potion"; + case ITEM_SWIM_BREATH_POTION: return "Water Potion"; case TOOL_BUCKET: switch(countLevel){ case 1: return "Water Bucket"; diff --git a/source/Item.h b/source/Item.h index 8f817ba..351abe7 100644 --- a/source/Item.h +++ b/source/Item.h @@ -76,6 +76,7 @@ #define ITEM_STRENGTH_POTION 77 #define ITEM_SPEED_POTION 78 #define ITEM_REGEN_POTION 79 +#define ITEM_SWIM_BREATH_POTION 80 #define TOOL_BUCKET 101 #define TOOL_BOW 102 diff --git a/source/Render.c b/source/Render.c index c57e90d..fe0d5ca 100644 --- a/source/Render.c +++ b/source/Render.c @@ -1502,6 +1502,9 @@ void renderItemIcon(int itemID, int countLevel, int x, int y) { case ITEM_REGEN_POTION: render(x, y, 198, 160, 0); break; + case ITEM_SWIM_BREATH_POTION: + render(x, y, 219, 160, 0); + break; case ITEM_SLIME: renderb(x, y, 88, 152, 0, 0xFF4DC04D); break; diff --git a/source/SaveLoad.c b/source/SaveLoad.c index 60766d0..b29e86e 100644 --- a/source/SaveLoad.c +++ b/source/SaveLoad.c @@ -37,6 +37,14 @@ void saveCurrentWorld(char * filename, EntityManager * eManager, Entity * player // Player Data fwrite(&player->p.score, sizeof(int), 1, file); fwrite(&player->p.hasWonSaved, sizeof(bool), 1, file); + fwrite(&UnderStrengthEffect, sizeof(bool), 1, file); + fwrite(&UnderSpeedEffect, sizeof(bool), 1, file); + fwrite(®ening, sizeof(bool), 1, file); + fwrite(&UnderSwimBreathEffect, sizeof(bool), 1, file); + fwrite(&player->p.strengthTimer, sizeof(int), 1, file); + fwrite(&player->p.speedTimer, sizeof(int), 1, file); + fwrite(&player->p.swimBreathTimer, sizeof(int), 1, file); + fwrite(&player->p.regenTimer, sizeof(int), 1, file); fwrite(&player->p.health, sizeof(s16), 1, file); fwrite(&player->x, sizeof(s16), 1, file); fwrite(&player->y, sizeof(s16), 1, file); @@ -143,6 +151,14 @@ int loadWorld(char * filename, EntityManager * eManager, Entity * player, u8 * m fread(&player->p.score, sizeof(int), 1, file); fread(&player->p.hasWonSaved, sizeof(bool), 1, file); + fread(&UnderStrengthEffect, sizeof(bool), 1, file); + fread(&UnderSpeedEffect, sizeof(bool), 1, file); + fread(®ening, sizeof(bool), 1, file); + fread(&UnderSwimBreathEffect, sizeof(bool), 1, file); + fread(&player->p.strengthTimer, sizeof(int), 1, file); + fread(&player->p.speedTimer, sizeof(int), 1, file); + fread(&player->p.swimBreathTimer, sizeof(int), 1, file); + fread(&player->p.regenTimer, sizeof(int), 1, file); fread(&player->p.health, sizeof(s16), 1, file); fread(&player->x, sizeof(s16), 1, file); fread(&player->y, sizeof(s16), 1, file); diff --git a/source/main.c b/source/main.c index 5e92c5a..015d21c 100644 --- a/source/main.c +++ b/source/main.c @@ -322,7 +322,7 @@ int main() { offsetY = 0; if(shouldRenderDebug){ - sprintf(fpsstr, "FPS: %.0f X:%d Y:%d E:%d %d", sf2d_get_fps(), player.x, player.y, eManager.lastSlot[currentLevel], player.p.speedTimer); + sprintf(fpsstr, "FPS: %.0f X:%d Y:%d E:%d %d", sf2d_get_fps(), player.x, player.y, eManager.lastSlot[currentLevel], player.p.swimBreathTimer); drawText(fpsstr, 2, 225); }