Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <conio.h>
- #include<windows.h>
- using namespace std;
- struct player
- {
- char sprite[17] = { '_','_','_','|','O','-','o','|','/','|','_','_','_','|','\\','|','|' };
- int Hrp = 10, dir2 = 0;
- int Hcp = 14, dir = 0, lvldir = 0, templvldir = 0;
- int orientation = 0;
- char healthbar = { '-' };
- int heart = 3;
- int health = 100;
- int money = 0;
- int kills = 0;
- int reward = 0;
- int level = 1;
- int levelct = 0;
- int reset = 0;
- char interact_draw[12] = { '[','E',']',' ','I','n','t','e','r','a','c','t' };
- int interact = 0, interact_trigger = 0;
- char pickup_draw[10] = { '[','S',']',' ','P','i','c','k','u','p' };
- int pickup = 0, pickup_trigger = 0, portalgo = 0, portal_trigger = 0;
- int jump = 0, jump_trigger = 0, gravity = 0;
- char portinter_draw[10] = { '[','I',']',' ','P','o','r','t','a','l' };
- };
- struct npcs
- {
- //Random NPC
- int NPC_rp = 15;
- int NPC_cp = 40;
- char Rsprite[18] = { '_','_','_','|','O','_','o','|','/','|','_','_','_','|','\\','|','|', '-' };
- int NPC_Rand = 0;
- int NPC_Rand_terminate = 0;
- //Enemy NPC
- int Erp = 15;
- int Ecp = 70;
- char esprite[17] = { '_','\\','_','|','@','-','@','|','c','|','_','_','_','|','c','|','|' };
- char epistol[3] = { '-','-','-' };
- int NPC_En = 0;
- int NPC_En_terminate = 0;
- int En_aggro = 0;
- //Enemy Dog
- int Drp = 15;
- int Dcp = 57;
- char dsprite[11] = { '-', '-','-','_','_','_','/','/','\\', '-', '-' };
- int En_D = 0;
- int En_D_terminate = 0;
- int En_D_aggro = 0;
- int Ddmg = 0;
- //Enemy Slime
- int SLrp = 15;
- int SLcp = 60;
- char Ssprite[15] = { '_', '_', '_', '_', '|', '@', '@', '|', '|', '_', '_', '_', '_', '|' };
- int En_Sl = 0;
- int En_Sl_terminate = 0;
- int En_Sl_aggro;
- int Sldmg = 0;
- //Shop NPC
- int Srp = 15;
- int Scp = 40;
- char interaction22[17] = { 'H','e','l','l','o',' ','T','r','a','v','e','l','l','e','r','!','\0' };
- int NPC_Shop;
- int NPC_Shop_terminate = 0;
- //NPC chat dialogs
- char interaction1[26] = { 'H','E','L','P','!',' ','P','l','e','a','s','e',' ','h','e','l','p',' ','i','m',' ','h','u','r','t', '!' };
- char interaction2[48] = { 'A',' ','r','o','b','o','t',' ','c','a','m','e',' ','a','n','d',' ','k','i','d','n','a','p','p','e','d',' ','m','y',' ','d','a','u','g','h','t','e','r','!' };
- char interaction3[29] = { 'U','s','e',' ','t','h','e',' ','p','i','s','t','o','l',' ','o','n',' ','t','h','e',' ','g','r','o', 'u','n','d', '\0' };
- char interaction4[12] = { 'M','r',' ','H','o','u', 'o', 'u', 'o', 'i' , 'n' , '\0' };
- char interaction5[11] = { 'E','N','E','M','Y',' ','R', 'O', 'B', 'O', 'T' };
- char interaction6[29] = { 'T','H','A','N','K',' ','Y','O','U','!',' ','Y','o','u',' ','s','a','v','e','d',' ','m','y',' ','g', 'i', 'r', 'l','!' };
- char interaction7[20] = { 'H','e','r','e',' ','i','s',' ','y','o','u','r',' ','r','e','w','a','r','d','.' };
- };
- struct items
- {
- char inventory_draw[2] = { '_', '|' };
- int inventory = 0;
- char pistol_draw[3] = { '-', '-', '-' };
- int pistol = 0;
- char sword_draw[5] = { '+','-','/','-','\\' };
- int sword = 0;
- int swordtrigger = 0;
- };
- struct attack
- {
- int Brp = 0, Bcp = 0, firetrigger = 0, damage = 0, bulletpos = 0, Bdir = 0, Bdir2 = 0;
- char Bsprite = '-';
- int En_Brp = 0, En_Bcp = 0, En_firetrigger = 0, En_damage = 0, En_bulletpos = 0, En_Bdir = 0, En_Bdir2 = 0;
- char En_Bsprite = 'o';
- };
- struct objects
- {
- char portsprite = 177;
- int portrp = 15;
- int portcp = 78;
- int portalcheck = 0;
- };
- struct Elevator
- {
- char elvsprite = '@';
- int elvrp = 18, elvdir = 0;
- int elvcp = 171;
- int trigelv = 0;
- int elvcount = 0;
- int elvstep = 0;
- };
- class Doggie
- {
- public:
- //Enemy Dog
- int Drp = 15;
- int Dcp = 57, Ddir = 0;
- char dsprite[11] = { '-', '-','-','_','_','_','/','/','\\', '-', '-' };
- int En_D = 1;
- int En_D_terminate = 0;
- int En_D_aggro = 0;
- int Ddmg = 0;
- int Dcount = 0;
- int change = 1;
- void movedoggie()
- {
- if (En_D != 0)
- {
- Ddir = 0;
- Dcount++;
- if (Dcount % 4 == 0)
- {
- Dcp--, Ddir = -1;
- }
- }
- }
- void setdoggie(char game[][80])
- {
- if (En_D == 1)
- {
- game[Drp][Dcp - Ddir] = ' ';
- game[Drp][Dcp + 1 - Ddir] = ' ';
- game[Drp][Dcp + 2 - Ddir] = ' ';
- game[Drp][Dcp + 3 - Ddir] = ' ';
- game[Drp][Dcp + 4 - Ddir] = ' ';
- game[Drp][Dcp + 5 - Ddir] = ' ';
- game[Drp][Dcp + 6 - Ddir] = ' ';
- game[Drp + 1][Dcp + 3 - Ddir] = ' ';
- //game[d[1].Drp + 1][z.Dcp + 4] = z.dsprite[8]; (when running)
- game[Drp + 1][Dcp + 5 - Ddir] = ' ';
- //game[d[1].Drp + 1][z.Dcp + 6] = z.dsprite[10]; (when running)
- //Doggie Enemy
- game[Drp][Dcp] = dsprite[0]; //nose
- game[Drp][Dcp + 1] = dsprite[1]; //face
- game[Drp][Dcp + 2] = dsprite[2]; //ears
- game[Drp][Dcp + 3] = dsprite[3]; //body
- game[Drp][Dcp + 4] = dsprite[4]; //body
- game[Drp][Dcp + 5] = dsprite[5]; //body
- game[Drp][Dcp + 6] = dsprite[6]; //body
- game[Drp + 1][Dcp + 3] = dsprite[7]; //left leg
- //game[d[1].Drp + 1][z.Dcp + 4] = z.dsprite[8]; (when running)
- game[Drp + 1][Dcp + 5] = dsprite[9]; // right leg
- //game[d[1].Drp + 1][z.Dcp + 6] = z.dsprite[10]; (when running)
- }
- }
- };
- class EnemyNPC
- {
- public:
- //Enemy NPC
- int Erp = 15;
- int Ecp = 70;
- char esprite[17] = { '_','\\','_','|','@','-','@','|','c','|','_','_','_','|','c','|','|' };
- char epistol[3] = { '-','-','-' };
- int NPC_En = 0;
- int NPC_En_terminate = 0;
- int En_aggro = 0;
- };
- void controller(char game[][80], char keyB, player &x, items &i, attack &a, Elevator&e)
- {
- if (keyB == 'a' || keyB == 'A')
- {
- x.orientation = 1;
- if (game[x.Hrp + 1][x.Hcp - 3] != '#')
- {
- if (x.level < 4)
- {
- x.Hcp--, x.dir = -1;
- }
- else
- {
- if (x.level == 4)
- {
- if (x.lvldir >= 101)
- {
- x.Hcp--, x.dir = -1;
- x.templvldir++;
- }
- else if (x.lvldir != 0)
- {
- x.lvldir--;
- }
- }
- else if (x.lvldir != 0)
- {
- x.lvldir--;
- }
- }
- }
- }
- if (keyB == 'd' || keyB == 'D')
- {
- x.orientation = 0;
- if (game[x.Hrp + 1][x.Hcp + 7] != '#')
- {
- if (x.level < 4)
- {
- x.Hcp++, x.dir = 1;
- }
- else
- {
- if (x.level == 4)
- {
- if (x.lvldir < 101)
- {
- x.lvldir++;
- }
- else
- {
- x.Hcp++, x.dir = 1;
- }
- }
- else
- {
- x.lvldir++;
- }
- }
- }
- }
- if (keyB == 'w' || keyB == 'W' || keyB == 32)
- {
- if (x.gravity == 0)
- {
- if (x.jump_trigger == 0 && game[x.Hrp + 4][x.Hcp] == '#' || game[x.Hrp + 4][x.Hcp] == '@')
- {
- x.jump_trigger = 1;
- }
- }
- }
- if (keyB == 'x' || keyB == 'X')
- {
- if (i.pistol == 1 || i.sword == 1)
- {
- if (game[x.Hrp + 1][x.Hcp + 7] != '#')
- {
- if (a.firetrigger == 0)
- {
- a.Brp = x.Hrp + 2, a.Bcp = x.Hcp + 7;
- if (game[x.Hrp][x.Hcp + 1] != '#')
- {
- a.firetrigger = 1;
- }
- }
- }
- }
- }
- if (keyB == 'e' || keyB == 'E' || keyB == 13)
- {
- if (x.Hcp > 20)
- {
- x.interact++;
- }
- }
- if (keyB == 's' || keyB == 'S')
- {
- if (x.pickup_trigger == 1)
- {
- x.pickup = 1;
- }
- }
- if (keyB == 'i' || keyB == 'I')
- {
- if (x.portal_trigger == 1)
- {
- x.portalgo = 1;
- }
- }
- }
- void setlevels(char game[][80], char lvl[][400], player &x, Elevator &e, Doggie d[])
- {
- for (int i = 0; i < 20; i++)
- for (int j = 0; j < 400; j++)
- lvl[i][j] = ' ';
- for (int i = 0; i < 80; i++)
- lvl[0][i] = ' ';
- if (x.level == 1)
- {
- d[1].movedoggie();
- d[1].setdoggie(game);
- if (d[2].change == 1)
- {
- d[2].Dcp = 40;
- d[2].change = 0;
- }
- d[2].movedoggie();
- d[2].setdoggie(game);
- }
- if (x.level == 4)
- {
- e.trigelv = 1;
- if (e.trigelv == 1)
- {
- //erase elv
- lvl[e.elvrp + e.elvdir][e.elvcp] = ' ';
- lvl[e.elvrp + e.elvdir][e.elvcp + 1] = ' ';
- lvl[e.elvrp + e.elvdir][e.elvcp + 2] = ' ';
- lvl[e.elvrp + e.elvdir][e.elvcp + 3] = ' ';
- //draw elv
- lvl[e.elvrp][e.elvcp] = e.elvsprite;
- lvl[e.elvrp][e.elvcp + 1] = e.elvsprite;
- lvl[e.elvrp][e.elvcp + 2] = e.elvsprite;
- lvl[e.elvrp][e.elvcp + 3] = e.elvsprite;
- }
- for (int i = 40; i < 70; i++)
- {
- lvl[14][i] = '#';
- }
- int g = 0;
- for (int i = 1; i < 5; i++)
- {
- lvl[14 + i][40 - g] = '#';
- lvl[14 + i][40 - (g + 1)] = '#';
- lvl[14 + i][40 - (g + 2)] = '#';
- lvl[14 + i][40 - (g + 3)] = '#';
- g += 3;
- }
- for (int i = 100; i < 130; i++)
- {
- lvl[14][i] = '#';
- }
- for (int i = 141; i < 171; i++)
- {
- lvl[9][i] = '#';
- }
- g = 0;
- for (int i = 1; i < 5; i++)
- {
- lvl[14 + i][100 - g] = '#';
- lvl[14 + i][100 - (g + 1)] = '#';
- lvl[14 + i][100 - (g + 2)] = '#';
- lvl[14 + i][100 - (g + 3)] = '#';
- g += 3;
- }
- g = 0;
- for (int i = 1; i < 5; i++)
- {
- lvl[9 + i][141 - g] = '#';
- lvl[9 + i][141 - (g + 1)] = '#';
- lvl[9 + i][141 - (g + 2)] = '#';
- lvl[9 + i][141 - (g + 3)] = '#';
- g += 3;
- }
- for (int i = 1; i < 19; i++)
- {
- for (int j = 1; j < 79; j++)
- {
- game[i][j] = lvl[i][j + x.lvldir];
- }
- }
- }
- }
- void setplayer(char game[][80], player &x)
- {
- if (x.level > 1 && x.reset == 1)
- {
- game[x.Hrp][x.Hcp] = ' '; //head
- game[x.Hrp][x.Hcp + 1] = ' '; //head
- game[x.Hrp][x.Hcp + 2] = ' '; //head
- game[x.Hrp + 1][x.Hcp - 1] = ' '; //head
- game[x.Hrp + 1][x.Hcp] = ' '; //left eye
- game[x.Hrp + 1][x.Hcp + 1] = ' '; //mouth
- game[x.Hrp + 1][x.Hcp + 2] = ' '; //right eye
- game[x.Hrp + 1][x.Hcp + 3] = ' '; //head
- game[x.Hrp + 2][x.Hcp - 2] = ' '; //left arm
- game[x.Hrp + 2][x.Hcp - 1] = ' '; //body
- game[x.Hrp + 2][x.Hcp] = ' '; //body
- game[x.Hrp + 2][x.Hcp + 1] = ' '; //body
- game[x.Hrp + 2][x.Hcp + 2] = ' '; //body
- game[x.Hrp + 2][x.Hcp + 3] = ' '; //body
- game[x.Hrp + 3][x.Hcp] = ' '; //left leg
- game[x.Hrp + 3][x.Hcp + 2] = ' '; //right leg
- game[x.Hrp + 2 - x.dir2][x.Hcp + 4 - x.dir] = ' ';
- game[x.Hrp + 2 - x.dir2][x.Hcp + 5 - x.dir] = ' ';
- game[x.Hrp + 2 - x.dir2][x.Hcp + 6 - x.dir] = ' ';
- x.Hrp = 10, x.Hcp = 14;
- x.reset = 0;
- }
- game[x.Hrp - x.dir2][x.Hcp - x.dir] = ' '; //head
- game[x.Hrp - x.dir2][x.Hcp + 1 - x.dir] = ' '; //head
- game[x.Hrp - x.dir2][x.Hcp + 2 - x.dir] = ' '; //head
- game[x.Hrp + 1 - x.dir2][x.Hcp - 1 - x.dir] = ' '; //head
- game[x.Hrp + 1 - x.dir2][x.Hcp - x.dir] = ' '; //left eye
- game[x.Hrp + 1 - x.dir2][x.Hcp + 1 - x.dir] = ' '; //mouth
- game[x.Hrp + 1 - x.dir2][x.Hcp + 2 - x.dir] = ' '; //right eye
- game[x.Hrp + 1 - x.dir2][x.Hcp + 3 - x.dir] = ' '; //head
- game[x.Hrp + 2 - x.dir2][x.Hcp - 2 - x.dir] = ' '; //left arm
- game[x.Hrp + 2 - x.dir2][x.Hcp - 1 - x.dir] = ' '; //body
- game[x.Hrp + 2 - x.dir2][x.Hcp - x.dir] = ' '; //body
- game[x.Hrp + 2 - x.dir2][x.Hcp + 1 - x.dir] = ' '; //body
- game[x.Hrp + 2 - x.dir2][x.Hcp + 2 - x.dir] = ' '; //body
- game[x.Hrp + 2 - x.dir2][x.Hcp + 3 - x.dir] = ' '; //body
- game[x.Hrp + 3 - x.dir2][x.Hcp - x.dir] = ' '; //left leg
- game[x.Hrp + 3 - x.dir2][x.Hcp + 2 - x.dir] = ' '; //right leg
- game[x.Hrp][x.Hcp] = x.sprite[0]; //head
- game[x.Hrp][x.Hcp + 1] = x.sprite[1]; //head
- game[x.Hrp][x.Hcp + 2] = x.sprite[2]; //head
- game[x.Hrp + 1][x.Hcp - 1] = x.sprite[3]; //head
- if (x.orientation == 0)
- {
- game[x.Hrp + 1][x.Hcp] = x.sprite[4]; //left eye
- }
- else
- {
- game[x.Hrp + 1][x.Hcp] = x.sprite[6]; //left eye
- }
- game[x.Hrp + 1][x.Hcp + 1] = x.sprite[5]; //mouth
- if (x.orientation == 0)
- {
- game[x.Hrp + 1][x.Hcp + 2] = x.sprite[6]; //right eye
- }
- else
- {
- game[x.Hrp + 1][x.Hcp + 2] = x.sprite[4]; //right eye
- }
- game[x.Hrp + 1][x.Hcp + 3] = x.sprite[7]; //head
- game[x.Hrp + 2][x.Hcp - 2] = x.sprite[8]; //left arm
- game[x.Hrp + 2][x.Hcp - 1] = x.sprite[9]; //body
- game[x.Hrp + 2][x.Hcp] = x.sprite[10]; //body
- game[x.Hrp + 2][x.Hcp + 1] = x.sprite[11]; //body
- game[x.Hrp + 2][x.Hcp + 2] = x.sprite[12]; //body
- game[x.Hrp + 2][x.Hcp + 3] = x.sprite[13]; //body
- game[x.Hrp + 3][x.Hcp] = x.sprite[15]; //left leg
- game[x.Hrp + 3][x.Hcp + 2] = x.sprite[16]; //right leg
- //Left overs fix
- if (game[x.Hrp + 2][x.Hcp + 7] == '-')
- {
- game[x.Hrp + 2][x.Hcp + 7] = ' ';
- }
- if (game[x.Hrp + 3][x.Hcp + 3] == '|')
- {
- game[x.Hrp + 3][x.Hcp + 3] = ' ';
- }
- if (game[x.Hrp + 3][x.Hcp - 1] == '|')
- {
- game[x.Hrp + 3][x.Hcp - 1] = ' ';
- }
- if (game[x.Hrp + 2][x.Hcp - 3] == '/')
- {
- game[x.Hrp + 2][x.Hcp - 3] = ' ';
- }
- if (game[x.Hrp + 3][x.Hcp + 1] == '|')
- {
- game[x.Hrp + 3][x.Hcp + 1] = ' ';
- }
- }
- void inventory(char game[][80], player &x, items &i, attack &a)
- {
- for (int i = 50; i < 73; i++)
- {
- game[1][i] = '_';
- game[3][i] = '_';
- }
- for (int i = 2; i < 4; i++)
- {
- game[i][49] = '|';
- game[i][55] = '|';
- game[i][61] = '|';
- game[i][67] = '|';
- game[i][73] = '|';
- }
- if (i.pistol == 1)
- {
- game[2][51] = i.pistol_draw[0];
- game[2][52] = i.pistol_draw[1];
- game[2][53] = i.pistol_draw[2];
- game[x.Hrp + 2 - x.dir2][x.Hcp + 4 - x.dir] = ' ';
- game[x.Hrp + 2 - x.dir2][x.Hcp + 5 - x.dir] = ' ';
- game[x.Hrp + 2 - x.dir2][x.Hcp + 6 - x.dir] = ' ';
- game[x.Hrp + 2][x.Hcp + 4] = i.pistol_draw[0];
- game[x.Hrp + 2][x.Hcp + 5] = i.pistol_draw[1];
- game[x.Hrp + 2][x.Hcp + 6] = i.pistol_draw[2];
- a.Bsprite = '>';
- game[a.Brp][a.Bcp - a.Bdir] = ' ';
- game[a.Brp][a.Bcp] = a.Bsprite;
- }
- if (i.sword == 1)
- {
- game[x.Hrp + 2 - x.dir2][x.Hcp + 4 - x.dir] = ' ';
- game[x.Hrp + 2 - x.dir2][x.Hcp + 5 - x.dir] = ' ';
- game[x.Hrp + 2 - x.dir2][x.Hcp + 6 - x.dir] = ' ';
- game[x.Hrp + 2][x.Hcp + 4] = i.sword_draw[0];
- game[x.Hrp + 2][x.Hcp + 5] = i.sword_draw[1];
- game[x.Hrp + 2][x.Hcp + 6] = i.sword_draw[1];
- a.Bsprite = ')';
- game[a.Brp][a.Bcp - a.Bdir] = ' ';
- game[a.Brp][a.Bcp + 1 - a.Bdir] = ' ';
- game[a.Brp][a.Bcp] = a.Bsprite;
- game[a.Brp][a.Bcp + 1] = a.Bsprite;
- }
- if (i.pistol != 1 && i.sword != 1)
- {
- game[x.Hrp + 2 - x.dir2][x.Hcp + 4 - x.dir] = ' '; //right arm
- }
- if (i.pistol != 1 && i.sword != 1)
- {
- game[x.Hrp + 2][x.Hcp + 4] = x.sprite[14]; //right arm
- }
- }
- void npc(char game[][80], player &x, npcs &z)
- {
- int ct = 0;
- if (z.NPC_Rand == 1)
- {
- game[z.NPC_rp][z.NPC_cp] = z.Rsprite[0]; //head
- game[z.NPC_rp][z.NPC_cp + 1] = z.Rsprite[1]; //head
- game[z.NPC_rp][z.NPC_cp + 2] = z.Rsprite[2]; //head
- game[z.NPC_rp + 1][z.NPC_cp - 1] = z.Rsprite[3]; //head
- game[z.NPC_rp + 1][z.NPC_cp] = z.Rsprite[4]; //left eye
- game[z.NPC_rp + 1][z.NPC_cp + 1] = z.Rsprite[5]; //mouth
- game[z.NPC_rp + 1][z.NPC_cp + 2] = z.Rsprite[6]; //right eye
- game[z.NPC_rp + 1][z.NPC_cp + 3] = z.Rsprite[7]; //head
- game[z.NPC_rp + 2][z.NPC_cp - 2] = z.Rsprite[8]; //left arm
- game[z.NPC_rp + 2][z.NPC_cp - 1] = z.Rsprite[9]; //body
- game[z.NPC_rp + 2][z.NPC_cp] = z.Rsprite[10]; //body
- game[z.NPC_rp + 2][z.NPC_cp + 1] = z.Rsprite[11]; //body
- game[z.NPC_rp + 2][z.NPC_cp + 2] = z.Rsprite[12]; //body
- game[z.NPC_rp + 2][z.NPC_cp + 3] = z.Rsprite[13]; //body
- game[z.Srp + 2][z.Scp + 4] = z.Rsprite[14]; //right arm
- game[z.NPC_rp + 3][z.NPC_cp] = z.Rsprite[15]; //left leg
- game[z.NPC_rp + 3][z.NPC_cp + 2] = z.Rsprite[16]; //right leg
- game[z.NPC_rp + 3][z.NPC_cp - 3] = z.Rsprite[17]; //thingy
- for (int i = z.NPC_cp - 4; i < z.NPC_cp + 7; i++)
- {
- game[z.NPC_rp - 2][i] = z.interaction4[0 + ct];
- ct++;
- }
- }
- if (z.NPC_En == 1)
- {
- game[z.Erp][z.Ecp] = z.esprite[0]; //head
- game[z.Erp][z.Ecp + 1] = z.esprite[1]; //antenna left
- game[z.Erp][z.Ecp + 2] = z.esprite[2]; //head
- game[z.Erp + 1][z.Ecp - 1] = z.esprite[3]; //head
- game[z.Erp + 1][z.Ecp] = z.esprite[4]; //left eye
- game[z.Erp + 1][z.Ecp + 1] = z.esprite[5]; //mouth
- game[z.Erp + 1][z.Ecp + 2] = z.esprite[6]; //right eye
- game[z.Erp + 1][z.Ecp + 3] = z.esprite[7]; //head
- game[z.Erp + 2][z.Ecp - 2] = z.esprite[8]; //left arm
- game[z.Erp + 2][z.Ecp - 1] = z.esprite[9]; //body
- game[z.Erp + 2][z.Ecp] = z.esprite[10]; //body
- game[z.Erp + 2][z.Ecp + 1] = z.esprite[11]; //body
- game[z.Erp + 2][z.Ecp + 2] = z.esprite[12]; //body
- game[z.Erp + 2][z.Ecp + 3] = z.esprite[13]; //body
- game[z.Erp + 2][z.Ecp + 4] = z.esprite[14]; //right arm
- game[z.Erp + 3][z.Ecp] = z.esprite[15]; //left leg
- game[z.Erp + 3][z.Ecp + 2] = z.esprite[16]; //right leg
- game[z.Erp + 2][z.Ecp - 3] = z.epistol[0];
- game[z.Erp + 2][z.Ecp - 4] = z.epistol[1];
- game[z.Erp + 2][z.Ecp - 5] = z.epistol[2];
- game[z.Erp - 1][z.Ecp - 1] = x.healthbar;
- game[z.Erp - 1][z.Ecp] = x.healthbar;
- game[z.Erp - 1][z.Ecp + 1] = x.healthbar;
- game[z.Erp - 1][z.Ecp + 2] = x.healthbar;
- game[z.Erp - 1][z.Ecp + 3] = x.healthbar;
- }
- if (z.En_D == 1)
- {
- //Doggie Enemy
- game[z.Drp][z.Dcp] = z.dsprite[0]; //nose
- game[z.Drp][z.Dcp + 1] = z.dsprite[1]; //face
- game[z.Drp][z.Dcp + 2] = z.dsprite[2]; //ears
- game[z.Drp][z.Dcp + 3] = z.dsprite[3]; //body
- game[z.Drp][z.Dcp + 4] = z.dsprite[4]; //body
- game[z.Drp][z.Dcp + 5] = z.dsprite[5]; //body
- game[z.Drp][z.Dcp + 6] = z.dsprite[6]; //body
- game[z.Drp + 1][z.Dcp + 3] = z.dsprite[7]; //left leg
- //game[z.Drp + 1][z.Dcp + 4] = z.dsprite[8]; (when running)
- game[z.Drp + 1][z.Dcp + 5] = z.dsprite[9]; // right leg
- //game[z.Drp + 1][z.Dcp + 6] = z.dsprite[10]; (when running)
- game[z.Drp - 1][z.Dcp] = x.healthbar;
- game[z.Drp - 1][z.Dcp + 1] = x.healthbar;
- game[z.Drp - 1][z.Dcp + 2] = x.healthbar;
- }
- if (z.En_Sl == 1)
- {
- //Enemy Slime
- game[z.SLrp][z.SLcp + 1] = z.Ssprite[0]; //body
- game[z.SLrp][z.SLcp + 2] = z.Ssprite[1]; //body
- game[z.SLrp][z.SLcp + 3] = z.Ssprite[2]; //body
- game[z.SLrp][z.SLcp + 4] = z.Ssprite[3]; //body
- game[z.SLrp + 1][z.SLcp] = z.Ssprite[4]; //body
- game[z.SLrp + 1][z.SLcp + 1] = z.Ssprite[5]; //left eye
- game[z.SLrp + 1][z.SLcp + 3] = z.Ssprite[6]; //right eye
- game[z.SLrp + 1][z.SLcp + 5] = z.Ssprite[7]; //body
- game[z.SLrp + 2][z.SLcp] = z.Ssprite[8]; //body
- game[z.SLrp + 2][z.SLcp + 1] = z.Ssprite[9]; //body
- game[z.SLrp + 2][z.SLcp + 2] = z.Ssprite[10]; //mouth
- game[z.SLrp + 2][z.SLcp + 3] = z.Ssprite[11]; //body
- game[z.SLrp + 2][z.SLcp + 4] = z.Ssprite[12]; //body
- game[z.SLrp + 2][z.SLcp + 5] = z.Ssprite[13]; //body
- game[z.SLrp + 2][z.SLcp + 6] = z.Ssprite[14]; //body
- }
- if (z.NPC_Shop == 1)
- {
- game[z.Srp][z.Scp] = x.sprite[0]; //head
- game[z.Srp][z.Scp + 1] = x.sprite[1]; //head
- game[z.Srp][z.Scp + 2] = x.sprite[2]; //head
- game[z.Srp + 1][z.Scp - 1] = x.sprite[3]; //head
- game[z.Srp + 1][z.Scp] = x.sprite[4]; //left eye
- game[z.Srp + 1][z.Scp + 1] = x.sprite[5]; //mouth
- game[z.Srp + 1][z.Scp + 2] = x.sprite[6]; //right eye
- game[z.Srp + 1][z.Scp + 3] = x.sprite[7]; //head
- game[z.Srp + 2][z.Scp - 2] = x.sprite[8]; //left arm
- game[z.Srp + 2][z.Scp - 1] = x.sprite[9]; //body
- game[z.Srp + 2][z.Scp] = x.sprite[10]; //body
- game[z.Srp + 2][z.Scp + 1] = x.sprite[11]; //body
- game[z.Srp + 2][z.Scp + 2] = x.sprite[12]; //body
- game[z.Srp + 2][z.Scp + 3] = x.sprite[13]; //body
- game[z.Srp + 2][z.Scp + 4] = x.sprite[14]; //right arm
- game[z.Srp + 3][z.Scp] = x.sprite[15]; //left leg
- game[z.Srp + 3][z.Scp + 2] = x.sprite[16]; //right leg
- }
- if (z.NPC_Rand_terminate == 1)
- {
- game[z.NPC_rp][z.NPC_cp] = ' '; //head
- game[z.NPC_rp][z.NPC_cp + 1] = ' '; //head
- game[z.NPC_rp][z.NPC_cp + 2] = ' '; //head
- game[z.NPC_rp + 1][z.NPC_cp - 1] = ' '; //head
- game[z.NPC_rp + 1][z.NPC_cp] = ' '; //left eye
- game[z.NPC_rp + 1][z.NPC_cp + 1] = ' '; //mouth
- game[z.NPC_rp + 1][z.NPC_cp + 2] = ' '; //right eye
- game[z.NPC_rp + 1][z.NPC_cp + 3] = ' '; //head
- game[z.NPC_rp + 2][z.NPC_cp - 2] = ' '; //left arm
- game[z.NPC_rp + 2][z.NPC_cp - 1] = ' '; //body
- game[z.NPC_rp + 2][z.NPC_cp] = ' '; //body
- game[z.NPC_rp + 2][z.NPC_cp + 1] = ' '; //body
- game[z.NPC_rp + 2][z.NPC_cp + 2] = ' '; //body
- game[z.NPC_rp + 2][z.NPC_cp + 3] = ' '; //body
- game[z.NPC_rp + 2][z.NPC_cp + 4] = ' '; //right arm
- game[z.NPC_rp + 3][z.NPC_cp] = ' '; //left leg
- game[z.NPC_rp + 3][z.NPC_cp + 2] = ' '; //right leg
- game[z.NPC_rp + 3][z.NPC_cp - 3] = ' '; //thingy
- for (int i = z.NPC_cp - 4; i < z.NPC_cp + 7; i++)
- {
- game[z.NPC_rp - 2][i] = ' ';
- ct++;
- }
- }
- if (z.NPC_En_terminate == 1)
- {
- game[z.Erp][z.Ecp] = ' '; //head
- game[z.Erp][z.Ecp + 1] = ' '; //antenna left
- game[z.Erp][z.Ecp + 2] = ' '; //head
- game[z.Erp + 1][z.Ecp - 1] = ' '; //head
- game[z.Erp + 1][z.Ecp] = ' '; //left eye
- game[z.Erp + 1][z.Ecp + 1] = ' '; //mouth
- game[z.Erp + 1][z.Ecp + 2] = ' '; //right eye
- game[z.Erp + 1][z.Ecp + 3] = ' '; //head
- game[z.Erp + 2][z.Ecp - 2] = ' '; //left arm
- game[z.Erp + 2][z.Ecp - 1] = ' '; //body
- game[z.Erp + 2][z.Ecp] = ' '; //body
- game[z.Erp + 2][z.Ecp + 1] = ' '; //body
- game[z.Erp + 2][z.Ecp + 2] = ' '; //body
- game[z.Erp + 2][z.Ecp + 3] = ' '; //body
- game[z.Erp + 2][z.Ecp + 4] = ' '; //right arm
- game[z.Erp + 3][z.Ecp] = ' '; //left leg
- game[z.Erp + 3][z.Ecp + 2] = ' '; //right leg
- game[z.Erp + 2][z.Ecp - 3] = ' ';
- game[z.Erp + 2][z.Ecp - 4] = ' ';
- game[z.Erp + 2][z.Ecp - 5] = ' ';
- game[z.Erp - 1][z.Ecp - 1] = ' ';
- game[z.Erp - 1][z.Ecp] = ' ';
- game[z.Erp - 1][z.Ecp + 1] = ' ';
- game[z.Erp - 1][z.Ecp + 2] = ' ';
- game[z.Erp - 1][z.Ecp + 3] = ' ';
- }
- if (z.En_D_terminate == 1)
- {
- //Doggie Enemy
- game[z.Drp][z.Dcp] = ' ';
- game[z.Drp][z.Dcp + 1] = ' ';
- game[z.Drp][z.Dcp + 2] = ' ';
- game[z.Drp][z.Dcp + 3] = ' ';
- game[z.Drp][z.Dcp + 4] = ' ';
- game[z.Drp][z.Dcp + 5] = ' ';
- game[z.Drp][z.Dcp + 6] = ' ';
- game[z.Drp + 1][z.Dcp + 3] = ' ';
- //game[z.Drp + 1][z.Dcp + 4] = ' ';
- game[z.Drp + 1][z.Dcp + 5] = ' ';
- //game[z.Drp + 1][z.Dcp + 6] = ' ';
- }
- if (z.En_Sl_terminate == 1)
- {
- //Enemy Slime
- game[z.SLrp][z.SLcp + 1] = ' ';
- game[z.SLrp][z.SLcp + 2] = ' ';
- game[z.SLrp][z.SLcp + 3] = ' ';
- game[z.SLrp][z.SLcp + 4] = ' ';
- game[z.SLrp + 1][z.SLcp] = ' ';
- game[z.SLrp + 1][z.SLcp + 1] = ' ';
- game[z.SLrp + 1][z.SLcp + 3] = ' ';
- game[z.SLrp + 1][z.SLcp + 5] = ' ';
- game[z.SLrp + 2][z.SLcp] = ' ';
- game[z.SLrp + 2][z.SLcp + 1] = ' ';
- game[z.SLrp + 2][z.SLcp + 2] = ' ';
- game[z.SLrp + 2][z.SLcp + 3] = ' ';
- game[z.SLrp + 2][z.SLcp + 4] = ' ';
- game[z.SLrp + 2][z.SLcp + 5] = ' ';
- game[z.SLrp + 2][z.SLcp + 6] = ' ';
- }
- }
- void elv(char lvl[][400], Elevator &e)
- {
- if (e.trigelv == 1)
- {
- //erase elv
- lvl[e.elvrp + e.elvdir][e.elvcp] = ' ';
- lvl[e.elvrp + e.elvdir][e.elvcp + 1] = ' ';
- lvl[e.elvrp + e.elvdir][e.elvcp + 2] = ' ';
- lvl[e.elvrp + e.elvdir][e.elvcp + 3] = ' ';
- //draw elv
- lvl[e.elvrp][e.elvcp] = e.elvsprite;
- lvl[e.elvrp][e.elvcp + 1] = e.elvsprite;
- lvl[e.elvrp][e.elvcp + 2] = e.elvsprite;
- lvl[e.elvrp][e.elvcp + 3] = e.elvsprite;
- }
- }
- void elevmove(char game[][80], char lvl[][400], player &x, Elevator &e)
- {
- if (e.trigelv != 0)
- {
- if (e.elvstep == 0)
- {
- e.elvdir = 0;
- e.elvcount++;
- if (e.elvcount % 4 == 0)
- {
- if (e.elvrp != 18)
- {
- if (game[x.Hrp + 4][x.Hcp + 2] == '@')
- {
- x.Hrp++, x.dir2 = 1;
- }
- e.elvrp++;
- e.elvdir = 1;
- }
- else
- {
- e.elvstep = 1;
- e.elvcount = 0;
- }
- }
- }
- if (e.elvstep == 1)
- {
- e.elvdir = 0;
- e.elvcount++;
- if (e.elvcount % 4 == 0)
- {
- if (e.elvrp != 9)
- {
- if (game[x.Hrp + 4][x.Hcp + 2] == '@')
- {
- x.Hrp--, x.dir2 = -1;
- }
- e.elvrp--;
- e.elvdir = -1;
- }
- else
- {
- e.elvstep = 2;
- e.elvcount = 1;
- }
- }
- }
- if (e.elvstep == 2)
- {
- e.elvdir = 0;
- e.elvcount++;
- if (e.elvcount % 4 == 0)
- {
- e.elvstep = 3;
- e.elvcount = 0;
- }
- }
- if (e.elvstep == 3)
- {
- e.elvdir = 0;
- e.elvcount++;
- if (e.elvcount % 4 == 0)
- {
- e.elvstep = 4;
- e.elvcount = 0;
- }
- }
- if (e.elvstep == 4)
- {
- e.elvdir = 0;
- e.elvcount++;
- if (e.elvcount % 4 == 0)
- {
- e.elvstep = 0;
- e.elvcount = 1;
- }
- }
- }
- }
- void setnpc(char game[][80], player &x, npcs &z, attack &a, objects &k)
- {
- if (x.level == 1)
- {
- z.NPC_Rand = 1;
- }
- if (x.level == 2)
- {
- z.NPC_Rand_terminate = 1;
- z.NPC_En = 1;
- if (a.En_firetrigger == 1 && z.NPC_En_terminate == 0)
- {
- game[a.En_Brp - a.En_Bdir2][a.En_Bcp - a.En_Bdir] = ' ';
- game[a.En_Brp][a.En_Bcp] = a.En_Bsprite;
- }
- else if (z.NPC_En_terminate == 1)
- {
- x.lvldir = 0;
- x.level++;
- x.reset = 1;
- }
- }
- if (x.level == 3)
- {
- z.NPC_Rand_terminate = 0;
- k.portalcheck = 1;
- }
- if (x.level == 4)
- {
- z.NPC_Rand_terminate = 1;
- }
- }
- void enemycontrol(char game[][80], player &x, npcs &z, attack &a, int &En_bulletpos)
- {
- if (x.Hcp > 20 && z.NPC_En == 1)
- {
- if (a.En_firetrigger == 0)
- {
- a.En_Brp = z.Erp + 2, a.En_Bcp = z.Ecp - 6;
- if (game[a.En_Brp][a.En_Bcp - 1] != '#')
- {
- a.En_firetrigger = 1;
- }
- }
- }
- if (a.En_firetrigger == 1)
- {
- if (game[a.En_Brp][a.En_Bcp - 1] != '#')
- {
- En_bulletpos--, a.En_Bdir = -1;
- if (game[a.En_Brp][a.En_Bcp - 1] == game[x.Hrp + 2][x.Hcp + 5])
- {
- a.En_damage = 1;
- a.En_firetrigger = 0;
- game[a.En_Brp][a.En_Bcp] = ' ';
- En_bulletpos = z.Ecp - 6;
- }
- }
- else
- {
- a.En_firetrigger = 0;
- game[a.En_Brp][a.En_Bcp] = ' ';
- En_bulletpos = z.Ecp - 6;
- }
- }
- }
- void damage(char game[][80], player &x, npcs &z, attack &a)
- {
- //Player's defense (default damage take is set to 37, use if functions for different eneymies to change that)
- if (x.heart == 3)
- {
- game[0][2] = x.healthbar;
- game[0][3] = x.healthbar;
- game[0][4] = x.healthbar;
- }
- if (a.En_damage == 1)
- {
- x.health -= 37;
- a.En_damage = 0;
- }
- if (x.health < 0 && x.heart == 3)
- {
- x.health = 100;
- x.heart--;
- game[0][2] = ' ';
- game[0][3] = x.healthbar;
- game[0][4] = x.healthbar;
- }
- if (x.health < 0 && x.heart == 2)
- {
- x.health = 100;
- x.heart--;
- game[0][2] = ' ';
- game[0][3] = ' ';
- game[0][4] = x.healthbar;
- }
- if (x.health < 0 && x.heart == 1)
- {
- x.heart = 0;
- }
- if (a.damage == 1 && z.NPC_En_terminate == 0)
- {
- game[z.Erp - 1][z.Ecp - 1] = ' ';
- game[z.Erp - 1][z.Ecp] = x.healthbar;
- game[z.Erp - 1][z.Ecp + 1] = x.healthbar;
- game[z.Erp - 1][z.Ecp + 2] = x.healthbar;
- game[z.Erp - 1][z.Ecp + 3] = x.healthbar;
- }
- if (a.damage == 2 && z.NPC_En_terminate == 0)
- {
- game[z.Erp - 1][z.Ecp - 1] = ' ';
- game[z.Erp - 1][z.Ecp] = ' ';
- game[z.Erp - 1][z.Ecp + 1] = x.healthbar;
- game[z.Erp - 1][z.Ecp + 2] = x.healthbar;
- game[z.Erp - 1][z.Ecp + 3] = x.healthbar;
- }
- if (a.damage == 3 && z.NPC_En_terminate == 0)
- {
- game[z.Erp - 1][z.Ecp - 1] = ' ';
- game[z.Erp - 1][z.Ecp] = ' ';
- game[z.Erp - 1][z.Ecp + 1] = ' ';
- game[z.Erp - 1][z.Ecp + 2] = x.healthbar;
- game[z.Erp - 1][z.Ecp + 3] = x.healthbar;
- }
- if (a.damage == 4 && z.NPC_En_terminate == 0)
- {
- game[z.Erp - 1][z.Ecp - 1] = ' ';
- game[z.Erp - 1][z.Ecp] = ' ';
- game[z.Erp - 1][z.Ecp + 1] = ' ';
- game[z.Erp - 1][z.Ecp + 2] = ' ';
- game[z.Erp - 1][z.Ecp + 3] = x.healthbar;
- }
- if (a.damage >= 5 && z.NPC_En_terminate == 0)
- {
- game[a.En_Brp][a.En_Bcp] = ' ';
- z.NPC_En_terminate = 1;
- a.damage = 0;
- x.money += 50;
- x.kills++;
- x.reward = 1;
- }
- //Enemy Doggie Damage
- if (z.Ddmg == 1 && z.En_D_terminate == 0)
- {
- game[z.Drp - 1][z.Dcp] = ' ';
- game[z.Drp - 1][z.Dcp + 1] = x.healthbar;
- game[z.Drp - 1][z.Dcp + 2] = x.healthbar;
- }
- if (z.Ddmg == 2 && z.En_D_terminate == 0)
- {
- game[z.Drp - 1][z.Dcp] = ' ';
- game[z.Drp - 1][z.Dcp + 1] = ' ';
- game[z.Drp - 1][z.Dcp + 2] = x.healthbar;
- }
- if (z.Ddmg >= 3 && z.En_D_terminate == 0)
- {
- z.En_D_terminate = 1;
- z.Ddmg = 0;
- x.money += 20;
- x.kills++;
- x.reward = 1;
- }
- }
- void playerattack(char game[][80], player &x, npcs &z, items &i, attack &a, int &bulletpos)
- {
- if (a.firetrigger == 1)
- {
- if (game[a.Brp][a.Bcp + 1] != '#')
- {
- bulletpos++, a.Bdir = 1;
- if (game[a.Brp][a.Bcp] == z.epistol[2])
- {
- if (i.pistol == 1)
- {
- a.damage++;
- }
- if (i.sword == 1)
- {
- a.damage += 2;
- }
- a.firetrigger = 0;
- game[a.Brp][a.Bcp] = ' ';
- bulletpos = x.Hcp + 7;
- }
- }
- else
- {
- a.firetrigger = 0;
- game[a.Brp][a.Bcp] = ' ';
- bulletpos = x.Hcp + 7;
- }
- }
- }
- void pickup(char game[][80], player &x, npcs z, items &i)
- {
- int ct = 0, picked = 0;
- if (x.Hcp > 60 && x.Hcp < 80 && x.level == 1)
- {
- x.pickup_trigger = 1;
- for (int i = 65; i < 75; i++)
- {
- game[16][i] = x.pickup_draw[0 + ct];
- ct++;
- }
- }
- if (x.level == 1)
- {
- game[18][70] = i.pistol_draw[0];
- game[18][71] = i.pistol_draw[1];
- game[18][72] = i.pistol_draw[2];
- }
- if (x.pickup == 1)
- {
- picked = 1;
- //pistol = 1;
- i.pistol = 1;
- x.pickup = 0;
- }
- if (picked == 1)
- {
- x.pickup_trigger = 0;
- game[18][70] = ' ';
- game[18][71] = ' ';
- game[18][72] = ' ';
- for (int i = 65; i < 75; i++)
- {
- game[16][i] = ' ';
- ct++;
- }
- if (x.level == 1)
- {
- x.level = 2;
- x.reset = 1;
- }
- }
- }
- void interact(char game[][80], player &x, npcs z, objects &k)
- {
- int ct = 0;
- int ct2 = 0;
- if (x.level == 1)
- {
- if (x.Hcp > 25 && x.Hcp < 50)
- {
- for (int i = z.NPC_cp - 5; i < z.NPC_cp + 7; i++)
- {
- game[z.NPC_rp - 1][i] = x.interact_draw[0 + ct2];
- ct2++;
- }
- for (int i = 15; i < 65; i++)
- {
- game[7][i] = '-';
- game[9][i] = '-';
- }
- game[8][15] = '>';
- if (x.interact == 0)
- {
- for (int i = 17; i < 43; i++)
- {
- game[8][i] = z.interaction1[0 + ct];
- ct++;
- }
- }
- else if (x.interact == 1)
- {
- for (int i = 17; i < 65; i++)
- {
- game[8][i] = z.interaction2[0 + ct];
- ct++;
- }
- }
- else if (x.interact == 2)
- {
- for (int i = 17; i < 46; i++)
- {
- game[8][i] = z.interaction3[0 + ct];
- ct++;
- for (int j = 46; j < 65; j++)
- {
- game[8][j] = ' ';
- }
- }
- }
- }
- else
- {
- x.interact = 0;
- for (int i = z.NPC_cp - 5; i < z.NPC_cp + 7; i++)
- {
- game[z.NPC_rp - 1][i] = ' ';
- }
- for (int i = 15; i < 65; i++)
- {
- game[7][i] = ' ';
- }
- for (int i = 15; i < 65; i++)
- {
- game[9][i] = ' ';
- }
- game[8][15] = ' ';
- for (int i = 15; i < 65; i++)
- {
- game[8][i] = ' ';
- ct++;
- }
- }
- }
- if (x.level == 3)
- {
- if (x.Hcp > 25 && x.Hcp < 50)
- {
- for (int i = z.NPC_cp - 5; i < z.NPC_cp + 7; i++)
- {
- game[z.NPC_rp - 1][i] = x.interact_draw[0 + ct2];
- ct2++;
- }
- for (int i = 15; i < 65; i++)
- {
- game[7][i] = '-';
- }
- for (int i = 15; i < 65; i++)
- {
- game[9][i] = '-';
- }
- game[8][15] = '>';
- if (x.interact == 0)
- {
- for (int i = 17; i < 46; i++)
- {
- game[8][i] = z.interaction6[0 + ct];
- ct++;
- }
- }
- else if (x.interact == 1)
- {
- if (x.reward == 1)
- {
- x.money += 500;
- x.reward = 0;
- }
- for (int i = 17; i < 37; i++)
- {
- game[8][i] = z.interaction7[0 + ct];
- ct++;
- }
- for (int j = 37; j < 65; j++)
- {
- game[8][j] = ' ';
- }
- }
- }
- else
- {
- x.interact = 0;
- for (int i = z.NPC_cp - 5; i < z.NPC_cp + 7; i++)
- {
- game[z.NPC_rp - 1][i] = ' ';
- }
- for (int i = 15; i < 65; i++)
- {
- game[7][i] = ' ';
- }
- for (int i = 15; i < 65; i++)
- {
- game[9][i] = ' ';
- }
- game[8][15] = ' ';
- for (int i = 15; i < 65; i++)
- {
- game[8][i] = ' ';
- ct++;
- }
- }
- if (x.Hcp >= k.portcp - 8)
- {
- ct2 = 0;
- x.portal_trigger = 1;
- for (int i = 68; i < 78; i++)
- {
- game[14][i] = x.portinter_draw[0 + ct2];
- ct2++;
- }
- }
- else
- {
- ct2 = 0;
- x.portal_trigger = 0;
- for (int i = 68; i < 78; i++)
- {
- game[14][i] = ' ';
- ct2++;
- }
- }
- }
- }
- void jump(player &x, Elevator &e, char game[][80])
- {
- if (game[x.Hrp + 4][x.Hcp] != '#' && game[x.Hrp + 4][x.Hcp] != '@')
- {
- if (x.jump_trigger == 0)
- {
- x.gravity++;
- if ((x.gravity %= 2) == 0)
- {
- x.Hrp++, x.dir2 = 1;
- }
- }
- else
- {
- x.gravity = 0;
- }
- }
- else
- {
- x.gravity = 0;
- }
- if (game[x.Hrp - 1][x.Hcp] != '#')
- {
- if (x.jump_trigger == 1)
- {
- x.jump++;
- if (x.jump == 2)
- {
- x.Hrp--, x.dir2 = -1;
- }
- if (x.jump == 4)
- {
- x.Hrp--, x.dir2 = -1;
- }
- if (x.jump == 6)
- {
- x.Hrp--, x.dir2 = -1;
- x.jump_trigger++;
- }
- }
- if (x.jump_trigger == 2)
- {
- x.jump++;
- if (x.jump == 9)
- {
- x.jump_trigger = 0;
- x.jump = 0;
- }
- }
- }
- else
- {
- x.jump_trigger = 0;
- }
- }
- void setportal(char game[][80], objects &k, player &x)
- {
- if (x.portalgo == 1)
- {
- x.portal_trigger = 0;
- k.portalcheck = 0;
- x.portalgo = 0;
- //erase
- game[k.portrp + 1][k.portcp] = ' ';
- game[k.portrp + 2][k.portcp] = ' ';
- game[k.portrp + 3][k.portcp] = ' ';
- game[k.portrp + 1][k.portcp - 1] = ' ';
- game[k.portrp + 2][k.portcp - 1] = ' ';
- game[k.portrp + 3][k.portcp - 1] = ' ';
- game[k.portrp + 1][k.portcp - 2] = ' ';
- game[k.portrp + 2][k.portcp - 2] = ' ';
- game[k.portrp + 3][k.portcp - 2] = ' ';
- game[k.portrp + 1][k.portcp - 3] = ' ';
- game[k.portrp + 2][k.portcp - 3] = ' ';
- game[k.portrp + 3][k.portcp - 3] = ' ';
- x.level++;
- x.reset = 1;
- x.lvldir = 0;
- }
- if (k.portalcheck == 1)
- {
- game[k.portrp + 1][k.portcp] = k.portsprite;
- game[k.portrp + 2][k.portcp] = k.portsprite;
- game[k.portrp + 3][k.portcp] = k.portsprite;
- game[k.portrp + 1][k.portcp - 1] = k.portsprite;
- game[k.portrp + 2][k.portcp - 1] = k.portsprite;
- game[k.portrp + 3][k.portcp - 1] = k.portsprite;
- game[k.portrp + 1][k.portcp - 2] = k.portsprite;
- game[k.portrp + 2][k.portcp - 2] = k.portsprite;
- game[k.portrp + 3][k.portcp - 2] = k.portsprite;
- game[k.portrp + 1][k.portcp - 3] = k.portsprite;
- game[k.portrp + 2][k.portcp - 3] = k.portsprite;
- game[k.portrp + 3][k.portcp - 3] = k.portsprite;
- }
- }
- void setmap(char map[][80], char lvl[][400], player &x)
- {
- for (int i = 0; i < 20; i++)
- for (int j = 0; j < 80; j++)
- map[i][j] = ' ';
- for (int i = 0; i < 80; i++)
- map[0][i] = ' ';
- for (int i = 1; i < 20; i++)
- map[i][0] = '#';
- for (int i = 0; i < 80; i++)
- map[19][i] = '#';
- for (int i = 1; i < 20; i++)
- map[i][79] = '#';
- }
- void printgame(char map[][80], char lvl[][400], player &x, Elevator &e, Doggie d[])
- {
- system("cls");
- if (x.heart != 0)
- {
- cout << " FLOOR: " << x.level; cout << " GOLD: " << x.money; cout << " KILLED: " << x.kills; cout << " HP: " << x.health; cout << " LIVES:"; cout << d[1].Dcp;
- for (int i = 0; i < 20; i++)
- {
- for (int j = 0; j < 80; j++)
- cout << map[i][j];
- cout << "\n";
- }
- }
- else
- {
- cout << "You died!";
- }
- cout.flush();
- Sleep(10);
- }
- int main()
- {
- char view[20][80];
- char lvl[20][400];
- player x; npcs z; items i; attack a; objects k;
- Elevator e;
- Doggie d[5];
- i.pistol_draw[0] = 203; i.pistol_draw[1] = 205; i.pistol_draw[2] = 196;
- i.sword_draw[1] = 196;
- x.healthbar = 03;
- z.Rsprite[4] = 169, z.Rsprite[6] = 170, z.Rsprite[17] = 244;
- z.epistol[0] = 203; z.epistol[1] = 205; z.epistol[2] = 196;
- z.esprite[1] = 203; z.esprite[15] = 244; z.esprite[16] = 244;
- d[1].dsprite[1] = 205, d[1].dsprite[2] = 202, d[1].dsprite[7] = 173, d[1].dsprite[8] = 173, d[1].dsprite[9] = 173, d[1].dsprite[10] = 173;
- d[2].dsprite[1] = 205, d[2].dsprite[2] = 202, d[2].dsprite[7] = 173, d[2].dsprite[8] = 173, d[2].dsprite[9] = 173, d[2].dsprite[10] = 173;
- z.Ssprite[10] = 196;
- setmap(view, lvl, x);
- printgame(view, lvl, x, e, d);
- for (;;)
- {
- x.dir = 0, x.dir2 = 0;
- a.Bdir = 0, a.Bdir2 = 0, a.En_Bdir = 0, a.En_Bdir2 = 0;
- for (; !_kbhit();)
- {
- setlevels(view, lvl, x, e, d);
- setnpc(view, x, z, a, k);
- //setdoggie(view, x, d);
- npc(view, x, z);
- playerattack(view, x, z, i, a, a.Bcp);
- damage(view, x, z, a);
- setportal(view, k, x);
- jump(x, e, view);
- elevmove(view, lvl, x, e);
- setplayer(view, x);
- interact(view, x, z, k);
- inventory(view, x, i, a);
- pickup(view, x, z, i);
- elv(lvl, e);
- //d[1].movedoggie();
- printgame(view, lvl, x, e, d);
- enemycontrol(view, x, z, a, a.En_Bcp);
- }
- char kb = _getch();
- controller(view, kb, x, i, a, e);
- setplayer(view, x);
- inventory(view, x, i, a);
- setnpc(view, x, z, a, k);
- }
- system("pause");
- return 0;
- }
- //fix:
- //multi bullets
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement