Merge mac into windows

This commit is contained in:
2017-08-27 23:37:37 -04:00
228 changed files with 3446 additions and 3423 deletions

3
.gitignore vendored
View File

@@ -61,7 +61,7 @@ pkg/win/data.nsi
# Shader Builder projects
# It's an sqlite3 database and not particularly important, so exclude it
src/tools/*.sbproj
*.sbproj
# Doxygen stuff
src/doxy/html/
@@ -84,3 +84,4 @@ test/junk/*.map
# Misc
oldstructs.txt
src/tools/gitrev.hpp
rsrc/**/scenario

View File

@@ -74,7 +74,7 @@ Order of Includes
-----------------
Include files at the top of any file (header or source) should appear in
the following order, with a blank line between groups:
the following order:
* the source file's counterpart header (only applicable for source
files)
@@ -88,7 +88,10 @@ for C headers)
* Component-specific Blades of Exile headers
All except the last three and the first one should use the angle
brackets include style.
brackets include style. Normally, there should be a blank line
between groups; however, if there are only one or two headers in
a group, it can be merged with an adjacent group. The counterpart
header should always be followed by a blank line, however.
Try to make all includes explicit in the header files, rather than
relying on indirect includes by including one file that includes others.

View File

@@ -31,6 +31,7 @@
91EBE9DE0F9A33A6002356F2 /* PBXTargetDependency */,
91EBE9E00F9A33A8002356F2 /* PBXTargetDependency */,
91EBE9E20F9A33AC002356F2 /* PBXTargetDependency */,
9185BDAA1EA06A150027C346 /* PBXTargetDependency */,
);
name = All;
productName = All;
@@ -137,7 +138,7 @@
919B13A21BBCDF14009905A4 /* monst_legacy.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 919B13A11BBCDE18009905A4 /* monst_legacy.cpp */; };
919B13A41BBD8854009905A4 /* item_legacy.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 919B13A31BBD8849009905A4 /* item_legacy.cpp */; };
919B13A61BBDE986009905A4 /* spec_legacy.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 919B13A51BBDE985009905A4 /* spec_legacy.cpp */; };
919CC2481B3772F300273FDA /* creatlist.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 91AC620A0FA2853700EEAE67 /* creatlist.cpp */; };
919CC2481B3772F300273FDA /* population.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 91AC620A0FA2853700EEAE67 /* population.cpp */; };
919CC2491B3772FB00273FDA /* creature.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 914698FE1A747C4500F20F5E /* creature.cpp */; };
919CC24B1B37730300273FDA /* item.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 91279D3D0F9D1D6A007B0D52 /* item.cpp */; };
919CC24C1B37730900273FDA /* living.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 914698FB1A7362D900F20F5E /* living.cpp */; };
@@ -175,14 +176,14 @@
919CC2721B3773F800273FDA /* fileio.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 91E30F2D1A7481C20057C54A /* fileio.cpp */; };
919CC2731B3773FD00273FDA /* fileio_party.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 91E30F2A1A74819B0057C54A /* fileio_party.cpp */; };
919CC2741B37740200273FDA /* fileio_scen.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 91E5C7A60F9F615400C21460 /* fileio_scen.cpp */; };
919CC2751B37740A00273FDA /* graphtool.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 91B3F10A0F9779C300BF5B67 /* graphtool.cpp */; };
919CC2751B37740A00273FDA /* render_image.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 91B3F10A0F9779C300BF5B67 /* render_image.cpp */; };
919CC2761B37741000273FDA /* mathutil.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 91B3F11E0F97801F00BF5B67 /* mathutil.cpp */; };
919CC2771B37741500273FDA /* map_parse.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 915E09081A316D89008BDF00 /* map_parse.cpp */; };
919CC2781B37741A00273FDA /* porting.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 913D005A0F9FEEC200184C18 /* porting.cpp */; };
919CC2791B37742200273FDA /* prefs.mac.mm in Sources */ = {isa = PBXBuildFile; fileRef = 91EC481018FBABB100BB1E86 /* prefs.mac.mm */; };
919CC27A1B37742800273FDA /* qdpict.mac.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 91F6F8F518F8DE6300E3EA15 /* qdpict.mac.cpp */; };
919CC27B1B37742D00273FDA /* soundtool.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 91B3F10F0F9779D000BF5B67 /* soundtool.cpp */; };
919CC27C1B37743200273FDA /* specials_parse.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 915325181A2E37EE000A9A1C /* specials_parse.cpp */; };
919CC27B1B37742D00273FDA /* sounds.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 91B3F10F0F9779D000BF5B67 /* sounds.cpp */; };
919CC27C1B37743200273FDA /* special_parse.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 915325181A2E37EE000A9A1C /* special_parse.cpp */; };
919CC27D1B37743700273FDA /* tarball.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 91BFA3D81902AD78001686E4 /* tarball.cpp */; };
919CC27E1B37743B00273FDA /* undo.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 912283C80FD0E16C00B21642 /* undo.cpp */; };
919CC27F1B37744000273FDA /* winutil.mac.mm in Sources */ = {isa = PBXBuildFile; fileRef = 919145FF18E63B70005CF3A4 /* winutil.mac.mm */; };
@@ -256,6 +257,11 @@
91CC173C1B421CA0003D9A69 /* catch.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 91CC17391B421CA0003D9A69 /* catch.cpp */; };
91CC173E1B421CA0003D9A69 /* scen_write.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 91CC173B1B421CA0003D9A69 /* scen_write.cpp */; };
91CC17491B422D5C003D9A69 /* scen_read.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 91CC173A1B421CA0003D9A69 /* scen_read.cpp */; };
91CE248A1EA12866005BDCE4 /* utility.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 91CE24891EA1284B005BDCE4 /* utility.cpp */; };
91CE248C1EA12A96005BDCE4 /* render_text.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 91CE248B1EA12A91005BDCE4 /* render_text.cpp */; };
91CE248E1EA12AA3005BDCE4 /* render_shapes.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 91CE248D1EA12AA0005BDCE4 /* render_shapes.cpp */; };
91CE24921EA12ABD005BDCE4 /* gfxsheets.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 91CE24911EA12ABB005BDCE4 /* gfxsheets.cpp */; };
91CE24931EA12AC9005BDCE4 /* tiling.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 91CE248F1EA12AAD005BDCE4 /* tiling.cpp */; };
91D634560F8FD77800674AB3 /* BoE.icns in Resources */ = {isa = PBXBuildFile; fileRef = 2B8F435C0C0973680012E4A8 /* BoE.icns */; };
91E128E41BC1624700C8BE1D /* ter_legacy.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 91E128E31BC1624700C8BE1D /* ter_legacy.cpp */; };
91E128E61BC19DA400C8BE1D /* init.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 91E128E51BC19DA400C8BE1D /* init.cpp */; };
@@ -354,6 +360,13 @@
remoteGlobalIDString = 919CC22C1B37721400273FDA;
remoteInfo = "Common-Party";
};
9185BDA91EA06A150027C346 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 2BF04AA10BF51845006C0831 /* Project object */;
proxyType = 1;
remoteGlobalIDString = 91CC172C1B421C0A003D9A69;
remoteInfo = boe_test;
};
91BC33931B4390E40008882C /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 2BF04AA10BF51845006C0831 /* Project object */;
@@ -563,7 +576,6 @@
911F2DA41B98FF2300E3102E /* sounds */ = {isa = PBXFileReference; lastKnownFileType = folder; path = sounds; sourceTree = "<group>"; };
911F2DA51B98FF2700E3102E /* fonts */ = {isa = PBXFileReference; lastKnownFileType = folder; path = fonts; sourceTree = "<group>"; };
912283C80FD0E16C00B21642 /* undo.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = undo.cpp; sourceTree = "<group>"; };
912287850FD41A2300B21642 /* simpletypes.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = simpletypes.hpp; sourceTree = "<group>"; };
91279BAD0F9CFCBA007B0D52 /* boescenario.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; name = boescenario.icns; path = ../rsrc/icons/mac/boescenario.icns; sourceTree = SOURCE_ROOT; };
91279BB30F9D03B6007B0D52 /* boesave.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; name = boesave.icns; path = icons/mac/boesave.icns; sourceTree = "<group>"; };
91279BB40F9D03B7007B0D52 /* boesounds.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; name = boesounds.icns; path = icons/mac/boesounds.icns; sourceTree = "<group>"; };
@@ -583,7 +595,7 @@
91279D3C0F9D1D6A007B0D52 /* item.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = item.hpp; sourceTree = "<group>"; };
91279D3D0F9D1D6A007B0D52 /* item.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = item.cpp; sourceTree = "<group>"; };
912DFE8918E24B4C00B00D75 /* resmgr.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = resmgr.hpp; sourceTree = "<group>"; };
912DFE8A18E24B4C00B00D75 /* restypes.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = restypes.hpp; sourceTree = "<group>"; };
912DFE8A18E24B4C00B00D75 /* res_image.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = res_image.hpp; sourceTree = "<group>"; };
912DFE8E18E2872300B00D75 /* boe.menus.mac.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = boe.menus.mac.mm; sourceTree = "<group>"; };
913D00590F9FEEC200184C18 /* porting.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = porting.hpp; sourceTree = "<group>"; };
913D005A0F9FEEC200184C18 /* porting.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = porting.cpp; sourceTree = "<group>"; };
@@ -604,8 +616,8 @@
914CA45719074D0A00B6ADD1 /* scen.menus.mac.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = scen.menus.mac.mm; sourceTree = "<group>"; };
914CA4641909B00100B6ADD1 /* scen.menus.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; path = scen.menus.hpp; sourceTree = "<group>"; };
914CA49F190C4E9200B6ADD1 /* scenedit.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; name = scenedit.xib; path = menus/scenedit.xib; sourceTree = "<group>"; };
915325161A2E1DA8000A9A1C /* oldstructs.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = oldstructs.cpp; path = ../oldstructs.cpp; sourceTree = "<group>"; };
915325181A2E37EE000A9A1C /* specials_parse.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = specials_parse.cpp; sourceTree = "<group>"; };
915325161A2E1DA8000A9A1C /* oldstructs.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = oldstructs.cpp; sourceTree = "<group>"; };
915325181A2E37EE000A9A1C /* special_parse.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = special_parse.cpp; sourceTree = "<group>"; };
91597A6C1A3BED2D00BE7BF9 /* spell.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; path = spell.hpp; sourceTree = "<group>"; };
91597A6E1A3BEDC700BE7BF9 /* spell.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = spell.cpp; sourceTree = "<group>"; };
915AF9E91BC04171008AEF49 /* dlogevt.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; path = dlogevt.hpp; sourceTree = "<group>"; };
@@ -627,6 +639,21 @@
9179A4631A4867E200FEF872 /* stack.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; path = stack.hpp; sourceTree = "<group>"; };
9179A4641A48681800FEF872 /* stack.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = stack.cpp; sourceTree = "<group>"; };
917B573F100B956C0096C978 /* undo.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = undo.hpp; sourceTree = "<group>"; };
9185BD951EA020B70027C346 /* monster_abilities.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; path = monster_abilities.hpp; sourceTree = "<group>"; };
9185BD961EA0234A0027C346 /* damage.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; path = damage.hpp; sourceTree = "<group>"; };
9185BD971EA025720027C346 /* race.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; path = race.hpp; sourceTree = "<group>"; };
9185BD991EA027B80027C346 /* fields.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; path = fields.hpp; sourceTree = "<group>"; };
9185BD9A1EA02B840027C346 /* skills_traits.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; path = skills_traits.hpp; sourceTree = "<group>"; };
9185BD9B1EA02B8F0027C346 /* alchemy.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; path = alchemy.hpp; sourceTree = "<group>"; };
9185BD9C1EA02BA20027C346 /* terrain_abilities.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; path = terrain_abilities.hpp; sourceTree = "<group>"; };
9185BD9D1EA02C320027C346 /* item_abilities.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; path = item_abilities.hpp; sourceTree = "<group>"; };
9185BD9E1EA02C3D0027C346 /* item_variety.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; path = item_variety.hpp; sourceTree = "<group>"; };
9185BD9F1EA02E5C0027C346 /* quest.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; path = quest.hpp; sourceTree = "<group>"; };
9185BDA01EA02FF80027C346 /* global.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; path = global.hpp; sourceTree = "<group>"; };
9185BDA51EA055180027C346 /* res_cursor.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; path = res_cursor.hpp; sourceTree = "<group>"; };
9185BDA61EA055180027C346 /* res_font.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; path = res_font.hpp; sourceTree = "<group>"; };
9185BDA71EA055180027C346 /* res_sound.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; path = res_sound.hpp; sourceTree = "<group>"; };
9185BDA81EA055180027C346 /* res_strings.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; path = res_strings.hpp; sourceTree = "<group>"; };
918D59A718EA513900735B66 /* dialog.keys.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; path = dialog.keys.hpp; sourceTree = "<group>"; };
919086DF1A65C8E30071F7A0 /* tinyprint.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = tinyprint.cpp; sourceTree = "<group>"; };
919086E11A65D3250071F7A0 /* tinyprint.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = tinyprint.h; sourceTree = "<group>"; };
@@ -652,8 +679,8 @@
91AC607F0FA26A3B00EEAE67 /* town_import.tpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 4; path = town_import.tpp; sourceTree = "<group>"; };
91AC61C40FA2729900EEAE67 /* universe.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = universe.hpp; sourceTree = "<group>"; };
91AC61C50FA2729900EEAE67 /* universe.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = universe.cpp; sourceTree = "<group>"; };
91AC62090FA2853700EEAE67 /* creatlist.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = creatlist.hpp; sourceTree = "<group>"; };
91AC620A0FA2853700EEAE67 /* creatlist.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = creatlist.cpp; sourceTree = "<group>"; };
91AC62090FA2853700EEAE67 /* population.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = population.hpp; sourceTree = "<group>"; };
91AC620A0FA2853700EEAE67 /* population.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = population.cpp; sourceTree = "<group>"; };
91ACCE82190032E000FAEF8B /* fix_dylibs.sh */ = {isa = PBXFileReference; lastKnownFileType = text.script.sh; path = fix_dylibs.sh; sourceTree = "<group>"; };
91B0D5CB1E33E579002BE4DA /* bladbase */ = {isa = PBXFileReference; lastKnownFileType = folder; name = bladbase; path = ../bases/bladbase; sourceTree = "<group>"; };
91B0D5CC1E3408AB002BE4DA /* busywork */ = {isa = PBXFileReference; lastKnownFileType = folder; path = busywork; sourceTree = "<group>"; };
@@ -692,10 +719,10 @@
91B3EF0A0F969BD300BF5B67 /* pc.graphics.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = pc.graphics.cpp; sourceTree = "<group>"; };
91B3EF110F969BD300BF5B67 /* BoECharEd.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; name = BoECharEd.icns; path = icons/mac/BoECharEd.icns; sourceTree = "<group>"; };
91B3EF130F969BD300BF5B67 /* BoECharEd-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = "BoECharEd-Info.plist"; path = "pcedit/BoECharEd-Info.plist"; sourceTree = SOURCE_ROOT; };
91B3F1090F9779C300BF5B67 /* graphtool.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = graphtool.hpp; sourceTree = "<group>"; };
91B3F10A0F9779C300BF5B67 /* graphtool.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = graphtool.cpp; sourceTree = "<group>"; };
91B3F10E0F9779D000BF5B67 /* soundtool.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = soundtool.hpp; sourceTree = "<group>"; };
91B3F10F0F9779D000BF5B67 /* soundtool.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = soundtool.cpp; sourceTree = "<group>"; };
91B3F1090F9779C300BF5B67 /* render_image.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = render_image.hpp; sourceTree = "<group>"; };
91B3F10A0F9779C300BF5B67 /* render_image.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = render_image.cpp; sourceTree = "<group>"; };
91B3F10E0F9779D000BF5B67 /* sounds.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = sounds.hpp; sourceTree = "<group>"; };
91B3F10F0F9779D000BF5B67 /* sounds.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = sounds.cpp; sourceTree = "<group>"; };
91B3F11D0F97801F00BF5B67 /* mathutil.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = mathutil.hpp; sourceTree = "<group>"; };
91B3F11E0F97801F00BF5B67 /* mathutil.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = mathutil.cpp; sourceTree = "<group>"; };
91BC33971B439BEA0008882C /* files */ = {isa = PBXFileReference; lastKnownFileType = folder; path = files; sourceTree = "<group>"; };
@@ -722,6 +749,16 @@
91CC173A1B421CA0003D9A69 /* scen_read.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = scen_read.cpp; sourceTree = "<group>"; };
91CC173B1B421CA0003D9A69 /* scen_write.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = scen_write.cpp; sourceTree = "<group>"; };
91CC173F1B421CAA003D9A69 /* catch.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; path = catch.hpp; sourceTree = "<group>"; };
91CE24841EA124E4005BDCE4 /* gfxsheets.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; path = gfxsheets.hpp; sourceTree = "<group>"; };
91CE24851EA12534005BDCE4 /* render_text.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; path = render_text.hpp; sourceTree = "<group>"; };
91CE24861EA12595005BDCE4 /* tiling.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; path = tiling.hpp; sourceTree = "<group>"; };
91CE24871EA12620005BDCE4 /* render_shapes.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; path = render_shapes.hpp; sourceTree = "<group>"; };
91CE24881EA127EC005BDCE4 /* utility.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; path = utility.hpp; sourceTree = "<group>"; };
91CE24891EA1284B005BDCE4 /* utility.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = utility.cpp; sourceTree = "<group>"; };
91CE248B1EA12A91005BDCE4 /* render_text.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = render_text.cpp; sourceTree = "<group>"; };
91CE248D1EA12AA0005BDCE4 /* render_shapes.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = render_shapes.cpp; sourceTree = "<group>"; };
91CE248F1EA12AAD005BDCE4 /* tiling.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = tiling.cpp; sourceTree = "<group>"; };
91CE24911EA12ABB005BDCE4 /* gfxsheets.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = gfxsheets.cpp; sourceTree = "<group>"; };
91E128E31BC1624700C8BE1D /* ter_legacy.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ter_legacy.cpp; sourceTree = "<group>"; };
91E128E51BC19DA400C8BE1D /* init.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = init.cpp; sourceTree = "<group>"; };
91E128E81BC2076B00C8BE1D /* 3choice.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = 3choice.cpp; sourceTree = "<group>"; };
@@ -740,7 +777,7 @@
91E381451B97671E00F69B81 /* town_write.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = town_write.cpp; sourceTree = "<group>"; };
91E381471B97675900F69B81 /* talk_write.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = talk_write.cpp; sourceTree = "<group>"; };
91E381491B97678D00F69B81 /* out_write.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = out_write.cpp; sourceTree = "<group>"; };
91E5C5A10F9EACE200C21460 /* oldstructs.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = oldstructs.hpp; path = ../oldstructs.hpp; sourceTree = "<group>"; };
91E5C5A10F9EACE200C21460 /* oldstructs.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = oldstructs.hpp; sourceTree = "<group>"; };
91E5C7970F9F60EC00C21460 /* town.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = town.hpp; sourceTree = "<group>"; };
91E5C7980F9F60EC00C21460 /* town.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = town.cpp; sourceTree = "<group>"; };
91E5C79C0F9F60FA00C21460 /* outdoors.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = outdoors.hpp; sourceTree = "<group>"; };
@@ -891,9 +928,8 @@
2BF04A9F0BF51845006C0831 = {
isa = PBXGroup;
children = (
91279BAB0F9CFB18007B0D52 /* classes */,
91B3F0FF0F97797200BF5B67 /* tools */,
91B3EF380F969E4A00BF5B67 /* osx */,
91279BAB0F9CFB18007B0D52 /* common */,
91B3EF380F969E4A00BF5B67 /* Game */,
91B3EEF90F969BBD00BF5B67 /* CharEd */,
91B3EECD0F969B7000BF5B67 /* ScenEd */,
91CC17281B421BD5003D9A69 /* test */,
@@ -906,57 +942,56 @@
910BBA130FB8BE66001E34EA /* dialogxml */ = {
isa = PBXGroup;
children = (
910BBA190FB8C43E001E34EA /* xml-parser */,
910BBA140FB8BE7D001E34EA /* headers */,
910BBA150FB8BE88001E34EA /* src */,
910BBA140FB8BE7D001E34EA /* widgets */,
910BBA150FB8BE88001E34EA /* dialogs */,
);
path = dialogxml;
sourceTree = SOURCE_ROOT;
};
910BBA140FB8BE7D001E34EA /* headers */ = {
910BBA140FB8BE7D001E34EA /* widgets */ = {
isa = PBXGroup;
children = (
91E128F21BC2077600C8BE1D /* 3choice.hpp */,
91A32BD10FDB797B00C4E957 /* basicbtns.cpp */,
910BBA890FB8EC57001E34EA /* button.cpp */,
910BBA3C0FB8DA8E001E34EA /* control.cpp */,
910BBAB50FB91A26001E34EA /* field.cpp */,
910BBAB90FB91ADB001E34EA /* message.cpp */,
910BBAA90FB8F733001E34EA /* pict.cpp */,
9191460018E63D8E005CF3A4 /* scrollbar.cpp */,
919B13A81BBE2B54009905A4 /* scrollpane.cpp */,
9179A4641A48681800FEF872 /* stack.cpp */,
910BBA880FB8EC57001E34EA /* button.hpp */,
91E128F31BC2077700C8BE1D /* choicedlog.hpp */,
910BBA3B0FB8DA8E001E34EA /* control.hpp */,
910BBA170FB8BECA001E34EA /* dialog.hpp */,
918D59A718EA513900735B66 /* dialog.keys.hpp */,
915AF9E91BC04171008AEF49 /* dlogevt.hpp */,
910BBAB40FB91A26001E34EA /* field.hpp */,
910BBAB80FB91ADB001E34EA /* message.hpp */,
910BBAA80FB8F733001E34EA /* pict.hpp */,
91E128F41BC2077700C8BE1D /* pictchoice.hpp */,
913FB40A1A5C90840067B9D2 /* pictypes.hpp */,
919145FD18E3C750005CF3A4 /* scrollbar.hpp */,
919B13A71BBE297B009905A4 /* scrollpane.hpp */,
9179A4631A4867E200FEF872 /* stack.hpp */,
91E128F51BC2077700C8BE1D /* strchoice.hpp */,
91E128F61BC2077700C8BE1D /* strdlog.hpp */,
);
name = headers;
path = widgets;
sourceTree = "<group>";
};
910BBA150FB8BE88001E34EA /* src */ = {
910BBA150FB8BE88001E34EA /* dialogs */ = {
isa = PBXGroup;
children = (
91E128E81BC2076B00C8BE1D /* 3choice.cpp */,
91A32BD10FDB797B00C4E957 /* basicbtns.cpp */,
910BBA890FB8EC57001E34EA /* button.cpp */,
91E128E91BC2076B00C8BE1D /* choicedlog.cpp */,
910BBA3C0FB8DA8E001E34EA /* control.cpp */,
910BBA180FB8BECA001E34EA /* dialog.cpp */,
910BBAB50FB91A26001E34EA /* field.cpp */,
910BBAB90FB91ADB001E34EA /* message.cpp */,
910BBAA90FB8F733001E34EA /* pict.cpp */,
91E128EA1BC2076B00C8BE1D /* pictchoice.cpp */,
9191460018E63D8E005CF3A4 /* scrollbar.cpp */,
919B13A81BBE2B54009905A4 /* scrollpane.cpp */,
9179A4641A48681800FEF872 /* stack.cpp */,
91E128EB1BC2076B00C8BE1D /* strchoice.cpp */,
91E128EC1BC2076B00C8BE1D /* strdlog.cpp */,
91E128F21BC2077600C8BE1D /* 3choice.hpp */,
91E128F31BC2077700C8BE1D /* choicedlog.hpp */,
910BBA170FB8BECA001E34EA /* dialog.hpp */,
918D59A718EA513900735B66 /* dialog.keys.hpp */,
915AF9E91BC04171008AEF49 /* dlogevt.hpp */,
91E128F41BC2077700C8BE1D /* pictchoice.hpp */,
91E128F51BC2077700C8BE1D /* strchoice.hpp */,
91E128F61BC2077700C8BE1D /* strdlog.hpp */,
);
name = src;
path = dialogs;
sourceTree = "<group>";
};
910BBA190FB8C43E001E34EA /* xml-parser */ = {
@@ -990,128 +1025,34 @@
name = Products;
sourceTree = BUILT_PRODUCTS_DIR;
};
91279BAB0F9CFB18007B0D52 /* classes */ = {
91279BAB0F9CFB18007B0D52 /* common */ = {
isa = PBXGroup;
children = (
913D03330FA0FFE800184C18 /* headers */,
913D03320FA0FFE700184C18 /* src */,
91E5C5A10F9EACE200C21460 /* oldstructs.hpp */,
915325161A2E1DA8000A9A1C /* oldstructs.cpp */,
910BBA130FB8BE66001E34EA /* dialogxml */,
9185BDA31EA044790027C346 /* fileio */,
9185BDA21EA042BE0027C346 /* gfx */,
9185BDA41EA053E00027C346 /* misc */,
9185BD941EA01BCC0027C346 /* scenario */,
9185BDA11EA041570027C346 /* tools */,
9185BD931EA01BB50027C346 /* universe */,
);
path = classes;
name = common;
sourceTree = "<group>";
};
912DFE8718E24B0B00B00D75 /* resmgr */ = {
isa = PBXGroup;
children = (
912DFE8918E24B4C00B00D75 /* resmgr.hpp */,
91960ED31BB613E5008AF8F4 /* restypes.cpp */,
912DFE8A18E24B4C00B00D75 /* restypes.hpp */,
9185BDA51EA055180027C346 /* res_cursor.hpp */,
9185BDA61EA055180027C346 /* res_font.hpp */,
912DFE8A18E24B4C00B00D75 /* res_image.hpp */,
9185BDA71EA055180027C346 /* res_sound.hpp */,
9185BDA81EA055180027C346 /* res_strings.hpp */,
912DFE8918E24B4C00B00D75 /* resmgr.hpp */,
);
path = resmgr;
sourceTree = "<group>";
};
913D03320FA0FFE700184C18 /* src */ = {
isa = PBXGroup;
children = (
91AC620A0FA2853700EEAE67 /* creatlist.cpp */,
914698FE1A747C4500F20F5E /* creature.cpp */,
91E1862B1B2B2AC0006A99EA /* estreams.cpp */,
91279D3D0F9D1D6A007B0D52 /* item.cpp */,
914698FB1A7362D900F20F5E /* living.cpp */,
91279BE10F9D0F73007B0D52 /* location.cpp */,
91279CC10F9D19DA007B0D52 /* monster.cpp */,
91E5C79D0F9F60FA00C21460 /* outdoors.cpp */,
913D05B50FA1E9E300184C18 /* party.cpp */,
913D05BB0FA1EA0A00184C18 /* pc.cpp */,
91279C580F9D1253007B0D52 /* scenario.cpp */,
91FDB5791A4E774E00DE5983 /* shop.cpp */,
91279CC60F9D1A02007B0D52 /* special.cpp */,
91597A6E1A3BEDC700BE7BF9 /* spell.cpp */,
91E5C7B70F9F619D00C21460 /* talking.cpp */,
91279C660F9D12D6007B0D52 /* terrain.cpp */,
91E5C7980F9F60EC00C21460 /* town.cpp */,
91AC607F0FA26A3B00EEAE67 /* town_import.tpp */,
91AC61C50FA2729900EEAE67 /* universe.cpp */,
91279C750F9D15E5007B0D52 /* vehicle.cpp */,
);
name = src;
sourceTree = "<group>";
};
913D03330FA0FFE800184C18 /* headers */ = {
isa = PBXGroup;
children = (
91AC607E0FA26A3B00EEAE67 /* area.hpp */,
91AC62090FA2853700EEAE67 /* creatlist.hpp */,
914698FD1A747BED00F20F5E /* creature.hpp */,
91279D3C0F9D1D6A007B0D52 /* item.hpp */,
914698FA1A7362C200F20F5E /* living.hpp */,
91279BE00F9D0F73007B0D52 /* location.hpp */,
91279CC00F9D19DA007B0D52 /* monster.hpp */,
91E5C79C0F9F60FA00C21460 /* outdoors.hpp */,
913D05B40FA1E9E200184C18 /* party.hpp */,
913D05BA0FA1EA0A00184C18 /* pc.hpp */,
91279C570F9D1253007B0D52 /* scenario.hpp */,
91FDB5771A4E71A900DE5983 /* shop.hpp */,
912287850FD41A2300B21642 /* simpletypes.hpp */,
91279CC50F9D1A02007B0D52 /* special.hpp */,
91597A6C1A3BED2D00BE7BF9 /* spell.hpp */,
91E5C7B60F9F619D00C21460 /* talking.hpp */,
91279C650F9D12D6007B0D52 /* terrain.hpp */,
91E5C7970F9F60EC00C21460 /* town.hpp */,
91AC61C40FA2729900EEAE67 /* universe.hpp */,
91279C740F9D15E4007B0D52 /* vehicle.hpp */,
);
name = headers;
sourceTree = "<group>";
};
913D03340FA0FFFF00184C18 /* src */ = {
isa = PBXGroup;
children = (
91C688E70FD702B9000F6D01 /* cursors.mac.mm */,
91E30F2D1A7481C20057C54A /* fileio.cpp */,
91E30F2A1A74819B0057C54A /* fileio_party.cpp */,
91E5C7A60F9F615400C21460 /* fileio_scen.cpp */,
91B3F10A0F9779C300BF5B67 /* graphtool.cpp */,
915E09081A316D89008BDF00 /* map_parse.cpp */,
91A0B15A1900F73E00EF438F /* mask.frag */,
91BFA3D61901B024001686E4 /* mask.vert */,
91B3F11E0F97801F00BF5B67 /* mathutil.cpp */,
913D005A0F9FEEC200184C18 /* porting.cpp */,
91EC481018FBABB100BB1E86 /* prefs.mac.mm */,
91F6F8F518F8DE6300E3EA15 /* qdpict.mac.cpp */,
91B3F10F0F9779D000BF5B67 /* soundtool.cpp */,
915325181A2E37EE000A9A1C /* specials_parse.cpp */,
91BFA3D81902AD78001686E4 /* tarball.cpp */,
912283C80FD0E16C00B21642 /* undo.cpp */,
91B0D5D01E34428E002BE4DA /* view_dialogs.cpp */,
919145FF18E63B70005CF3A4 /* winutil.mac.mm */,
);
name = src;
sourceTree = "<group>";
};
913D03350FA1000200184C18 /* headers */ = {
isa = PBXGroup;
children = (
91C688E60FD702B9000F6D01 /* cursors.hpp */,
91E5C7A50F9F615400C21460 /* fileio.hpp */,
91C2A6E21B8244F700346948 /* gitrev.hpp */,
91B3F1090F9779C300BF5B67 /* graphtool.hpp */,
915E09071A316D6A008BDF00 /* map_parse.hpp */,
91B3F11D0F97801F00BF5B67 /* mathutil.hpp */,
913D00590F9FEEC200184C18 /* porting.hpp */,
91EC480E18FBAA8700BB1E86 /* prefs.hpp */,
91B3F10E0F9779D000BF5B67 /* soundtool.hpp */,
91F06E8F1A2EBEE70038E902 /* special_parse.hpp */,
91BFA3D91902ADD5001686E4 /* tarball.hpp */,
917B573F100B956C0096C978 /* undo.hpp */,
9179A4621A47D4E200FEF872 /* vector2d.hpp */,
91B0D5D31E3446CF002BE4DA /* view_dialogs.hpp */,
919145FE18E63B41005CF3A4 /* winutil.hpp */,
);
name = headers;
sourceTree = "<group>";
};
914B2AA018E7E4A3007B6799 /* Linked Frameworks */ = {
isa = PBXGroup;
children = (
@@ -1137,6 +1078,147 @@
name = "Linked Frameworks";
sourceTree = "<group>";
};
9185BD931EA01BB50027C346 /* universe */ = {
isa = PBXGroup;
children = (
914698FE1A747C4500F20F5E /* creature.cpp */,
914698FB1A7362D900F20F5E /* living.cpp */,
913D05B50FA1E9E300184C18 /* party.cpp */,
913D05BB0FA1EA0A00184C18 /* pc.cpp */,
91AC620A0FA2853700EEAE67 /* population.cpp */,
91AC61C50FA2729900EEAE67 /* universe.cpp */,
914698FD1A747BED00F20F5E /* creature.hpp */,
914698FA1A7362C200F20F5E /* living.hpp */,
913D05B40FA1E9E200184C18 /* party.hpp */,
913D05BA0FA1EA0A00184C18 /* pc.hpp */,
91AC62090FA2853700EEAE67 /* population.hpp */,
91AC61C40FA2729900EEAE67 /* universe.hpp */,
);
path = universe;
sourceTree = "<group>";
};
9185BD941EA01BCC0027C346 /* scenario */ = {
isa = PBXGroup;
children = (
91279D3D0F9D1D6A007B0D52 /* item.cpp */,
91279CC10F9D19DA007B0D52 /* monster.cpp */,
91E5C79D0F9F60FA00C21460 /* outdoors.cpp */,
91279C580F9D1253007B0D52 /* scenario.cpp */,
91FDB5791A4E774E00DE5983 /* shop.cpp */,
91279CC60F9D1A02007B0D52 /* special.cpp */,
91E5C7B70F9F619D00C21460 /* talking.cpp */,
91279C660F9D12D6007B0D52 /* terrain.cpp */,
91E5C7980F9F60EC00C21460 /* town.cpp */,
91279C750F9D15E5007B0D52 /* vehicle.cpp */,
91AC607E0FA26A3B00EEAE67 /* area.hpp */,
91279D3C0F9D1D6A007B0D52 /* item.hpp */,
9185BD9D1EA02C320027C346 /* item_abilities.hpp */,
9185BD9E1EA02C3D0027C346 /* item_variety.hpp */,
91279CC00F9D19DA007B0D52 /* monster.hpp */,
9185BD951EA020B70027C346 /* monster_abilities.hpp */,
91E5C79C0F9F60FA00C21460 /* outdoors.hpp */,
9185BD9F1EA02E5C0027C346 /* quest.hpp */,
91279C570F9D1253007B0D52 /* scenario.hpp */,
91FDB5771A4E71A900DE5983 /* shop.hpp */,
91279CC50F9D1A02007B0D52 /* special.hpp */,
91E5C7B60F9F619D00C21460 /* talking.hpp */,
91279C650F9D12D6007B0D52 /* terrain.hpp */,
9185BD9C1EA02BA20027C346 /* terrain_abilities.hpp */,
91E5C7970F9F60EC00C21460 /* town.hpp */,
91AC607F0FA26A3B00EEAE67 /* town_import.tpp */,
91279C740F9D15E4007B0D52 /* vehicle.hpp */,
);
path = scenario;
sourceTree = "<group>";
};
9185BDA11EA041570027C346 /* tools */ = {
isa = PBXGroup;
children = (
91C688E70FD702B9000F6D01 /* cursors.mac.mm */,
91EC481018FBABB100BB1E86 /* prefs.mac.mm */,
912283C80FD0E16C00B21642 /* undo.cpp */,
919145FF18E63B70005CF3A4 /* winutil.mac.mm */,
91C688E60FD702B9000F6D01 /* cursors.hpp */,
91C2A6E21B8244F700346948 /* gitrev.hpp */,
91EC480E18FBAA8700BB1E86 /* prefs.hpp */,
917B573F100B956C0096C978 /* undo.hpp */,
9179A4621A47D4E200FEF872 /* vector2d.hpp */,
919145FE18E63B41005CF3A4 /* winutil.hpp */,
91C2A6E11B823CCD00346948 /* gitrev.sh */,
);
path = tools;
sourceTree = "<group>";
};
9185BDA21EA042BE0027C346 /* gfx */ = {
isa = PBXGroup;
children = (
91CE24911EA12ABB005BDCE4 /* gfxsheets.cpp */,
91F6F8F518F8DE6300E3EA15 /* qdpict.mac.cpp */,
91B3F10A0F9779C300BF5B67 /* render_image.cpp */,
91CE248D1EA12AA0005BDCE4 /* render_shapes.cpp */,
91CE248B1EA12A91005BDCE4 /* render_text.cpp */,
91CE248F1EA12AAD005BDCE4 /* tiling.cpp */,
91CE24841EA124E4005BDCE4 /* gfxsheets.hpp */,
91B3F1090F9779C300BF5B67 /* render_image.hpp */,
91CE24871EA12620005BDCE4 /* render_shapes.hpp */,
91CE24851EA12534005BDCE4 /* render_text.hpp */,
91CE24861EA12595005BDCE4 /* tiling.hpp */,
91A0B15A1900F73E00EF438F /* mask.frag */,
91BFA3D61901B024001686E4 /* mask.vert */,
);
path = gfx;
sourceTree = "<group>";
};
9185BDA31EA044790027C346 /* fileio */ = {
isa = PBXGroup;
children = (
91E1862B1B2B2AC0006A99EA /* estreams.cpp */,
91E30F2D1A7481C20057C54A /* fileio.cpp */,
91E30F2A1A74819B0057C54A /* fileio_party.cpp */,
91E5C7A60F9F615400C21460 /* fileio_scen.cpp */,
915E09081A316D89008BDF00 /* map_parse.cpp */,
915325181A2E37EE000A9A1C /* special_parse.cpp */,
91BFA3D81902AD78001686E4 /* tarball.cpp */,
91E5C7A50F9F615400C21460 /* fileio.hpp */,
915E09071A316D6A008BDF00 /* map_parse.hpp */,
91F06E8F1A2EBEE70038E902 /* special_parse.hpp */,
91BFA3D91902ADD5001686E4 /* tarball.hpp */,
91BFA3DC19033E00001686E4 /* gzstream */,
912DFE8718E24B0B00B00D75 /* resmgr */,
910BBA190FB8C43E001E34EA /* xml-parser */,
);
path = fileio;
sourceTree = "<group>";
};
9185BDA41EA053E00027C346 /* misc */ = {
isa = PBXGroup;
children = (
91279BE10F9D0F73007B0D52 /* location.cpp */,
91B3F11E0F97801F00BF5B67 /* mathutil.cpp */,
915325161A2E1DA8000A9A1C /* oldstructs.cpp */,
913D005A0F9FEEC200184C18 /* porting.cpp */,
91B3F10F0F9779D000BF5B67 /* sounds.cpp */,
91597A6E1A3BEDC700BE7BF9 /* spell.cpp */,
91CE24891EA1284B005BDCE4 /* utility.cpp */,
91B0D5D01E34428E002BE4DA /* view_dialogs.cpp */,
9185BD9B1EA02B8F0027C346 /* alchemy.hpp */,
9185BD961EA0234A0027C346 /* damage.hpp */,
9185BD991EA027B80027C346 /* fields.hpp */,
9185BDA01EA02FF80027C346 /* global.hpp */,
91279BE00F9D0F73007B0D52 /* location.hpp */,
91B3F11D0F97801F00BF5B67 /* mathutil.hpp */,
91E5C5A10F9EACE200C21460 /* oldstructs.hpp */,
913D00590F9FEEC200184C18 /* porting.hpp */,
9185BD971EA025720027C346 /* race.hpp */,
9185BD9A1EA02B840027C346 /* skills_traits.hpp */,
91B3F10E0F9779D000BF5B67 /* sounds.hpp */,
91597A6C1A3BED2D00BE7BF9 /* spell.hpp */,
91CE24881EA127EC005BDCE4 /* utility.hpp */,
91B0D5D31E3446CF002BE4DA /* view_dialogs.hpp */,
);
name = misc;
sourceTree = "<group>";
};
91B3EECD0F969B7000BF5B67 /* ScenEd */ = {
isa = PBXGroup;
children = (
@@ -1258,27 +1340,15 @@
path = ../rsrc;
sourceTree = SOURCE_ROOT;
};
91B3EF380F969E4A00BF5B67 /* osx */ = {
91B3EF380F969E4A00BF5B67 /* Game */ = {
isa = PBXGroup;
children = (
91D62F2C0F8EB7AB00674AB3 /* src */,
91D62F2D0F8EB7BA00674AB3 /* headers */,
91D62F2E0F8EB80200674AB3 /* rsrc */,
);
name = osx;
sourceTree = "<group>";
};
91B3F0FF0F97797200BF5B67 /* tools */ = {
isa = PBXGroup;
children = (
91C2A6E11B823CCD00346948 /* gitrev.sh */,
91BFA3DC19033E00001686E4 /* gzstream */,
912DFE8718E24B0B00B00D75 /* resmgr */,
910BBA130FB8BE66001E34EA /* dialogxml */,
913D03350FA1000200184C18 /* headers */,
913D03340FA0FFFF00184C18 /* src */,
);
path = tools;
name = Game;
path = game;
sourceTree = "<group>";
};
91BFA3DC19033E00001686E4 /* gzstream */ = {
@@ -1765,7 +1835,7 @@
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
919CC2481B3772F300273FDA /* creatlist.cpp in Sources */,
919CC2481B3772F300273FDA /* population.cpp in Sources */,
919CC2491B3772FB00273FDA /* creature.cpp in Sources */,
919CC24C1B37730900273FDA /* living.cpp in Sources */,
919CC2501B37731D00273FDA /* party.cpp in Sources */,
@@ -1811,14 +1881,14 @@
919CC2711B3773F300273FDA /* cursors.mac.mm in Sources */,
919CC2721B3773F800273FDA /* fileio.cpp in Sources */,
919CC2741B37740200273FDA /* fileio_scen.cpp in Sources */,
919CC2751B37740A00273FDA /* graphtool.cpp in Sources */,
919CC2751B37740A00273FDA /* render_image.cpp in Sources */,
919CC2761B37741000273FDA /* mathutil.cpp in Sources */,
919CC2771B37741500273FDA /* map_parse.cpp in Sources */,
919CC2781B37741A00273FDA /* porting.cpp in Sources */,
919CC2791B37742200273FDA /* prefs.mac.mm in Sources */,
919CC27A1B37742800273FDA /* qdpict.mac.cpp in Sources */,
919CC27B1B37742D00273FDA /* soundtool.cpp in Sources */,
919CC27C1B37743200273FDA /* specials_parse.cpp in Sources */,
919CC27B1B37742D00273FDA /* sounds.cpp in Sources */,
919CC27C1B37743200273FDA /* special_parse.cpp in Sources */,
919CC27D1B37743700273FDA /* tarball.cpp in Sources */,
919CC27E1B37743B00273FDA /* undo.cpp in Sources */,
919CC27F1B37744000273FDA /* winutil.mac.mm in Sources */,
@@ -1830,6 +1900,11 @@
91E128EF1BC2076B00C8BE1D /* pictchoice.cpp in Sources */,
91E128F01BC2076B00C8BE1D /* strchoice.cpp in Sources */,
91E128F11BC2076B00C8BE1D /* strdlog.cpp in Sources */,
91CE248A1EA12866005BDCE4 /* utility.cpp in Sources */,
91CE248C1EA12A96005BDCE4 /* render_text.cpp in Sources */,
91CE248E1EA12AA3005BDCE4 /* render_shapes.cpp in Sources */,
91CE24921EA12ABD005BDCE4 /* gfxsheets.cpp in Sources */,
91CE24931EA12AC9005BDCE4 /* tiling.cpp in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -1944,6 +2019,11 @@
target = 919CC22C1B37721400273FDA /* Common-Party */;
targetProxy = 9169C3081B379E8B0041002B /* PBXContainerItemProxy */;
};
9185BDAA1EA06A150027C346 /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
target = 91CC172C1B421C0A003D9A69 /* boe_test */;
targetProxy = 9185BDA91EA06A150027C346 /* PBXContainerItemProxy */;
};
91BC33941B4390E40008882C /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
target = 919CC23A1B3772B700273FDA /* Common */;
@@ -1987,6 +2067,7 @@
GCC_INLINES_ARE_PRIVATE_EXTERN = NO;
GCC_INPUT_FILETYPE = automatic;
GCC_OPTIMIZATION_LEVEL = 0;
GCC_PREFIX_HEADER = global.hpp;
GCC_PREPROCESSOR_DEFINITIONS = TIXML_USE_TICPP;
GCC_SYMBOLS_PRIVATE_EXTERN = NO;
GCC_WARN_ABOUT_DEPRECATED_FUNCTIONS = NO;
@@ -2049,6 +2130,7 @@
GCC_ENABLE_PASCAL_STRINGS = NO;
GCC_INLINES_ARE_PRIVATE_EXTERN = NO;
GCC_INPUT_FILETYPE = automatic;
GCC_PREFIX_HEADER = global.hpp;
GCC_PREPROCESSOR_DEFINITIONS = TIXML_USE_TICPP;
GCC_SYMBOLS_PRIVATE_EXTERN = NO;
GCC_WARN_ABOUT_DEPRECATED_FUNCTIONS = NO;
@@ -2108,8 +2190,6 @@
"-lboost_system",
"-lboost_filesystem",
"$(OTHER_LDFLAGS_QUOTED_FOR_PROJECT_1)",
"-lCommon",
"-lCommon-Party",
);
PRODUCT_NAME = "Blades of Exile";
WRAPPER_EXTENSION = app;
@@ -2132,8 +2212,6 @@
"-lboost_system",
"-lboost_filesystem",
"$(OTHER_LDFLAGS_QUOTED_FOR_PROJECT_1)",
"-lCommon",
"-lCommon-Party",
);
PRODUCT_NAME = "Blades of Exile";
WRAPPER_EXTENSION = app;
@@ -2217,8 +2295,6 @@
"-lboost_system",
"-lboost_filesystem",
"$(OTHER_LDFLAGS_QUOTED_FOR_PROJECT_1)",
"-lCommon-Party",
"-lCommon",
);
OTHER_LDFLAGS_QUOTED_FOR_TARGET_1 = "-L\"$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/\"";
PRODUCT_NAME = "BoE Character Editor";
@@ -2242,8 +2318,6 @@
"-lboost_system",
"-lboost_filesystem",
"$(OTHER_LDFLAGS_QUOTED_FOR_PROJECT_1)",
"-lCommon-Party",
"-lCommon",
);
OTHER_LDFLAGS_QUOTED_FOR_TARGET_1 = "-L\"$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/\"";
PRODUCT_NAME = "BoE Character Editor";
@@ -2311,8 +2385,6 @@
"-lboost_system",
"-lboost_filesystem",
"$(OTHER_LDFLAGS_QUOTED_FOR_PROJECT_1)",
"-lCommon",
"-lCommon-Party",
);
PRODUCT_NAME = "$(TARGET_NAME)";
};

