Skip to content

Commit d33f656

Browse files
authored
Merge pull request #6 from rbergen/item_classes
Item classes, console optimizations, overall refactors
2 parents 913a5c3 + f8e1f01 commit d33f656

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

77 files changed

+2783
-2132
lines changed

CMakeLists.txt

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ cmake_minimum_required(VERSION 3.15.0)
22

33
project(
44
R136
5-
VERSION 3.3.1)
5+
VERSION 3.3.2)
66

77
set(CURSES_NEED_NCURSES 1)
88
set(CURSES_NEED_WIDE 1)

R136.vcxproj

+32-12
Original file line numberDiff line numberDiff line change
@@ -158,22 +158,33 @@
158158
<None Include="README.md" />
159159
</ItemGroup>
160160
<ItemGroup>
161-
<ClInclude Include="include\act.h" />
161+
<ClInclude Include="include\actions.h" />
162162
<ClInclude Include="include\animates.h" />
163+
<ClInclude Include="include\commands.h" />
163164
<ClInclude Include="include\console.h" />
164-
<ClInclude Include="include\constants\r136.h" />
165-
<ClInclude Include="include\init.h" />
165+
<ClInclude Include="include\constants.h" />
166+
<ClInclude Include="include\gamedata.h" />
167+
<ClInclude Include="include\general.h" />
166168
<ClInclude Include="include\inlines\console.h" />
167-
<ClInclude Include="include\inlines\r136.h" />
168-
<ClInclude Include="include\main.h" />
169+
<ClInclude Include="include\inlines\general.h" />
170+
<ClInclude Include="include\inlines\items.h" />
171+
<ClInclude Include="include\inlines\base.h" />
172+
<ClInclude Include="include\inlines\random.h" />
173+
<ClInclude Include="include\items.h" />
169174
<ClInclude Include="include\parser.h" />
170-
<ClInclude Include="include\r136.h" />
175+
<ClInclude Include="include\base.h" />
176+
<ClInclude Include="include\random.h" />
177+
<ClInclude Include="include\startup.h" />
171178
<ClInclude Include="include\status.h" />
172179
<ClInclude Include="include\templates\console.h" />
173-
<ClInclude Include="include\templates\r136.h" />
180+
<ClInclude Include="include\templates\base.h" />
181+
<ClInclude Include="include\templates\items.h" />
174182
<ClInclude Include="include\types\animates.h" />
175183
<ClInclude Include="include\types\console.h" />
176-
<ClInclude Include="include\types\r136.h" />
184+
<ClInclude Include="include\types\general.h" />
185+
<ClInclude Include="include\types\items.h" />
186+
<ClInclude Include="include\types\base.h" />
187+
<ClInclude Include="include\types\random.h" />
177188
</ItemGroup>
178189
<ItemGroup>
179190
<ClCompile Include="main.cpp" />
@@ -196,20 +207,29 @@
196207
<ClCompile Include="src\animates\tree.cpp" />
197208
<ClCompile Include="src\animates\vacuum.cpp" />
198209
<ClCompile Include="src\animates\voices.cpp" />
210+
<ClCompile Include="src\commands\item.cpp" />
211+
<ClCompile Include="src\commands\location.cpp" />
212+
<ClCompile Include="src\commands\simple.cpp" />
199213
<ClCompile Include="src\console.cpp" />
214+
<ClCompile Include="src\general.cpp" />
200215
<ClCompile Include="src\init.cpp" />
201216
<ClCompile Include="src\intro.cpp" />
202-
<ClCompile Include="src\loadsave.cpp" />
217+
<ClCompile Include="src\items\bandage.cpp" />
218+
<ClCompile Include="src\items\flashlight.cpp" />
219+
<ClCompile Include="src\items\sword.cpp" />
220+
<ClCompile Include="src\items\tnt.cpp" />
221+
<ClCompile Include="src\gamedata.cpp" />
203222
<ClCompile Include="src\parser.cpp" />
204-
<ClCompile Include="src\r136.cpp" />
205-
<ClCompile Include="src\random.cpp" />
223+
<ClCompile Include="src\base.cpp" />
206224
<ClCompile Include="src\status.cpp" />
207-
<ClCompile Include="src\act.cpp" />
225+
<ClCompile Include="src\actions.cpp" />
208226
</ItemGroup>
209227
<ItemGroup>
210228
<Text Include="CMakeLists.txt" />
211229
<Text Include="src\animates\CMakeLists.txt" />
212230
<Text Include="src\CMakeLists.txt" />
231+
<Text Include="src\commands\CMakeLists.txt" />
232+
<Text Include="src\items\CMakeLists.txt" />
213233
</ItemGroup>
214234
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
215235
<ImportGroup Label="ExtensionTargets">

