fixed remaining merge errors, maybe still dont build this yet

This commit is contained in:
ElijahZAwesome 2018-02-06 17:22:10 -06:00
parent 1e3fb61d76
commit edecea1055
6 changed files with 26 additions and 353 deletions

View file

@ -1399,65 +1399,6 @@ void addSmashParticles(s8 level, int x, int y, int damage) {
addEntityToList(newSmashParticleEntity(x, y, level), &eManager); addEntityToList(newSmashParticleEntity(x, y, level), &eManager);
} }
<<<<<<< HEAD
void initPlayer(){
UnderStrengthEffect = false;
UnderSpeedEffect = false;
regening = false;
UnderSwimBreathEffect = false;
player.type = ENTITY_PLAYER;
spawnPlayer();
player.xr = 4;
player.yr = 3;
player.canSwim = true;
player.p.ax = 0;
player.p.ay = 0;
player.p.health = 10;
player.p.stamina = 10;
player.p.score = 0;
player.p.walkDist = 0;
player.p.attackTimer = 0;
player.p.dir = 0;
player.p.inv = &eManager.invs[0];
eManager.nextInv++;
player.p.inv->lastSlot = 0;
player.p.activeItem = &noItem;
player.p.isDead = false;
player.p.hasWon = false;
addItemToInventory(newItem(ITEM_WORKBENCH,0), player.p.inv);
addItemToInventory(newItem(ITEM_POWGLOVE,0), player.p.inv);
if (shouldRenderDebug == true) {
addItemToInventory(newItem(ITEM_GLASS,10), player.p.inv);
addItemToInventory(newItem(ITEM_GOLD_APPLE,1), player.p.inv);
addItemToInventory(newItem(ITEM_POTION_MAKER,0), player.p.inv);
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);
addItemToInventory(newItem(TOOL_PICKAXE,4), player.p.inv);
addItemToInventory(newItem(TOOL_AXE,4), player.p.inv);
addItemToInventory(newItem(ITEM_GEM, 60), player.p.inv);
addItemToInventory(newItem(ITEM_IRONINGOT, 60), player.p.inv);
addItemToInventory(newItem(ITEM_GOLDINGOT, 60), player.p.inv);
addItemToInventory(newItem(ITEM_APPLE, 1), player.p.inv);
addItemToInventory(newItem(ITEM_ANVIL,0), player.p.inv);
addItemToInventory(newItem(ITEM_CHEST,0), player.p.inv);
addItemToInventory(newItem(ITEM_OVEN,0), player.p.inv);
addItemToInventory(newItem(ITEM_FURNACE,0), player.p.inv);
addItemToInventory(newItem(ITEM_LANTERN,0), player.p.inv);
addItemToInventory(newItem(ITEM_ENCHANTER,0), player.p.inv);
}
}
void playerHurtTile(int tile, int xt, int yt, int damage, int dir){
if(shouldRenderDebug) damage = 99;
=======
void damageAndBreakTile(s8 level, int xt, int yt, int damage, int maxDamage, int replaceTile, int numItems, ...) { void damageAndBreakTile(s8 level, int xt, int yt, int damage, int maxDamage, int replaceTile, int numItems, ...) {
int i; int i;
@ -1485,7 +1426,6 @@ void damageAndBreakTile(s8 level, int xt, int yt, int damage, int maxDamage, int
void playerHurtTile(PlayerData *pd, int tile, s8 level, int xt, int yt, int damage, int dir){ void playerHurtTile(PlayerData *pd, int tile, s8 level, int xt, int yt, int damage, int dir){
if(TESTGODMODE) damage = 99; if(TESTGODMODE) damage = 99;
>>>>>>> 75ec2ee88467d5a8583d55d5eb0d1694ba0e2f3d
//TODO: Most of this can be combined a lot //TODO: Most of this can be combined a lot
switch(tile){ switch(tile){
@ -1582,15 +1522,6 @@ void playerHurtTile(PlayerData *pd, int tile, s8 level, int xt, int yt, int dama
} }
<<<<<<< HEAD
bool playerUseEnergy(int amount){
if(shouldRenderDebug) return true;
if(amount > player.p.stamina) return false;
player.p.stamina -= amount;
return true;
}
=======
>>>>>>> 75ec2ee88467d5a8583d55d5eb0d1694ba0e2f3d
void switchLevel(PlayerData *pd, s8 change){ void switchLevel(PlayerData *pd, s8 change){
pd->entity.level+=change; pd->entity.level+=change;
@ -1602,38 +1533,6 @@ void switchLevel(PlayerData *pd, s8 change){
else sf2d_set_clear_color(0xFF007F00); else sf2d_set_clear_color(0xFF007F00);
} }
<<<<<<< HEAD
if (player.p.activeItem == &noItem || player.p.activeItem->id == TOOL_SWORD || player.p.activeItem->id == TOOL_AXE) {
xt = player.x >> 4;
yt = (player.y + yo) >> 4;
r = 12;
if (player.p.dir == 0) yt = (player.y + r + yo) >> 4;
if (player.p.dir == 1) yt = (player.y - r + yo) >> 4;
if (player.p.dir == 2) xt = (player.x - r) >> 4;
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);
}
}
}
}
void switchLevel(s8 change){
currentLevel+=change;
if(currentLevel > 4) currentLevel = 0; else if(currentLevel < 0) currentLevel = 4;
if(currentLevel == 1) sf2d_set_clear_color(0xFF6C6D82); //sf2d_set_clear_color(RGBA8(0x82, 0x6D, 0x6C, 0xFF));
else if(currentLevel > 1) sf2d_set_clear_color(0xFF666666); //sf2d_set_clear_color(RGBA8(0x66, 0x66, 0x66, 0xFF));
else sf2d_set_clear_color(0xFF007F00); //sf2d_set_clear_color(RGBA8(0x00, 0x7F, 0x00, 0xFF));
updateMusic(currentLevel, daytime);
=======
>>>>>>> 75ec2ee88467d5a8583d55d5eb0d1694ba0e2f3d
//for level 0 background //for level 0 background
updateLevel1Map(); updateLevel1Map();
} }
@ -1730,55 +1629,6 @@ bool useEntity(PlayerData *pd, Entity* e) {
openCraftingMenu(pd, &workbenchRecipes, "Crafting"); openCraftingMenu(pd, &workbenchRecipes, "Crafting");
return true; return true;
case ITEM_FURNACE: case ITEM_FURNACE:
<<<<<<< HEAD
currentRecipes = &furnaceRecipes;
currentCraftTitle = "Smelting";
currentMenu = MENU_CRAFTING;
checkCanCraftRecipes(currentRecipes, player.p.inv);
sortRecipes(currentRecipes);
return true;
case ITEM_OVEN:
currentRecipes = &ovenRecipes;
currentCraftTitle = "Cooking";
currentMenu = MENU_CRAFTING;
checkCanCraftRecipes(currentRecipes, player.p.inv);
sortRecipes(currentRecipes);
return true;
case ITEM_ANVIL:
currentRecipes = &anvilRecipes;
currentCraftTitle = "Forging";
currentMenu = MENU_CRAFTING;
checkCanCraftRecipes(currentRecipes, player.p.inv);
sortRecipes(currentRecipes);
return true;
case ITEM_CHEST:
curChestEntity = e;
curInvSel = 0;
curChestEntity->entityFurniture.r = 0;
curChestEntity->entityFurniture.oSel = 0;
currentMenu = MENU_CONTAINER;
return true;
case ITEM_LOOM:
currentRecipes = &loomRecipes;
currentCraftTitle = "Sewing";
currentMenu = MENU_CRAFTING;
checkCanCraftRecipes(currentRecipes, player.p.inv);
sortRecipes(currentRecipes);
return true;
case ITEM_ENCHANTER:
currentRecipes = &enchanterRecipes;
currentCraftTitle = "Enchanting";
currentMenu = MENU_CRAFTING;
checkCanCraftRecipes(currentRecipes, player.p.inv);
sortRecipes(currentRecipes);
return true;
case ITEM_POTION_MAKER:
currentRecipes = &potionMakerRecipes;
currentCraftTitle = "Brewing";
currentMenu = MENU_CRAFTING;
checkCanCraftRecipes(currentRecipes, player.p.inv);
sortRecipes(currentRecipes);
=======
openCraftingMenu(pd, &furnaceRecipes, "Smelting"); openCraftingMenu(pd, &furnaceRecipes, "Smelting");
return true; return true;
case ITEM_OVEN: case ITEM_OVEN:
@ -1791,7 +1641,10 @@ bool useEntity(PlayerData *pd, Entity* e) {
openCraftingMenu(pd, &loomRecipes, "Crafting"); openCraftingMenu(pd, &loomRecipes, "Crafting");
return true; return true;
case ITEM_ENCHANTER: case ITEM_ENCHANTER:
openCraftingMenu(pd, &enchanterRecipes, "Crafting"); openCraftingMenu(pd, &enchanterRecipes, "Enchanting");
return true;
case ITEM_POTION_MAKER:
openCraftingMenu(pd, &potionMakerRecipes, "Brewing");
return true; return true;
case ITEM_CHEST: case ITEM_CHEST:
pd->curChestEntity = e; pd->curChestEntity = e;
@ -1799,7 +1652,6 @@ bool useEntity(PlayerData *pd, Entity* e) {
pd->ingameMenuInvSelOther = 0; pd->ingameMenuInvSelOther = 0;
pd->curChestEntityR = 0; pd->curChestEntityR = 0;
pd->ingameMenu = MENU_CONTAINER; pd->ingameMenu = MENU_CONTAINER;
>>>>>>> 75ec2ee88467d5a8583d55d5eb0d1694ba0e2f3d
return true; return true;
} }
} else if(e->type == ENTITY_NPC) { } else if(e->type == ENTITY_NPC) {
@ -1809,175 +1661,6 @@ bool useEntity(PlayerData *pd, Entity* e) {
return false; return false;
} }
<<<<<<< HEAD
bool use(int x0, int y0, int x1, int y1) {
Entity * entities[eManager.lastSlot[currentLevel]];
int i;
int ae = getEntities(entities, x0, y0, x1, y1);
for(i = 0; i < ae; ++i){
if(useEntity(entities[i])) return true;
}
return false;
}
bool playerUse() {
int yo = -2;
if (player.p.dir == 0 && use(player.x - 8, player.y + 4 + yo, player.x + 8, player.y + 12 + yo)) return true;
if (player.p.dir == 1 && use(player.x - 8, player.y - 12 + yo, player.x + 8, player.y - 4 + yo)) return true;
if (player.p.dir == 3 && use(player.x + 4, player.y - 8 + yo, player.x + 12, player.y + 8 + yo)) return true;
if (player.p.dir == 2 && use(player.x - 12, player.y - 8 + yo, player.x - 4, player.y + 8 + yo)) return true;
return false;
}
void tickPlayer(){
if (player.hurtTime > 0) player.hurtTime--;
bool swimming = isSwimming();
if (player.p.stamina <= 0 && player.p.staminaRechargeDelay == 0 && player.p.staminaRecharge == 0) {
player.p.staminaRechargeDelay = 40;
}
if (player.p.staminaRechargeDelay > 0) {
--player.p.staminaRechargeDelay;
}
if (player.p.staminaRechargeDelay == 0) {
++player.p.staminaRecharge;
if (swimming) player.p.staminaRecharge = 0;
while (player.p.staminaRecharge > 10) {
player.p.staminaRecharge -= 10;
if (player.p.stamina < 10) ++player.p.stamina;
}
}
player.p.ax = 0;
player.p.ay = 0;
if (k_left.down){
if (!UnderSpeedEffect) {
player.p.ax -= 1;
player.p.dir = 2;
++player.p.walkDist;
} else if (UnderSpeedEffect) {
player.p.ax -= 2;
player.p.dir = 2;
player.p.walkDist = player.p.walkDist + 2;
}
}
if (k_right.down){
if (!UnderSpeedEffect) {
player.p.ax += 1;
player.p.dir = 3;
++player.p.walkDist;
} else if (UnderSpeedEffect) {
player.p.ax += 2;
player.p.dir = 3;
player.p.walkDist = player.p.walkDist + 2;
}
}
if (k_up.down){
if (!UnderSpeedEffect) {
player.p.ay -= 1;
player.p.dir = 1;
++player.p.walkDist;
} else if (UnderSpeedEffect) {
player.p.ay -= 2;
player.p.dir = 1;
player.p.walkDist = player.p.walkDist + 2;
}
}
if (k_down.down){
if (!UnderSpeedEffect) {
player.p.ay += 1;
player.p.dir = 0;
++player.p.walkDist;
} else if (UnderSpeedEffect) {
player.p.ay += 2;
player.p.dir = 0;
player.p.walkDist = player.p.walkDist + 2;
}
}
if (player.p.staminaRechargeDelay % 2 == 0) moveMob(&player, player.p.ax, player.p.ay);
if (swimming && player.p.swimTimer % 60 == 0 && !UnderSwimBreathEffect) {
if (player.p.stamina > 0) {
if(!shouldRenderDebug) --player.p.stamina;
} else {
hurtEntity(&player,1,-1,0xFFAF00FF);
}
}
if (regening && player.p.regenTimer % 90 == 0) {
if(!shouldRenderDebug) healPlayer(1);
}
if (k_pause.clicked){
currentSelection = 0;
currentMenu = MENU_PAUSED;
}
if(k_attack.clicked){
if (player.p.stamina != 0) {
if(!shouldRenderDebug) player.p.stamina--;
player.p.staminaRecharge = 0;
playerAttack();
//addEntityToList(newSlimeEntity(1,200,600,1), &eManager);
}
}
if (k_menu.clicked){
curInvSel = 0;
if(!playerUse()) currentMenu = MENU_INVENTORY;
}
if (k_delete.clicked){
curInvSel = 0;
if(!playerUse()) currentMenu = MENU_ARMOR;
}
if(isSwimming()) ++player.p.swimTimer;
if(UnderStrengthEffect) ++player.p.strengthTimer;
if(player.p.strengthTimer >= 2000) {
player.p.strengthTimer = 0;
UnderStrengthEffect = false;
}
if(UnderSpeedEffect) ++player.p.speedTimer;
if(player.p.speedTimer >= 2000) {
player.p.speedTimer = 0;
UnderSpeedEffect = false;
}
if(regening) ++player.p.regenTimer;
if(player.p.regenTimer >= 2000) {
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;
}
//TODO - maybe move to own function
//Update Minimap
int xp;
int yp;
for(xp = (player.x>>4)-5; xp<(player.x>>4)+5; ++xp) {
for(yp = (player.y>>4)-5; yp<(player.y>>4)+5; ++yp) {
if(xp>=0 && xp<128 && yp>=0 && yp<128) {
if(!getMinimapVisible(currentLevel,xp,yp)) {
setMinimapVisible(currentLevel,xp,yp,true);
}
}
}
}
}
=======
>>>>>>> 75ec2ee88467d5a8583d55d5eb0d1694ba0e2f3d
bool isWater(s8 level, int xt, int yt){ bool isWater(s8 level, int xt, int yt){
return getTile(level, xt, yt)==TILE_WATER; return getTile(level, xt, yt)==TILE_WATER;
} }

View file

@ -386,7 +386,7 @@ void tickMenu(int menu){
case MENU_ABOUT: case MENU_ABOUT:
if (localInputs.k_decline.clicked) currentMenu = MENU_TITLE; if (localInputs.k_decline.clicked) currentMenu = MENU_TITLE;
break; break;
/*
case MENU_ARMOR: case MENU_ARMOR:
if (k_delete.clicked || k_decline.clicked){ if (k_delete.clicked || k_decline.clicked){
currentMenu = MENU_NONE; currentMenu = MENU_NONE;
@ -405,6 +405,7 @@ void tickMenu(int menu){
if (k_up.clicked){ --curInvSel; if(curInvSel < 0)curInvSel=player.p.inv->lastSlot-1;} if (k_up.clicked){ --curInvSel; if(curInvSel < 0)curInvSel=player.p.inv->lastSlot-1;}
if (k_down.clicked){ ++curInvSel; if(curInvSel > player.p.inv->lastSlot-1)curInvSel=0;} if (k_down.clicked){ ++curInvSel; if(curInvSel > player.p.inv->lastSlot-1)curInvSel=0;}
break; break;
*/
case MENU_LOADGAME: case MENU_LOADGAME:
if(!enteringName && !areYouSure){ // World select if(!enteringName && !areYouSure){ // World select

View file

@ -65,7 +65,9 @@ void playerInitInventory(PlayerData *pd) {
addItemToInventory(newItem(ITEM_POWGLOVE,0), &(pd->inventory)); addItemToInventory(newItem(ITEM_POWGLOVE,0), &(pd->inventory));
if(TESTGODMODE) { if(TESTGODMODE) {
addItemToInventory(newItem(TOOL_SHOVEL,4), &(pd->inventory)); addItemToInventory(newItem(ITEM_GOLD_APPLE,1), &(pd->inventory));
addItemToInventory(newItem(ITEM_STRENGTH_POTION,1), &(pd->inventory));
addItemToInventory(newItem(TOOL_SHOVEL,1), &(pd->inventory));
addItemToInventory(newItem(TOOL_HOE,4), &(pd->inventory)); addItemToInventory(newItem(TOOL_HOE,4), &(pd->inventory));
addItemToInventory(newItem(TOOL_SWORD,4), &(pd->inventory)); addItemToInventory(newItem(TOOL_SWORD,4), &(pd->inventory));
addItemToInventory(newItem(TOOL_PICKAXE,4), &(pd->inventory)); addItemToInventory(newItem(TOOL_PICKAXE,4), &(pd->inventory));
@ -231,33 +233,33 @@ bool playerUseItem(PlayerData *pd) {
} }
break; break;
case ITEM_STRENGTH_POTION: case ITEM_STRENGTH_POTION:
if(player.p.health < 20 && playerUseEnergy(2) && player.p.strengthTimer == 0){ if(pd->entity.p.health < 20 && playerUseEnergy(pd, 2) && pd->entity.p.strengthTimer == 0){
potionEffect(1); potionEffect(1);
--item->countLevel; --item->countLevel;
} }
return 0; return 0;
case ITEM_SPEED_POTION: case ITEM_SPEED_POTION:
if(player.p.health < 20 && playerUseEnergy(2) && player.p.strengthTimer == 0){ if(pd->entity.p.health < 20 && playerUseEnergy(pd, 2) && pd->entity.p.speedTimer == 0){
potionEffect(2); potionEffect(2);
--item->countLevel; --item->countLevel;
} }
return 0; return 0;
case ITEM_REGEN_POTION: case ITEM_REGEN_POTION:
if(player.p.health < 20 && playerUseEnergy(2) && player.p.strengthTimer == 0){ if(pd->entity.p.health < 20 && playerUseEnergy(pd, 2) && pd->entity.p.regenTimer == 0){
potionEffect(3); potionEffect(3);
--item->countLevel; --item->countLevel;
} }
return 0; return 0;
case ITEM_SWIM_BREATH_POTION: case ITEM_SWIM_BREATH_POTION:
if(player.p.health < 20 && playerUseEnergy(2) && player.p.strengthTimer == 0){ if(pd->entity.p.health < 20 && playerUseEnergy(pd, 2) && pd->entity.p.swimBreathTimer == 0){
potionEffect(4); potionEffect(4);
--item->countLevel; --item->countLevel;
} }
return 0; return 0;
case ITEM_GOLD_APPLE: case ITEM_GOLD_APPLE:
if(player.p.health < 10 && playerUseEnergy(1)){ if(pd->entity.p.health < 10 && playerUseEnergy(pd, 1)){
healPlayer(8); playerHeal(pd, 8);
playerUseEnergy(-10); playerUseEnergy(pd, -10);
--item->countLevel; --item->countLevel;
} }
return 0; return 0;

View file

@ -91,6 +91,6 @@ PlayerData* getLocalPlayer();
void tickPlayer(PlayerData *pd, bool inmenu); void tickPlayer(PlayerData *pd, bool inmenu);
void playerSetActiveItem(PlayerData *pd, Item * item); void playerSetActiveItem(PlayerData *pd, Item * item);
bool playerUseEnergy(PlayerData *pd, int amount); bool playerUseEnergy(PlayerData * pd, int amount);
void playerHeal(PlayerData *pd, int amount); void playerHeal(PlayerData *pd, int amount);
void playerSpawn(PlayerData *pd); void playerSpawn(PlayerData *pd);

View file

@ -350,21 +350,12 @@ void tickNPCMenu(PlayerData *pd) {
questManager->questlines[1].currentQuest = 2; questManager->questlines[1].currentQuest = 2;
<<<<<<< HEAD
currentTalk0 = "Thank you these will be";
currentTalk1 = "really helpful.";
currentTalk2 = "Here take this book with";
currentTalk3 = "it you should be able to";
currentTalk4 = "easily understand anything";
currentTalk5 = "a dwarf can say.";
=======
data->currentTalk0 = "Thank you these will be"; data->currentTalk0 = "Thank you these will be";
data->currentTalk1 = "really helpfull."; data->currentTalk1 = "really helpfull.";
data->currentTalk2 = "Here take this book with"; data->currentTalk2 = "Here take this book with";
data->currentTalk3 = "it you should be able to"; data->currentTalk3 = "it you should be able to";
data->currentTalk4 = "easily understand anything"; data->currentTalk4 = "easily understand anything";
data->currentTalk5 = "a dwarf can say."; data->currentTalk5 = "a dwarf can say.";
>>>>>>> 75ec2ee88467d5a8583d55d5eb0d1694ba0e2f3d
data->currentTalkOption0 = "Thanks"; data->currentTalkOption0 = "Thanks";
} else { } else {
@ -428,11 +419,7 @@ void renderNPCMenu(NPC_MenuData *data) {
//TODO: Handle upon currentNPC as well as the fitting quest progress //TODO: Handle upon currentNPC as well as the fitting quest progress
switch(data->currentNPC) { switch(data->currentNPC) {
case NPC_GIRL: case NPC_GIRL:
<<<<<<< HEAD
if(currentNPCMenu==NPC_MENU_TALK) renderTalkMenu("Girl Jill");
=======
if(data->currentNPCMenu==NPC_MENU_TALK) renderTalkMenu(data, "Maria"); if(data->currentNPCMenu==NPC_MENU_TALK) renderTalkMenu(data, "Maria");
>>>>>>> 75ec2ee88467d5a8583d55d5eb0d1694ba0e2f3d
break; break;
case NPC_PRIEST: case NPC_PRIEST:
if(data->currentNPCMenu==NPC_MENU_TALK) renderTalkMenu(data, "Priest Brom"); if(data->currentNPCMenu==NPC_MENU_TALK) renderTalkMenu(data, "Priest Brom");

View file

@ -245,10 +245,10 @@ void savePlayerInternal(char *filename, PlayerData *player, EntityManager *eMana
fwrite(&UnderSpeedEffect, sizeof(bool), 1, file); fwrite(&UnderSpeedEffect, sizeof(bool), 1, file);
fwrite(&regening, sizeof(bool), 1, file); fwrite(&regening, sizeof(bool), 1, file);
fwrite(&UnderSwimBreathEffect, sizeof(bool), 1, file); fwrite(&UnderSwimBreathEffect, sizeof(bool), 1, file);
fwrite(&player->p.strengthTimer, sizeof(int), 1, file); fwrite(&player->entity.p.strengthTimer, sizeof(int), 1, file);
fwrite(&player->p.speedTimer, sizeof(int), 1, file); fwrite(&player->entity.p.speedTimer, sizeof(int), 1, file);
fwrite(&player->p.swimBreathTimer, sizeof(int), 1, file); fwrite(&player->entity.p.swimBreathTimer, sizeof(int), 1, file);
fwrite(&player->p.regenTimer, sizeof(int), 1, file); fwrite(&player->entity.p.regenTimer, sizeof(int), 1, file);
fclose(file); fclose(file);
} }
@ -542,10 +542,10 @@ void loadPlayerInternal(char *filename, PlayerData *player, EntityManager *eMana
fread(&UnderSpeedEffect, sizeof(bool), 1, file); fread(&UnderSpeedEffect, sizeof(bool), 1, file);
fread(&regening, sizeof(bool), 1, file); fread(&regening, sizeof(bool), 1, file);
fread(&UnderSwimBreathEffect, sizeof(bool), 1, file); fread(&UnderSwimBreathEffect, sizeof(bool), 1, file);
fread(&player->p.strengthTimer, sizeof(int), 1, file); fread(&player->entity.p.strengthTimer, sizeof(int), 1, file);
fread(&player->p.speedTimer, sizeof(int), 1, file); fread(&player->entity.p.speedTimer, sizeof(int), 1, file);
fread(&player->p.swimBreathTimer, sizeof(int), 1, file); fread(&player->entity.p.swimBreathTimer, sizeof(int), 1, file);
fread(&player->p.regenTimer, sizeof(int), 1, file); fread(&player->entity.p.regenTimer, sizeof(int), 1, file);
fclose(file); fclose(file);
} }