36
src/alchemy.hpp Normal file
View File

@@ -0,0 +1,36 @@
//
// alchemy.hpp
// BoE
//
// Created by Celtic Minstrel on 17-04-13.
//
//
#ifndef BoE_ALCHEMY_HPP
#define BoE_ALCHEMY_HPP
enum class eAlchemy {
NONE = -1,
CURE_WEAK = 0,
HEAL_WEAK = 1,
POISON_WEAK = 2,
SPEED_WEAK = 3,
POISON_MED = 4,
HEAL_MED = 5,
CURE_STRONG = 6,
SPEED_MED = 7,
GRAYMOLD = 8,
POWER_WEAK = 9,
CLARITY = 10,
POISON_STRONG = 11,
HEAL_STRONG = 12,
POISON_KILL = 13,
RESURRECT = 14,
POWER_MED = 15,
KNOWLEDGE = 16,
STRENGTH = 17,
BLISS = 18,
POWER_STRONG = 19,
};
#endif

View File

@@ -1,178 +0,0 @@
/*
* monster.h
* BoE
*
* Created by Celtic Minstrel on 20/04/09.
*
*/
#ifndef BOE_DATA_MONSTER_H
#define BOE_DATA_MONSTER_H
#include <string>
#include <map>
#include <array>
#include <iosfwd>
#include "soundtool.hpp"
#include "simpletypes.hpp"
#include "graphtool.hpp"
#include "living.hpp"
#include "spell.hpp"
namespace legacy {
struct monster_record_type;
struct creature_data_type;
struct creature_start_type;
};
class cScenario;
class cUniverse;
enum class eMonstAbilTemplate {
// Non-magical missiles
THROWS_DARTS, SHOOTS_ARROWS, THROWS_SPEARS, THROWS_ROCKS1, THROWS_ROCKS2, THROWS_ROCKS3,
THROWS_RAZORDISKS, THROWS_KNIVES, GOOD_ARCHER, SHOOTS_SPINES, CROSSBOWMAN, SLINGER,
// Magical missiles
RAY_PETRIFY, RAY_SP_DRAIN, RAY_HEAT, RAY_PARALYSIS,
BREATH_FIRE, BREATH_FROST, BREATH_ELECTRICITY, BREATH_DARKNESS, BREATH_FOUL, BREATH_SLEEP,
SPIT_ACID, SHOOTS_WEB,
// Touch abilities
TOUCH_POISON, TOUCH_ACID, TOUCH_DISEASE, TOUCH_WEB, TOUCH_SLEEP, TOUCH_DUMB, TOUCH_PARALYSIS,
TOUCH_PETRIFY, TOUCH_DEATH, TOUCH_XP_DRAIN, TOUCH_ICY, TOUCH_ICY_DRAINING, TOUCH_STUN, TOUCH_STEAL_FOOD, TOUCH_STEAL_GOLD,
// Misc abilities
SPLITS, MARTYRS_SHIELD, ABSORB_SPELLS, SUMMON_5, SUMMON_20, SUMMON_50, SPECIAL, HIT_TRIGGERS, DEATH_TRIGGERS,
// Radiate abilities
RADIATE_FIRE, RADIATE_ICE, RADIATE_SHOCK, RADIATE_ANTIMAGIC, RADIATE_SLEEP, RADIATE_STINK, RADIATE_BLADE, RADIATE_WEB,
// Advanced abilities
CUSTOM_MISSILE, CUSTOM_DAMAGE, CUSTOM_STATUS, CUSTOM_FIELD, CUSTOM_PETRIFY, CUSTOM_SP_DRAIN, CUSTOM_XP_DRAIN,
CUSTOM_KILL, CUSTOM_STEAL_FOOD, CUSTOM_STEAL_GOLD, CUSTOM_STUN, CUSTOM_STATUS2, CUSTOM_RADIATE, CUSTOM_SUMMON,
CUSTOM_DAMAGE2,
};
union uAbility {
bool active;
struct {
bool active;
eMonstMissile type;
miss_num_t pic;
int dice, sides, skill, range, odds;
} missile;
struct {
bool active;
eMonstGen type;
miss_num_t pic;
int strength, range, odds;
union {
eDamageType dmg;
eStatus stat;
eFieldType fld;
};
} gen;
struct {
bool active;
eMonstSummon type;
mon_num_t what;
int min, max, len, chance;
} summon;
struct {
bool active;
eFieldType type;
int chance;
eSpellPat pat;
} radiate;
struct {
bool active;
int extra1, extra2, extra3;
} special;
std::string to_string(eMonstAbil myKey) const;
int get_ap_cost(eMonstAbil key) const;
};
class cMonster {
public:
struct cAttack{
unsigned short dice = 0, sides = 0;
eMonstMelee type = eMonstMelee::SWING;
};
unsigned int level;
std::string m_name;
short m_health;
unsigned int armor;
unsigned int skill;
std::array<cAttack, 3> a;
eRace m_type;
unsigned int speed;
unsigned int mu;
unsigned int cl;
unsigned int treasure;
// HACK: This is only really marked mutable so that I can use operator[] from const methods
mutable std::map<eMonstAbil, uAbility> abil;
item_num_t corpse_item;
short corpse_item_chance;
std::map<eDamageType, int> resist;
bool mindless, invuln, invisible, guard, amorphous;
unsigned int x_width,y_width;
eAttitude default_attitude;
unsigned int summon_type;
pic_num_t default_facial_pic;
pic_num_t picture_num;
snd_num_t ambient_sound; // has a chance of being played every move
spec_num_t see_spec;
std::map<eMonstAbil,uAbility>::iterator addAbil(eMonstAbilTemplate what, int param = 0);
int addAttack(unsigned short dice, unsigned short sides, eMonstMelee type = eMonstMelee::SWING);
void import_legacy(legacy::monster_record_type& old);
cMonster();
void writeTo(std::ostream& file) const;
void readFrom(std::istream& file);
};
class cTownperson {
public:
mon_num_t number;
eAttitude start_attitude;
location start_loc;
unsigned short mobility;
eMonstTime time_flag;
short spec1, spec2;
short spec_enc_code, time_code;
short monster_time, personality;
short special_on_kill, special_on_talk;
pic_num_t facial_pic;
void import_legacy(legacy::creature_start_type old);
cTownperson();
cTownperson(location loc, mon_num_t num, const cMonster& monst);
};
std::ostream& operator << (std::ostream& out, eStatus e);
std::istream& operator >> (std::istream& in, eStatus& e);
std::ostream& operator << (std::ostream& out, eRace e);
std::istream& operator >> (std::istream& in, eRace& e);
std::ostream& operator << (std::ostream& out, eMonstAbil e);
std::istream& operator >> (std::istream& in, eMonstAbil& e);
std::ostream& operator << (std::ostream& out, eMonstMissile e);
std::istream& operator >> (std::istream& in, eMonstMissile& e);
std::ostream& operator << (std::ostream& out, eMonstSummon e);
std::istream& operator >> (std::istream& in, eMonstSummon& e);
std::ostream& operator << (std::ostream& out, eMonstMelee e);
std::istream& operator >> (std::istream& in, eMonstMelee& e);
std::ostream& operator << (std::ostream& out, eMonstGen e);
std::istream& operator >> (std::istream& in, eMonstGen& e);
std::ostream& operator << (std::ostream& out, eDirection e);
std::istream& operator >> (std::istream& in, eDirection& e);
std::ostream& operator << (std::ostream& out, eDamageType e);
std::istream& operator >> (std::istream& in, eDamageType& e);
std::ostream& operator << (std::ostream& out, eFieldType e);
std::istream& operator >> (std::istream& in, eFieldType& e);
std::ostream& operator << (std::ostream& out, eMonstTime e);
std::istream& operator >> (std::istream& in, eMonstTime& e);
std::ostream& operator<< (std::ostream& out, eAttitude node);
std::istream& operator>> (std::istream& in, eAttitude& node);
std::ostream& operator<<(std::ostream& out, const cMonster::cAttack& att);
std::ostream& operator<< (std::ostream& out, eSpellPat pat);
std::istream& operator>> (std::istream& in, eSpellPat& pat);
#endif

