-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMap.cpp
64 lines (56 loc) · 1.75 KB
/
Map.cpp
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
#include "stdafx.h"
#include "Map.h"
#include "Level.h"
#include "Enumerations.h"
#include "Enemy.h"
Map::Map()
{
int_LoadedCollision.resize(100);
int_LoadedEnemies.resize(100);
int_MaxCollisionIndex = 0;
int_MaxEnemyIndex = 0;
}
void Map::ResetIndexes()
{
int_MaxCollisionIndex = 0;
int_MaxEnemyIndex = 0;
}
void Map::CreatePlatform(int indexStart, PlatformObject platform)
{
// Variables to increase readability
float top = platform.vec_Position.y;
float left = platform.vec_Position.x;
float height = platform.vec_Size.y;
float width = platform.vec_Size.x;
col_CollisionData[indexStart].InitializeCollision(PT_FLOOR, true, sf::Vector2f(left, top), sf::Vector2f(width, 1));
col_CollisionData[indexStart + 1].InitializeCollision(PT_CEILING, true, sf::Vector2f(left, top + height), sf::Vector2f(width, -1));
col_CollisionData[indexStart + 2].InitializeCollision(PT_LEFT_WALL, true, sf::Vector2f(left + width, top), sf::Vector2f(-1, height));
col_CollisionData[indexStart + 3].InitializeCollision(PT_RIGHT_WALL, true, sf::Vector2f(left, top), sf::Vector2f(1, height));
}
void Map::LoadLocalCollisions(Player player)
{
for (int count = 0; count < int_NumColl; count++)
{
if (col_CollisionData[count].rs_CollisionArea.getGlobalBounds().intersects(player.GetLoader().getGlobalBounds()))
{
AssignCollisionIndex(count);
}
}
}
void Map::LoadLocalEnemies(int index, Player player, EnemyObject enemy)
{
if (enemy.GetSprite().getGlobalBounds().intersects(player.GetLoader().getGlobalBounds()))
{
AssignEnemyIndex(index);
}
}
void Map::AssignCollisionIndex(int actual)
{
int_LoadedCollision[int_MaxCollisionIndex] = actual;
int_MaxCollisionIndex++;
}
void Map::AssignEnemyIndex(int actual)
{
int_LoadedEnemies[int_MaxEnemyIndex] = actual;
int_MaxEnemyIndex++;
}