-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathplayer.h
executable file
·92 lines (81 loc) · 2.05 KB
/
player.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
//#include "types.h"
//#include "all.h"
//#include "items.h"
//#include "room.h"
/* Player code */
void GeneratePlayer() {
int i;
bool valid=false;
i = rand() % RoomI;
while(valid==false) {
CPlayer.dx=(rand() % (Rooms[i].x2-Rooms[i].x1-2)) + Rooms[i].x1 + 1;
CPlayer.dy=(rand() % (Rooms[i].y2-Rooms[i].y1-2)) + Rooms[i].y1 + 1;
if(HitItem(CPlayer.dx,CPlayer.dy)==-1) valid=true;
if(valid==true) {
CPlayer.x=CPlayer.dx;
CPlayer.y=CPlayer.dy;
CPlayer.Room = i;
Rooms[i].Discovered=true;
}
}
TakeItem(0);
}
bool MovePlayer() {
int x,y,FoundDoorI,FoundItemI,NewRoom;
bool redraw,valid;
x=CPlayer.x;
y=CPlayer.y;
redraw=false;
valid=true;
if(D>=0 && D<4) {
if(D==0) {
x=CPlayer.x-1;
}
else if(D==1) {
x=CPlayer.x+1;
}
else if(D==2) {
y=CPlayer.y-1;
}
else if(D==3) {
y=CPlayer.y+1;
}
FoundDoorI=HitDoor(x,y);
if(FoundDoorI>-1) {
Rooms[Doors[FoundDoorI].Room1I].Discovered=true;
Rooms[Doors[FoundDoorI].Room2I].Discovered=true;
Doors[FoundDoorI].Opened=true;
redraw=true;
}
else {
valid=(HitWall(x,y)==false);
};
if(valid==true) {
CPlayer.x=x;
CPlayer.y=y;
NewRoom = HitRoom(x,y);
if(NewRoom>-1 && CPlayer.Room!=NewRoom) {
CPlayer.Room=NewRoom;
redraw=true;
}
FoundItemI=HitItem(x,y);
if(FoundItemI>-1) {
TakeItem(FoundItemI);
redraw=true;
}
else {
if(L>0) L--;
if(L==0) {
//Lights out
SetAllRedraw();
redraw=true;
}
}
MoveMonsters();
}
}
return redraw;
}