File diff suppressed because it is too large Load Diff

View File

@@ -1,76 +0,0 @@
/*
* special.h
* BoE
*
* Created by Celtic Minstrel on 20/04/09.
*
*/
#ifndef BOE_DATA_SPECIAL_H
#define BOE_DATA_SPECIAL_H
#include <iosfwd>
#include <string>
#include <functional>
#include "simpletypes.hpp"
#include "location.hpp"
namespace legacy { struct special_node_type; };
class cSpecial {
public:
eSpecType type;
short sd1;
short sd2;
short pic;
short pictype;
short m1;
short m2;
short m3;
short ex1a;
short ex1b;
short ex1c;
short ex2a;
short ex2b;
short ex2c;
short jumpto;
cSpecial();
void import_legacy(legacy::special_node_type& old);
void writeTo(std::ostream& file, int n) const;
};
class cTimer {
public:
long time = 0;
short node_type = 0;
short node = -1;
};
struct pending_special_type {
spec_num_t spec;
eSpecCtx mode;
unsigned short type; // 0 - scen, 1 - out, 2 - town
location where;
long long trigger_time;
};
struct node_properties_t {
eSpecType self;
std::string opcode() const;
std::string name() const, descr() const;
std::string sdf1_lbl() const, sdf2_lbl() const, sdf1_hlp() const, sdf2_hlp() const;
std::string msg1_lbl() const, msg2_lbl() const, msg3_lbl() const, msg1_hlp() const, msg2_hlp() const, msg3_hlp() const;
std::string pic_lbl() const, pt_lbl() const, pic_hlp() const, pt_hlp() const;
std::string ex1a_lbl() const, ex1b_lbl() const, ex1c_lbl() const, ex1a_hlp() const, ex1b_hlp() const, ex1c_hlp() const;
std::string ex2a_lbl() const, ex2b_lbl() const, ex2c_lbl() const, ex2a_hlp() const, ex2b_hlp() const, ex2c_hlp() const;
std::string jmp_lbl() const, jmp_hlp() const;
char sd1_btn, sd2_btn, m1_btn, m2_btn, m3_btn, p_btn, pt_btn;
char x1a_btn, x1b_btn, x1c_btn, x2a_btn, x2b_btn, x2c_btn;
node_properties_t() {}
node_properties_t(std::initializer_list<std::function<void(node_properties_t)>>);
};
const node_properties_t& operator* (eSpecType t);
#endif