R136.vcxproj.filters

+89-26
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,6 @@
99
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
1010
<Extensions>h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd</Extensions>
1111
</Filter>
12-
<Filter Include="Header Files\constants">
13-
<UniqueIdentifier>{c0c25b83-c418-4800-9c3f-8fc598bfc613}</UniqueIdentifier>
14-
</Filter>
1512
<Filter Include="Header Files\inlines">
1613
<UniqueIdentifier>{938ca956-6e8f-4773-bcfd-1c623cb6082e}</UniqueIdentifier>
1714
</Filter>
@@ -24,45 +21,42 @@
2421
<Filter Include="Source Files\animates">
2522
<UniqueIdentifier>{1398b943-616f-4edd-bba1-d46dee4d875f}</UniqueIdentifier>
2623
</Filter>
24+
<Filter Include="Source Files\items">
25+
<UniqueIdentifier>{80f2adfc-7d9f-4c6d-ba18-4eb4cec5da0f}</UniqueIdentifier>
26+
</Filter>
27+
<Filter Include="Source Files\commands">
28+
<UniqueIdentifier>{6ee72562-7192-43fe-9f16-9638044da1e8}</UniqueIdentifier>
29+
</Filter>
2730
</ItemGroup>
2831
<ItemGroup>
2932
<None Include="README.md" />
3033
</ItemGroup>
3134
<ItemGroup>
32-
<ClInclude Include="include\r136.h">
35+
<ClInclude Include="include\base.h">
3336
<Filter>Header Files</Filter>
3437
</ClInclude>
35-
<ClInclude Include="include\main.h">
36-
<Filter>Header Files</Filter>
37-
</ClInclude>
38-
<ClInclude Include="include\act.h">
38+
<ClInclude Include="include\actions.h">
3939
<Filter>Header Files</Filter>
4040
</ClInclude>
4141
<ClInclude Include="include\console.h">
4242
<Filter>Header Files</Filter>
4343
</ClInclude>
44-
<ClInclude Include="include\init.h">
45-
<Filter>Header Files</Filter>
46-
</ClInclude>
4744
<ClInclude Include="include\status.h">
4845
<Filter>Header Files</Filter>
4946
</ClInclude>
50-
<ClInclude Include="include\constants\r136.h">
51-
<Filter>Header Files\constants</Filter>
52-
</ClInclude>
5347
<ClInclude Include="include\inlines\console.h">
5448
<Filter>Header Files\inlines</Filter>
5549
</ClInclude>
56-
<ClInclude Include="include\inlines\r136.h">
50+
<ClInclude Include="include\inlines\base.h">
5751
<Filter>Header Files\inlines</Filter>
5852
</ClInclude>
5953
<ClInclude Include="include\types\console.h">
6054
<Filter>Header Files\types</Filter>
6155
</ClInclude>
62-
<ClInclude Include="include\types\r136.h">
56+
<ClInclude Include="include\types\base.h">
6357
<Filter>Header Files\types</Filter>
6458
</ClInclude>
65-
<ClInclude Include="include\templates\r136.h">
59+
<ClInclude Include="include\templates\base.h">
6660
<Filter>Header Files\templates</Filter>
6761
</ClInclude>
6862
<ClInclude Include="include\types\animates.h">
@@ -77,6 +71,48 @@
7771
<ClInclude Include="include\parser.h">
7872
<Filter>Header Files</Filter>
7973
</ClInclude>
74+
<ClInclude Include="include\types\items.h">
75+
<Filter>Header Files\types</Filter>
76+
</ClInclude>
77+
<ClInclude Include="include\inlines\items.h">
78+
<Filter>Header Files\inlines</Filter>
79+
</ClInclude>
80+
<ClInclude Include="include\items.h">
81+
<Filter>Header Files</Filter>
82+
</ClInclude>
83+
<ClInclude Include="include\gamedata.h">
84+
<Filter>Header Files</Filter>
85+
</ClInclude>
86+
<ClInclude Include="include\random.h">
87+
<Filter>Header Files</Filter>
88+
</ClInclude>
89+
<ClInclude Include="include\inlines\random.h">
90+
<Filter>Header Files\inlines</Filter>
91+
</ClInclude>
92+
<ClInclude Include="include\types\random.h">
93+
<Filter>Header Files\types</Filter>
94+
</ClInclude>
95+
<ClInclude Include="include\constants.h">
96+
<Filter>Header Files</Filter>
97+
</ClInclude>
98+
<ClInclude Include="include\startup.h">
99+
<Filter>Header Files</Filter>
100+
</ClInclude>
101+
<ClInclude Include="include\general.h">
102+
<Filter>Header Files</Filter>
103+
</ClInclude>
104+
<ClInclude Include="include\commands.h">
105+
<Filter>Header Files</Filter>
106+
</ClInclude>
107+
<ClInclude Include="include\types\general.h">
108+
<Filter>Header Files\types</Filter>
109+
</ClInclude>
110+
<ClInclude Include="include\inlines\general.h">
111+
<Filter>Header Files\inlines</Filter>
112+
</ClInclude>
113+
<ClInclude Include="include\templates\items.h">
114+
<Filter>Header Files</Filter>
115+
</ClInclude>
80116
</ItemGroup>
81117
<ItemGroup>
82118
<ClCompile Include="src\console.cpp">
@@ -85,25 +121,19 @@
85121
<ClCompile Include="src\init.cpp">
86122
<Filter>Source Files</Filter>
87123
</ClCompile>
88-
<ClCompile Include="src\intro.cpp">
89-
<Filter>Source Files</Filter>
90-
</ClCompile>
91-
<ClCompile Include="src\loadsave.cpp">
92-
<Filter>Source Files</Filter>
93-
</ClCompile>
94-
<ClCompile Include="src\random.cpp">
124+
<ClCompile Include="src\gamedata.cpp">
95125
<Filter>Source Files</Filter>
96126
</ClCompile>
97127
<ClCompile Include="src\status.cpp">
98128
<Filter>Source Files</Filter>
99129
</ClCompile>
100-
<ClCompile Include="src\act.cpp">
130+
<ClCompile Include="src\actions.cpp">
101131
<Filter>Source Files</Filter>
102132
</ClCompile>
103133
<ClCompile Include="main.cpp">
104134
<Filter>Source Files</Filter>
105135
</ClCompile>
106-
<ClCompile Include="src\r136.cpp">
136+
<ClCompile Include="src\base.cpp">
107137
<Filter>Source Files</Filter>
108138
</ClCompile>
109139
<ClCompile Include="src\animates\barbecue.cpp">
@@ -166,14 +196,47 @@
166196
<ClCompile Include="src\parser.cpp">
167197
<Filter>Source Files</Filter>
168198
</ClCompile>
199+
<ClCompile Include="src\items\tnt.cpp">
200+
<Filter>Source Files\items</Filter>
201+
</ClCompile>
202+
<ClCompile Include="src\items\bandage.cpp">
203+
<Filter>Source Files\items</Filter>
204+
</ClCompile>
205+
<ClCompile Include="src\items\flashlight.cpp">
206+
<Filter>Source Files\items</Filter>
207+
</ClCompile>
208+
<ClCompile Include="src\general.cpp">
209+
<Filter>Source Files</Filter>
210+
</ClCompile>
211+
<ClCompile Include="src\items\sword.cpp">
212+
<Filter>Source Files\items</Filter>
213+
</ClCompile>
214+
<ClCompile Include="src\commands\location.cpp">
215+
<Filter>Source Files\commands</Filter>
216+
</ClCompile>
217+
<ClCompile Include="src\commands\simple.cpp">
218+
<Filter>Source Files\commands</Filter>
219+
</ClCompile>
220+
<ClCompile Include="src\intro.cpp">
221+
<Filter>Source Files</Filter>
222+
</ClCompile>
223+
<ClCompile Include="src\commands\item.cpp">
224+
<Filter>Source Files\commands</Filter>
225+
</ClCompile>
169226
</ItemGroup>
170227
<ItemGroup>
171228
<Text Include="CMakeLists.txt" />
172229
<Text Include="src\CMakeLists.txt">
173230
<Filter>Source Files</Filter>
174231
</Text>
232+
<Text Include="src\items\CMakeLists.txt">
233+
<Filter>Source Files\items</Filter>
234+
</Text>
175235
<Text Include="src\animates\CMakeLists.txt">
176236
<Filter>Source Files\animates</Filter>
177237
</Text>
238+
<Text Include="src\commands\CMakeLists.txt">
239+
<Filter>Source Files\commands</Filter>
240+
</Text>
178241
</ItemGroup>
179242
</Project>

