-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathedgeloader.cpp
More file actions
85 lines (80 loc) · 2.45 KB
/
edgeloader.cpp
File metadata and controls
85 lines (80 loc) · 2.45 KB
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
/* Author: Brendon Kofink
* Wesley Goyette
* Aaron Sierra
* David Day
* Lucy Ray
* Assignment Title: Epicer Puzzle
* Assignment Description: A Puzzle game where the user can
* solve a puzzle by moving and snapping pieces into place.
* Due Date: 5/4/2023
* Date Created: 4/20/2023
* Date Last Modified: 4/20/2023
*/
#include "edgeloader.h"
#include <dirent.h>
EdgeLoader::EdgeLoader() {
// set random seed
srand(time(NULL));
numEdges = 9;
edges = new Picture*[numEdges];
edges[0] = new Picture("./pictureTXTs/edges/sidebump.png.txt");
edges[1] = new Picture("./pictureTXTs/edges/Bumpy.png.txt");
edges[2] = new Picture("./pictureTXTs/edges/biggump.png.txt");
edges[3] = new Picture("./pictureTXTs/edges/cauldron.png.txt");
edges[4] = new Picture("./pictureTXTs/edges/dog.png.txt");
edges[5] = new Picture("./pictureTXTs/edges/hook.png.txt");
edges[6] = new Picture("./pictureTXTs/edges/mushrooms.png.txt");
edges[7] = new Picture("./pictureTXTs/edges/teeth.png.txt");
edges[8] = new Picture("./pictureTXTs/edges/horns.png.txt");
}
EdgeLoader::EdgeLoader(const EdgeLoader& other) {
numEdges = other.numEdges;
edges = new Picture*[numEdges];
for(int i = 0; i < numEdges; i++) {
edges[i] = new Picture(*other.edges[i]);
}
}
EdgeLoader& EdgeLoader::operator=(const EdgeLoader& other) {
if(this != &other) {
if(edges != nullptr) {
for(int i = 0; i < numEdges; i++) {
delete edges[i];
}
delete [] edges;
}
numEdges = other.numEdges;
edges = new Picture*[numEdges];
for(int i = 0; i < numEdges; i++) {
edges[i] = new Picture(*other.edges[i]);
}
}
return *this;
}
//hahah
EdgeLoader& EdgeLoader::operator=(EdgeLoader &&other) {
if (this != &other) {
if (this->edges != nullptr) {
for (int i = 0; i < numEdges; i++) {
delete edges[i];
}
delete[] edges;
}
edges = other.edges;
other.edges = nullptr;
numEdges = other.numEdges;
other.numEdges = 0;
}
return *this;
}
EdgeLoader::~EdgeLoader() {
for(int i = 0; i < numEdges; i++) {
delete edges[i];
}
delete[] edges;
}
Picture *EdgeLoader::getRandomEdge(bool &isFlipped) {
int randEdge = rand() % numEdges;
Picture *edge = edges[randEdge];
isFlipped = rand() % 2;
return edge;
}