View File

@@ -1,53 +0,0 @@
//
// spell.hpp
// BoE
//
// Created by Celtic Minstrel on 14-12-12.
//
//
#ifndef BoE_DATA_SPELL_HPP
#define BoE_DATA_SPELL_HPP
#include <map>
#include "simpletypes.hpp"
enum eSpellRefer {REFER_YES, REFER_IMMED, REFER_TARGET, REFER_FANCY};
enum eSpellSelect {SELECT_NO, SELECT_ACTIVE, SELECT_ANY};
// This one is meant for indexing a bit field
enum eSpellWhen {WHEN_COMBAT = 1, WHEN_TOWN = 2, WHEN_OUTDOORS = 4};
enum eSpellPat {PAT_SINGLE, PAT_SQ, PAT_SMSQ, PAT_OPENSQ, PAT_RAD2, PAT_RAD3, PAT_PLUS, PAT_WALL};
class cSpell {
static std::map<eSpell,cSpell> dictionary;
friend const cSpell& operator*(eSpell spell_num);
public:
cSpell() {} // This is just here because the map doesn't work without it
cSpell(eSpell id);
cSpell& withRefer(eSpellRefer r);
cSpell& withCost(int c);
cSpell& withRange(int r);
cSpell& asLevel(int lvl);
cSpell& asType(eSkill type);
cSpell& asPeaceful();
cSpell& needsSelect(eSpellSelect sel = SELECT_ACTIVE);
cSpell& when(eSpellWhen when);
const cSpell& finish();
eSpell num;
eSpellRefer refer;
int cost, range, level;
eSpellSelect need_select;
eSkill type;
int when_cast;
bool peaceful = false;
std::string name() const;
bool is_priest() const;
static eSpell fromNum(eSkill type, int num);
static eSpell fromNum(int num);
};
// Need to declare this a second time in order for it to be in scope where it's needed
const cSpell& operator*(eSpell spell_num);
#endif