include/act.h

-23
This file was deleted.

include/actions.h

+10
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
#pragma once
2+
3+
#include "types/base.h"
4+
5+
namespace actions
6+
{
7+
bool progress_animates(CoreData& core);
8+
9+
bool perform_command(CoreData& core);
10+
}

include/base.h

+10
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
#pragma once
2+
3+
#include "types/base.h"
4+
5+
AnimateStatus next_status(AnimateStatus status);
6+
AnimateStatus operator++(AnimateStatus& status, int);
7+
AnimateStatus& operator++(AnimateStatus& status);
8+
9+
#include "templates/base.h"
10+
#include "inlines/base.h"

include/commands.h

+26
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
#pragma once
2+
3+
#include "base.h"
4+
5+
namespace commands
6+
{
7+
bool finish();
8+
9+
void wait(void);
10+
11+
void show_status(CoreData& core);
12+
13+
void show_help(void);
14+
15+
void use(CoreData& core, ItemID item_id);
16+
17+
void combine(CoreData& core, ItemID item1, ItemID item2);
18+
19+
void lay_down(CoreData& core, ItemID item_id);
20+
21+
void pickup(CoreData& core, ItemID item_id);
22+
23+
void inspect(CoreData& core, ItemID item_id);
24+
25+
void go(CoreData& core, Command direction);
26+
}

include/console.h

+1
Original file line numberDiff line numberDiff line change
@@ -9,4 +9,5 @@
99
== 3: Insert on at start, use block cursor to indicate Insert off. */
1010
constexpr int insert_flag = 3;
1111

12+
#include "templates/console.h"
1213
#include "inlines/console.h"

include/constants.h

+9
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
#pragma once
2+
3+
namespace constants
4+
{
5+
constexpr int undefined = -1;
6+
constexpr char max_life_points = 20;
7+
constexpr char max_lamp_points = 60;
8+
constexpr char max_owned_items = 10;
9+
}

include/constants/r136.h

-8
This file was deleted.

include/gamedata.h

+10
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
#pragma once
2+
3+
#include "types/base.h"
4+
5+
namespace game_data
6+
{
7+
bool load(CoreData& core);
8+
bool save(CoreData& core);
9+
void remove();
10+
}

include/general.h

+4
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
#pragma once
2+
3+
#include "types/general.h"
4+
#include "inlines/general.h"

0 commit comments

Comments
 (0)