129
src/damage.hpp Normal file
View File

@@ -0,0 +1,129 @@
//
// damage.hpp
// BoE
//
// Created by Celtic Minstrel on 17-04-13.
//
//
#ifndef BoE_DATA_DAMAGE_HPP
#define BoE_DATA_DAMAGE_HPP
enum class eDamageType {
WEAPON = 0,
FIRE = 1,
POISON = 2,
MAGIC = 3,
UNBLOCKABLE = 4,
COLD = 5,
UNDEAD = 6,
DEMON = 7,
// Keep these two last
SPECIAL = 8, // Completely unblockable damage from assassination skill
MARKED = 10,
};
enum class eStatus {
MAIN = -1, // For saved games only
POISONED_WEAPON = 0,
BLESS_CURSE = 1,
POISON = 2,
HASTE_SLOW = 3,
INVULNERABLE = 4,
MAGIC_RESISTANCE = 5,
WEBS = 6,
DISEASE = 7,
INVISIBLE = 8, //sanctuary
DUMB = 9,
MARTYRS_SHIELD = 10,
ASLEEP = 11,
PARALYZED = 12,
ACID = 13,
FORCECAGE = 14,
// This one is new
// It's not quite a real status effect since it doesn't expire
CHARM = 15,
};
inline bool isStatusNegative(eStatus stat) {
switch(stat) {
case eStatus::MAIN: return false;
case eStatus::POISONED_WEAPON: return false;
case eStatus::BLESS_CURSE: return false;
case eStatus::POISON: return true;
case eStatus::HASTE_SLOW: return false;
case eStatus::INVULNERABLE: return false;
case eStatus::MAGIC_RESISTANCE: return false;
case eStatus::WEBS: return true;
case eStatus::DISEASE: return true;
case eStatus::INVISIBLE: return false;
case eStatus::DUMB: return true;
case eStatus::MARTYRS_SHIELD: return false;
case eStatus::ASLEEP: return true;
case eStatus::PARALYZED: return true;
case eStatus::ACID: return true;
case eStatus::FORCECAGE: return true;
case eStatus::CHARM: return true;
}
return false;
}
enum class ePartyStatus {
STEALTH,
FLIGHT,
DETECT_LIFE,
FIREWALK,
};
enum class eMainStatus {
ABSENT = 0, // absent, empty slot
ALIVE = 1,
DEAD = 2,
DUST = 3,
STONE = 4,
FLED = 5,
SURFACE = 6, // fled to surface?
WON = 7,
SPLIT = 10,
SPLIT_ABSENT = SPLIT + ABSENT,
SPLIT_ALIVE = SPLIT + ALIVE,
SPLIT_DEAD = SPLIT + DEAD,
SPLIT_DUST = SPLIT + DUST,
SPLIT_STONE = SPLIT + STONE,
SPLIT_FLED = SPLIT + FLED,
SPLIT_SURFACE = SPLIT + SURFACE,
SPLIT_WON = SPLIT + WON,
};
inline eMainStatus exceptSplit(eMainStatus stat) {
if(int(stat) >= 10)
return (eMainStatus) (-10 + (int)stat);
return stat;
}
inline bool isSplit(eMainStatus stat) {
return int(stat) >= 10;
}
inline bool isAbsent(eMainStatus stat) {
return stat == eMainStatus::ABSENT || int(stat) > 4;
}
inline bool isDead(eMainStatus stat) {
int code = (int) stat;
return code > 1 && code < 5;
}
std::ostream& operator << (std::ostream& out, eStatus e);
std::istream& operator >> (std::istream& in, eStatus& e);
std::istream& operator >> (std::istream& in, ePartyStatus& type);
std::ostream& operator << (std::ostream& out, ePartyStatus type);
std::ostream& operator << (std::ostream& out, eMainStatus e);
std::istream& operator >> (std::istream& in, eMainStatus& e);
std::ostream& operator << (std::ostream& out, eDamageType e);
std::istream& operator >> (std::istream& in, eDamageType& e);
void operator += (eMainStatus& stat, eMainStatus othr);
void operator -= (eMainStatus& stat, eMainStatus othr);
#endif

View File

@@ -9,10 +9,8 @@
#include <cmath>
#include <stdexcept>
#include "dialog.hpp"
#include "graphtool.hpp"
#include "soundtool.hpp"
using namespace std;
using namespace ticpp;
#include "tiling.hpp" // for bg
#include "sounds.hpp"
#include "pict.hpp"
#include "button.hpp"
#include "field.hpp"
@@ -25,9 +23,11 @@ using namespace ticpp;
#include "cursors.hpp"
#include "prefs.hpp"
using namespace std;
using namespace ticpp;
// TODO: Would be nice if I could avoid depending on mainPtr
extern sf::RenderWindow mainPtr;
extern cursor_type current_cursor;
extern sf::Texture bg_gworld;
const short cDialog::BG_DARK = 5, cDialog::BG_LIGHT = 16;
@@ -386,7 +386,7 @@ void cDialog::run(std::function<void(cDialog&)> onopen){
cDialog* formerTop = topWindow;
// TODO: The introduction of the static topWindow means I may be able to use this instead of parent->win; do I still need parent?
sf::RenderWindow* parentWin = &(parent ? parent->win : mainPtr);
cursor_type former_curs = current_cursor;
cursor_type former_curs = Cursor::current;
set_cursor(sword_curs);
using kb = sf::Keyboard;
kb::Key k;

View File

@@ -12,7 +12,7 @@
#include <string>
#include <functional>
#include "pictypes.hpp"
#include "soundtool.hpp" // for snd_num_t
#include "sounds.hpp" // for snd_num_t
#include "dialog.hpp"
/// The signature of a record handler for cStrDlog.

View File

@@ -14,12 +14,12 @@
#include <algorithm>
#include "dialog.hpp"
#include "graphtool.hpp"
#include "render_image.hpp"
#include <cmath>
#include <climits>
#include "restypes.hpp"
#include "res_image.hpp"
extern sf::Texture bg_gworld;

View File

@@ -18,7 +18,7 @@
#include <map>
#include <vector>
#include "control.hpp"
#include "graphtool.hpp" // for eFont
#include "render_text.hpp"
/// A button type.
enum eBtnType { // w x h

View File

@@ -9,12 +9,13 @@
#include "control.hpp"
#include <sstream>
#include "dialog.hpp"
#include "soundtool.hpp"
#include "sounds.hpp"
#include "button.hpp"
#include "graphtool.hpp"
#include "restypes.hpp"
#include "render_shapes.hpp"
#include "res_image.hpp"
#include "mathutil.hpp"
#include "prefs.hpp"
#include "cursors.hpp"
void cControl::setText(std::string l){
lbl = l;

View File

@@ -13,7 +13,7 @@
#include <boost/lexical_cast.hpp>
#include "dialog.hpp"
#include "strdlog.hpp"
#include "graphtool.hpp"
#include "render_shapes.hpp"
#include "winutil.hpp"
#include "cursors.hpp"

View File

@@ -14,7 +14,7 @@
#include <string>
#include "control.hpp"
#include "graphtool.hpp"
#include "render_text.hpp"
#include "undo.hpp"
/// The field's expected input type.

View File

@@ -7,7 +7,6 @@
*/
#include "message.hpp"
#include "graphtool.hpp"
#include "mathutil.hpp"
#include "dialog.hpp"

View File

@@ -16,7 +16,7 @@
#include <string>
#include "control.hpp"
#include "graphtool.hpp" // for eFont
#include "render_text.hpp"
/// A simple static text message.
/// This class can also create a frame for grouping controls or a clickable area.

View File

@@ -11,9 +11,14 @@
#include <map>
#include <stdexcept>
#include "graphtool.hpp"
#include "gfxsheets.hpp"
#include "render_shapes.hpp"
#include "render_image.hpp"
#include "render_text.hpp"
#include "tiling.hpp"
#include "location.hpp"
#include "dialog.hpp"
#include "restypes.hpp"
#include "res_image.hpp"
extern sf::Texture bg_gworld;
extern cCustomGraphics spec_scen_g;

View File

@@ -12,8 +12,6 @@
/// @file
/// Constants to specify the type of an icon
typedef signed short pic_num_t; ///< An icon's unique number
/// Specifies an icon type.
enum ePicType {
PIC_TER = 1, ///< 28x36 terrain graphic from the preset sheets

View File

@@ -7,9 +7,11 @@
//
#include "scrollbar.hpp"
#include "restypes.hpp"
#include "graphtool.hpp"
#include "res_image.hpp"
#include "render_image.hpp"
#include "render_shapes.hpp"
#include "mathutil.hpp"
#include "cursors.hpp"
std::string cScrollbar::scroll_textures[NUM_STYLES] = {
"dlogscrollwh",

View File

@@ -13,7 +13,6 @@
/// Scrollbar-related classes and types.
#include "control.hpp"
#include "graphtool.hpp"
/// Specifies the style of a scrollbar.
enum eScrollStyle {

View File

@@ -12,6 +12,7 @@
#include "button.hpp"
#include "pict.hpp"
#include "stack.hpp"
#include "render_shapes.hpp"
cScrollPane::cScrollPane(cDialog& parent) : cContainer(CTRL_PANE, parent), scroll(parent) {
recalcRect();

103
src/fields.hpp Normal file
View File

@@ -0,0 +1,103 @@
//
// fields.hpp
// BoE
//
// Created by Celtic Minstrel on 17-04-13.
//
//
#ifndef BoE_FIELDS_HPP
#define BoE_FIELDS_HPP
// This is a slight misnomer, as a couple of these are not true fields.
enum eFieldType {
SPECIAL_EXPLORED = 0,
WALL_FORCE = 1,
WALL_FIRE = 2,
FIELD_ANTIMAGIC = 3,
CLOUD_STINK = 4,
WALL_ICE = 5,
WALL_BLADES = 6,
CLOUD_SLEEP = 7,
// Begin fields saved in town setup
OBJECT_BLOCK = 8,
SPECIAL_SPOT = 9, // Space contains a white special spot
FIELD_WEB = 10,
OBJECT_CRATE = 11,
OBJECT_BARREL = 12,
BARRIER_FIRE = 13,
BARRIER_FORCE = 14,
FIELD_QUICKFIRE = 15,
// End fields saved in town setup
SFX_SMALL_BLOOD = 16,
SFX_MEDIUM_BLOOD = 17,
SFX_LARGE_BLOOD = 18,
SFX_SMALL_SLIME = 19,
SFX_LARGE_SLIME = 20,
SFX_ASH = 21,
SFX_BONES = 22,
SFX_RUBBLE = 23,
BARRIER_CAGE = 24,
SPECIAL_ROAD = 25,
// From here on are special values that don't index anything.
// Thus, they start at 32.
FIELD_DISPEL = 32, // Dispel field
FIELD_SMASH = 33, // Move Mountains
// Mustn't have anything >= 50
};
// Field types are used to index bit fields.
// In this case, their values should be taken as a bit index that is set.
inline unsigned long operator&(unsigned long a, eFieldType b) {
return a & (1 << b);
}
inline unsigned long operator&(eFieldType a, unsigned long b) {
return (1 << a) & b;
}
inline unsigned long operator&(eFieldType a, eFieldType b) {
return (1 << a) & (1 << b);
}
inline unsigned long& operator &=(unsigned long& a, eFieldType b) {
a = a & b;
return a;
}
inline unsigned long operator|(unsigned long a, eFieldType b) {
return a | (1 << b);
}
inline unsigned long operator|(eFieldType a, unsigned long b) {
return (1 << a) | b;
}
inline unsigned long operator|(eFieldType a, eFieldType b) {
return (1 << a) | (1 << b);
}
inline unsigned long& operator |=(unsigned long& a, eFieldType b) {
a = a | b;
return a;
}
inline unsigned long operator^(unsigned long a, eFieldType b) {
return a ^ (1 << b);
}
inline unsigned long operator^(eFieldType a, unsigned long b) {
return (1 << a) ^ b;
}
inline unsigned long operator^(eFieldType a, eFieldType b) {
return (1 << a) ^ (1 << b);
}
inline unsigned long& operator ^=(unsigned long& a, eFieldType b) {
a = a ^ b;
return a;
}
inline unsigned long operator>>(eFieldType a, unsigned long b) {
return (1 << a) >> b;
}
inline unsigned long operator<<(eFieldType a, unsigned long b) {
return (1 << a) << b;
}
inline unsigned long operator~(eFieldType f) {
return ~(1 << f);
}
std::ostream& operator << (std::ostream& out, eFieldType e);
std::istream& operator >> (std::istream& in, eFieldType& e);
#endif

View File

@@ -6,6 +6,7 @@
//
//
#include <algorithm>
#include <string>
#include <iostream>
#include <memory>
@@ -13,17 +14,37 @@
#include <boost/optional.hpp>
#include <boost/lexical_cast.hpp>
#include <boost/ptr_container/ptr_set.hpp>
#include "simpletypes.hpp"
#include "spell.hpp"
std::string oboeVersionString() {
#include "spell.hpp"
#include "item_abilities.hpp"
#include "item_variety.hpp"
#include "damage.hpp"
#include "race.hpp"
#include "location.hpp"
#include "fields.hpp"
#include "quest.hpp"
#include "shop.hpp"
#include "terrain_abilities.hpp"
#include "monster.hpp"
#include "party.hpp"
#include "town.hpp"
#include "talking.hpp"
#include "scenario.hpp"
const char* oboeVersionString() {
static std::shared_ptr<char> version;
if(version) return version.get();
unsigned short M, m, f;
M = OBOE_CURRENT_VERSION >> 16;
m = (OBOE_CURRENT_VERSION & 0xff00) >> 8;
f = OBOE_CURRENT_VERSION & 0xff;
std::ostringstream sout;
sout << M << '.' << m << '.' << f;
return sout.str();
std::string vers = sout.str();
version.reset(new char[vers.length()], std::default_delete<char[]>());
std::copy(vers.begin(), vers.end(), version.get());
return version.get();
}
// A simple lookup map based on the concept of a trie

View File

@@ -9,23 +9,21 @@
#include "fileio.hpp"
#include <fstream>
#include <stdexcept>
#include <boost/filesystem/operations.hpp>
#include "restypes.hpp"
#include "cursors.hpp"
#include "res_image.hpp"
#include "res_cursor.hpp"
#include "res_font.hpp"
#include "res_strings.hpp"
#include "res_sound.hpp"
bool mac_is_intel;
fs::path progDir, tempDir, scenDir;
// Cursors included here so that they needn't be unnecessarily duplicated in platform-specific files
cursor_type current_cursor = sword_curs;
cursor_type arrow_curs[3][3] = {
{NW_curs, N_curs, NE_curs},
{W_curs, wait_curs, E_curs},
{SW_curs, S_curs, SE_curs},
};
// This is here to avoid unnecessarily duplicating it in platform-specific files.
cursor_type Cursor::current = sword_curs;
#include <stdexcept>
std::filebuf logfile;
void init_directories(const char* exec_path) {

View File

@@ -18,8 +18,6 @@
class cScenario;
class cUniverse;
namespace fs = boost::filesystem; // TODO: Centralize this alias!
fs::path locate_scenario(std::string scen_name);
bool load_scenario(fs::path file_to_load, cScenario& scenario, bool only_header = false);

View File

@@ -15,7 +15,7 @@
#include "gzstream.h"
#include "universe.hpp"
#include "graphtool.hpp"
#include "gfxsheets.hpp"
#include "porting.hpp"
#include "tarball.hpp"

View File

@@ -18,17 +18,18 @@
#include "town.hpp"
#include "map_parse.hpp"
#include "special_parse.hpp"
#include "graphtool.hpp"
#include "gfxsheets.hpp"
#include "mathutil.hpp"
#include "gzstream.h"
#include "tarball.hpp"
#include "porting.hpp"
#include "restypes.hpp"
#include "res_image.hpp"
#include "res_sound.hpp"
// Because the full template definition needs to be visible in this file
// Also, for some reason, it's not found in the include paths, so use a relative path
#include "../classes/town_import.tpp"
#include "../scenario/town_import.tpp"
bool cur_scen_is_mac = true;
extern cCustomGraphics spec_scen_g;

View File

@@ -6,40 +6,21 @@
*
*/
#ifndef BOE_RESTYPES_H
#define BOE_RESTYPES_H
#ifndef BOE_RES_CURSOR_HPP
#define BOE_RES_CURSOR_HPP
#include <SFML/Graphics.hpp>
#include <SFML/Audio.hpp>
#include "resmgr.hpp"
#include <vector>
#include <string>
#include <fstream>
#include <iostream>
#include <map>
#include <boost/filesystem/path.hpp>
#include <SFML/Graphics.hpp>
#include "resmgr.hpp"
#include "cursors.hpp"
#include "location.hpp"
using ImageRsrc = sf::Texture;
using CursorRsrc = Cursor;
using FontRsrc = sf::Font;
using StringRsrc = std::vector<std::string>;
using SoundRsrc = sf::SoundBuffer;
// Redeclare this instead of including "fileio.h"
extern std::ostream& std_fmterr(std::ostream& out);
namespace ResMgr {
/// Load an image from a PNG file.
template<> inline ImageRsrc* resLoader<ImageRsrc>::operator() (fs::path fpath) {
ImageRsrc* img = new ImageRsrc();
if(img->loadFromFile(fpath.string())) return img;
delete img;
throw xResMgrErr("Failed to load PNG image: " + fpath.string());
}
/// Load a cursor from a GIF file.
/// The cursor's hotspot location is stored in a GIF comment, with the following syntax (case-sensitive):
/// "Hotspot(x,y)"
@@ -86,40 +67,6 @@ namespace ResMgr {
CursorRsrc* cur = new Cursor(fpath.string(),x,y);
return cur;
}
/// Load a font from a TTF file.
template<> inline FontRsrc* resLoader<FontRsrc>::operator() (fs::path fpath) {
FontRsrc* theFont = new FontRsrc;
if(theFont->loadFromFile(fpath.string())) return theFont;
delete theFont;
throw xResMgrErr("Failed to find font: " + fpath.string());
}
/// Load a list of strings from a TXT file.
/// Each line in the file becomes one string in the resulting list.
/// (Empty lines are included too.)
template<> inline StringRsrc* resLoader<StringRsrc>::operator() (fs::path fpath) {
std::ifstream fin(fpath.string().c_str());
if(fin.fail()) {
std::cerr << std_fmterr << ": Error opening file";
throw xResMgrErr("Failed to load string list: " + fpath.string());
}
std::string next;
StringRsrc* strlist = new StringRsrc;
while(!fin.eof()) {
getline(fin,next);
strlist->push_back(next);
}
return strlist;
}
/// Load a sound from a WAV file.
template<> inline SoundRsrc* resLoader<SoundRsrc>::operator() (fs::path fpath) {
SoundRsrc* snd = new SoundRsrc;
if(snd->loadFromFile(fpath.string())) return snd;
delete snd;
throw xResMgrErr("Failed to load WAV sound: " + fpath.string());
}
}
#endif

View File

@@ -0,0 +1,31 @@
/*
* restypes.h
* BoE
*
* Created by Celtic Minstrel on 10-08-25.
*
*/
#ifndef BOE_RES_FONT_HPP
#define BOE_RES_FONT_HPP
#include "resmgr.hpp"
#include <boost/filesystem/path.hpp>
#include <SFML/Graphics.hpp>
using FontRsrc = sf::Font;
// Redeclare this instead of including "fileio.h"
extern std::ostream& std_fmterr(std::ostream& out);
namespace ResMgr {
/// Load a font from a TTF file.
template<> inline FontRsrc* resLoader<FontRsrc>::operator() (fs::path fpath) {
FontRsrc* theFont = new FontRsrc;
if(theFont->loadFromFile(fpath.string())) return theFont;
delete theFont;
throw xResMgrErr("Failed to find font: " + fpath.string());
}
}
#endif

View File

@@ -0,0 +1,31 @@
/*
* restypes.h
* BoE
*
* Created by Celtic Minstrel on 10-08-25.
*
*/
#ifndef BOE_RES_IMAGE_HPP
#define BOE_RES_IMAGE_HPP
#include <boost/filesystem/path.hpp>
#include <SFML/Graphics.hpp>
#include "resmgr.hpp"
using ImageRsrc = sf::Texture;
// Redeclare this instead of including "fileio.h"
extern std::ostream& std_fmterr(std::ostream& out);
namespace ResMgr {
/// Load an image from a PNG file.
template<> inline ImageRsrc* resLoader<ImageRsrc>::operator() (fs::path fpath) {
ImageRsrc* img = new ImageRsrc();
if(img->loadFromFile(fpath.string())) return img;
delete img;
throw xResMgrErr("Failed to load PNG image: " + fpath.string());
}
}
#endif

View File

@@ -0,0 +1,31 @@
/*
* restypes.h
* BoE
*
* Created by Celtic Minstrel on 10-08-25.
*
*/
#ifndef BOE_RES_SOUND_HPP
#define BOE_RES_SOUND_HPP
#include <boost/filesystem/path.hpp>
#include <SFML/Audio.hpp>
#include "resmgr.hpp"
using SoundRsrc = sf::SoundBuffer;
// Redeclare this instead of including "fileio.h"
extern std::ostream& std_fmterr(std::ostream& out);
namespace ResMgr {
/// Load a sound from a WAV file.
template<> inline SoundRsrc* resLoader<SoundRsrc>::operator() (fs::path fpath) {
SoundRsrc* snd = new SoundRsrc;
if(snd->loadFromFile(fpath.string())) return snd;
delete snd;
throw xResMgrErr("Failed to load WAV sound: " + fpath.string());
}
}
#endif

View File

@@ -0,0 +1,41 @@
/*
* restypes.h
* BoE
*
* Created by Celtic Minstrel on 10-08-25.
*
*/
#ifndef BOE_RES_STRINGS_HPP
#define BOE_RES_STRINGS_HPP
#include <fstream>
#include <boost/filesystem/path.hpp>
#include "resmgr.hpp"
using StringRsrc = std::vector<std::string>;
// Redeclare this instead of including "fileio.h"
extern std::ostream& std_fmterr(std::ostream& out);
namespace ResMgr {
/// Load a list of strings from a TXT file.
/// Each line in the file becomes one string in the resulting list.
/// (Empty lines are included too.)
template<> inline StringRsrc* resLoader<StringRsrc>::operator() (fs::path fpath) {
std::ifstream fin(fpath.c_str());
if(fin.fail()) {
std::cerr << std_fmterr << ": Error opening file";
throw xResMgrErr("Failed to load string list: " + fpath.string());
}
std::string next;
StringRsrc* strlist = new StringRsrc;
while(!fin.eof()) {
getline(fin,next);
strlist->push_back(next);
}
return strlist;
}
}
#endif

View File

@@ -36,7 +36,6 @@ namespace std {
/// for the desired resource type. The operator() receives the
/// full file path with the extension already applied.
namespace ResMgr {
namespace fs = boost::filesystem;
/// The signature of an ID map function.
using idMapFn = std::function<std::string(int)>;

View File

@@ -6,7 +6,11 @@
//
//
#include "restypes.hpp"
#include "res_image.hpp"
#include "res_cursor.hpp"
#include "res_font.hpp"
#include "res_strings.hpp"
#include "res_sound.hpp"
namespace ResMgr {
template<> const std::string resLoader<ImageRsrc>::file_ext = "png";

View File

@@ -121,7 +121,7 @@ static void init_specials_parse() {
using underlying = unsigned short;
for(underlying i = 1; i < std::numeric_limits<underlying>::max(); i++) {
eSpecType check = (eSpecType) i;
eSpecCat category = getNodeCategory(check);
eSpecCat category = (*check).cat;
if(category == eSpecCat::INVALID) continue;
if((*check).opcode().empty())
warn_missing_opcode(i);

View File

@@ -20,7 +20,7 @@
#include "boe.newgraph.hpp"
#include "boe.combat.hpp"
#include "boe.items.hpp"
#include "soundtool.hpp"
#include "sounds.hpp"
#include "boe.infodlg.hpp"
#include "boe.main.hpp"
#include "mathutil.hpp"
@@ -34,6 +34,7 @@
#include "spell.hpp"
#include "shop.hpp"
#include "prefs.hpp"
#include "render_shapes.hpp"
rectangle bottom_buttons[14];
rectangle world_screen = {23, 23, 346, 274};
@@ -1072,7 +1073,7 @@ bool handle_action(sf::Event event) {
if(overall_mode == MODE_OUTDOORS) {
give_help(62,0);
display_map();
make_cursor_sword();
set_cursor(sword_curs);
} else if(overall_mode == MODE_TOWN || overall_mode == MODE_COMBAT)
handle_get_items(did_something, need_redraw, need_reprint);
break;
@@ -1106,7 +1107,7 @@ bool handle_action(sf::Event event) {
else if(overall_mode == MODE_TOWN) {
give_help(62,0);
display_map();
make_cursor_sword();
set_cursor(sword_curs);
} else handle_missile(need_redraw, need_reprint);
break;
@@ -2346,7 +2347,7 @@ void increase_age() {
if(univ.party.status[ePartyStatus::FLIGHT] == 2)
add_string_to_buf("You are starting to descend.");
if(univ.party.status[ePartyStatus::FLIGHT] == 1) {
if(blocksMove(univ.scenario.ter_types[univ.out[univ.party.out_loc.x][univ.party.out_loc.y]].blockage)) {
if(univ.scenario.ter_types[univ.out[univ.party.out_loc.x][univ.party.out_loc.y]].blocksMove()) {
add_string_to_buf(" You plummet to your deaths.");
slay_party(eMainStatus::DEAD);
print_buf();

View File

@@ -4,7 +4,6 @@
#include <SFML/Window/Event.hpp>
#include "location.hpp"
#include "simpletypes.hpp"
void init_screen_locs();
bool prime_time();

View File

@@ -13,7 +13,7 @@
#include "boe.items.hpp"
#include "boe.party.hpp"
#include "boe.combat.hpp"
#include "soundtool.hpp"
#include "sounds.hpp"
#include "boe.town.hpp"
#include "boe.specials.hpp"
#include "boe.graphutil.hpp"
@@ -23,6 +23,7 @@
#include "boe.menus.hpp"
#include "spell.hpp"
#include "prefs.hpp"
#include "utility.hpp"
extern eGameMode overall_mode;
extern short which_combat_type;

View File

@@ -16,24 +16,24 @@
#include "boe.townspec.hpp"
#include "boe.main.hpp"
#include "boe.items.hpp"
#include "soundtool.hpp"
#include "sounds.hpp"
#include <cstdio>
#include "boe.newgraph.hpp"
#include "boe.infodlg.hpp"
#include "graphtool.hpp"
#include "utility.hpp"
#include "mathutil.hpp"
#include "strdlog.hpp"
#include "choicedlog.hpp"
#include "winutil.hpp"
#include "fileio.hpp"
#include "restypes.hpp"
#include "res_strings.hpp"
#include "scrollbar.hpp"
#include "button.hpp"
#include "pict.hpp"
#include <boost/lexical_cast.hpp>
#include "prefs.hpp"
#include "shop.hpp"
#include "restypes.hpp"
#include "cursors.hpp"
extern short stat_window;
extern eGameMode overall_mode;
@@ -638,9 +638,7 @@ static void show_job_bank(int which_bank, std::string title) {
int which = hit[4] - '1';
me["prompt"].setText("Job accepted.");
job_bank_t& bank = univ.party.job_banks[which_bank];
univ.party.quest_status[bank.jobs[which]] = eQuestStatus::STARTED;
univ.party.quest_source[bank.jobs[which]] = store_personality;
univ.party.quest_start[bank.jobs[which]] = univ.party.calc_day();
univ.party.active_quests[bank.jobs[which]] = cJob(univ.party.calc_day(), store_personality);
// Now, if there are spare jobs available, fill in. Otherwise, clear space.
if(bank.jobs[4] >= 0)
std::swap(bank.jobs[which], bank.jobs[4]);
@@ -977,11 +975,9 @@ void handle_talk_event(location p) {
showError("Tried to give a nonexistent quest!");
return;
}
switch(univ.party.quest_status[a]) {
switch(univ.party.active_quests[a].status) {
case eQuestStatus::AVAILABLE:
univ.party.quest_status[a] = eQuestStatus::STARTED;
univ.party.quest_source[a] = -1;
univ.party.quest_start[a] = univ.party.calc_day();
univ.party.active_quests[a] = cJob(univ.party.calc_day());
break;
case eQuestStatus::STARTED:
break;
@@ -1065,7 +1061,7 @@ void handle_talk_event(location p) {
void do_sign(short town_num, short which_sign, short sign_type) {
std::string sign_text;
make_cursor_sword();
set_cursor(sword_curs);
cChoiceDlog sign("view-sign");
cPict& pict = dynamic_cast<cPict&>(sign->getControl("ter"));
@@ -1153,7 +1149,7 @@ static bool prefs_event_filter (cDialog& me, std::string id, eKeyMod) {
}
void pick_preferences() {
make_cursor_sword();
set_cursor(sword_curs);
cDialog prefsDlog("preferences");
prefsDlog.attachClickHandlers(&prefs_event_filter, {"okay", "cancel"});
@@ -1288,7 +1284,7 @@ static bool edit_party_event_filter(cDialog& me, std::string item_hit, eKeyMod)
}
void edit_party() {
make_cursor_sword();
set_cursor(sword_curs);
cDialog pcDialog("edit-party");
std::vector<std::string> buttons = {"done", "help"};
@@ -1334,7 +1330,7 @@ void tip_of_day() {
short page = get_ran(1,0,ResMgr::get<StringRsrc>("tips")->size() - 51);
make_cursor_sword();
set_cursor(sword_curs);
cDialog tips("tip-of-day");
tips.attachClickHandlers(std::bind(tip_of_day_event_filter, _1, _2, std::ref(page)),{"done","next"});
@@ -1416,7 +1412,7 @@ short pick_a_scen() {
err.show();
return -1;
}
make_cursor_sword();
set_cursor(sword_curs);
cDialog pickScen("pick-scenario");
short page = 0;
@@ -1435,7 +1431,7 @@ short pick_a_scen() {
short pick_prefab_scen() {
make_cursor_sword();
set_cursor(sword_curs);
cChoiceDlog pickScenario("pick-prefab-scen", {"cancel", "scen1", "scen2", "scen3"});

View File

@@ -3,7 +3,6 @@
#include <string>
#include "dialog.hpp"
#include "simpletypes.hpp"
#include "shop.hpp"
void start_shop_mode(short which,short cost_adj,std::string store_name);

View File

@@ -14,13 +14,12 @@
#include "boe.dlgutil.hpp"
#include "boe.infodlg.hpp"
#include "boe.graphutil.hpp"
#include "graphtool.hpp"
#include "soundtool.hpp"
#include "sounds.hpp"
#include "mathutil.hpp"
#include "strdlog.hpp"
#include "fileio.hpp"
#include "cursors.hpp"
#include <boost/filesystem.hpp>
#include "restypes.hpp"
#define DONE_BUTTON_ITEM 1
@@ -129,7 +128,7 @@ void finish_load_party(){
}
void shift_universe_left() {
make_cursor_watch();
set_cursor(watch_curs);
save_outdoor_maps();
univ.party.outdoor_corner.x--;
@@ -157,7 +156,7 @@ void shift_universe_left() {
}
void shift_universe_right() {
make_cursor_watch();
set_cursor(watch_curs);
save_outdoor_maps();
univ.party.outdoor_corner.x++;
univ.party.i_w_c.x--;
@@ -182,7 +181,7 @@ void shift_universe_right() {
}
void shift_universe_up() {
make_cursor_watch();
set_cursor(watch_curs);
save_outdoor_maps();
univ.party.outdoor_corner.y--;
univ.party.i_w_c.y++;
@@ -208,7 +207,7 @@ void shift_universe_up() {
}
void shift_universe_down() {
make_cursor_watch();
set_cursor(watch_curs);
save_outdoor_maps();
univ.party.outdoor_corner.y++;
@@ -348,7 +347,7 @@ void build_scen_headers() {
std::cout << progDir << '\n' << scenDir << std::endl;
scen_headers.clear();
fs::recursive_directory_iterator iter(scenDir);
make_cursor_watch();
set_cursor(watch_curs);
while(iter != fs::recursive_directory_iterator()) {
fs::file_status stat = iter->status();

View File

@@ -4,9 +4,6 @@
#include <boost/filesystem/path.hpp>
#include "location.hpp"
#include "simpletypes.hpp"
namespace fs = boost::filesystem; // TODO: Centralize this alias!
void finish_load_party();
void change_rect_terrain(rectangle r,ter_num_t terrain_type,short probability,bool hollow);
@@ -30,6 +27,6 @@ void build_scen_headers();
bool load_scenario_header(fs::path filename/*,short header_entry*/);
fs::path locate_scenario(std::string scen_name);
void alter_rect(rectangle *r);
void alter_rect(rectangle *r);
#endif

View File

@@ -12,8 +12,10 @@
#include "boe.monster.hpp"
#include "boe.locutils.hpp"
#include "boe.text.hpp"
#include "graphtool.hpp"
#include "soundtool.hpp"
#include "render_image.hpp"
#include "render_shapes.hpp"
#include "tiling.hpp"
#include "sounds.hpp"
#include "mathutil.hpp"
#include "button.hpp"
@@ -25,7 +27,7 @@
#include "scrollbar.hpp"
#include "restypes.hpp"
#include "res_image.hpp"
#include "boe.menus.hpp"
#include "winutil.hpp"
#include "prefs.hpp"
@@ -947,7 +949,7 @@ void draw_terrain(short mode) {
static ter_num_t get_ground_for_shore(ter_num_t ter){
if(univ.scenario.ter_types[ter].block_horse) return current_ground;
else if(blocksMove(univ.scenario.ter_types[ter].blockage)) return current_ground;
else if(univ.scenario.ter_types[ter].blocksMove()) return current_ground;
else return ter;
}

Some files were not shown because too many files have changed in this diff Show More