diff --git a/osx/Blades of Exile-Info.plist b/osx/Blades of Exile-Info.plist
index 71fb089a..c05a4177 100644
--- a/osx/Blades of Exile-Info.plist
+++ b/osx/Blades of Exile-Info.plist
@@ -17,6 +17,10 @@
CFBundleTypeRole
None
+ LSItemContentTypes
+
+ com.spidweb.bladesofexile.oldsounds
+
LSTypeIsPackage
NSPersistentStoreTypeKey
@@ -37,6 +41,10 @@
CFBundleTypeRole
None
+ LSItemContentTypes
+
+ com.spidweb.bladesofexile.oldgraphics
+
LSTypeIsPackage
NSPersistentStoreTypeKey
@@ -50,13 +58,17 @@
CFBundleTypeIconFile
boesave
CFBundleTypeName
- SavedGame
+ Saved Game
CFBundleTypeOSTypes
beSV
CFBundleTypeRole
Editor
+ LSItemContentTypes
+
+ com.spidweb.bladesofexile.savegame
+
LSTypeIsPackage
NSPersistentStoreTypeKey
@@ -77,11 +89,75 @@
CFBundleTypeRole
Viewer
+ LSItemContentTypes
+
+ com.spidweb.bladesofexile.scenario
+
LSTypeIsPackage
NSPersistentStoreTypeKey
Binary
+
+ CFBundleTypeExtensions
+
+ .exd
+
+ CFBundleTypeIconFile
+ boegraphics
+ CFBundleTypeName
+ Preset Graphics
+ CFBundleTypeRole
+ None
+ LSItemContentTypes
+
+ com.spidweb.bladesofexile.newgraphics
+
+ LSTypeIsPackage
+
+ NSPersistentStoreTypeKey
+ Binary
+
+
+ CFBundleTypeExtensions
+
+ .exr
+
+ CFBundleTypeIconFile
+ boeresources
+ CFBundleTypeName
+ Resource File
+ CFBundleTypeRole
+ None
+ LSItemContentTypes
+
+ com.spidweb.bladesofexile.resources
+
+ LSTypeIsPackage
+
+ NSPersistentStoreTypeKey
+ Binary
+
+
+ CFBundleTypeExtensions
+
+ .exa
+
+ CFBundleTypeIconFile
+ boesounds
+ CFBundleTypeName
+ Preset Sounds
+ CFBundleTypeRole
+ None
+ LSItemContentTypes
+
+ com.spidweb.bladesofexile.newsounds
+
+ LSTypeIsPackage
+
+ NSPersistentStoreTypeKey
+ Binary
+
CFBundleExecutable
${EXECUTABLE_NAME}
diff --git a/osx/BoE.xcodeproj/project.pbxproj b/osx/BoE.xcodeproj/project.pbxproj
index 461f4d03..16278be5 100644
--- a/osx/BoE.xcodeproj/project.pbxproj
+++ b/osx/BoE.xcodeproj/project.pbxproj
@@ -92,6 +92,7 @@
913D05BC0FA1EA0A00184C18 /* pc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 913D05BB0FA1EA0A00184C18 /* pc.cpp */; };
913D05BD0FA1EA0A00184C18 /* pc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 913D05BB0FA1EA0A00184C18 /* pc.cpp */; };
913D05BE0FA1EA0A00184C18 /* pc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 913D05BB0FA1EA0A00184C18 /* pc.cpp */; };
+ 913D6C050FC57A8E00E12527 /* boeresources.icns in Resources */ = {isa = PBXBuildFile; fileRef = 913D6C040FC57A8E00E12527 /* boeresources.icns */; };
91A79DC70FA797BF00A6A41F /* menu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 91A79DC60FA797BF00A6A41F /* menu.xib */; };
91AC60800FA26A3B00EEAE67 /* regtown.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 91AC607F0FA26A3B00EEAE67 /* regtown.cpp */; };
91AC60810FA26A3B00EEAE67 /* regtown.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 91AC607F0FA26A3B00EEAE67 /* regtown.cpp */; };
@@ -342,6 +343,7 @@
913D05B50FA1E9E300184C18 /* party.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = party.cpp; path = classes/party.cpp; sourceTree = ""; };
913D05BA0FA1EA0A00184C18 /* pc.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = pc.h; path = classes/pc.h; sourceTree = ""; };
913D05BB0FA1EA0A00184C18 /* pc.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = pc.cpp; path = classes/pc.cpp; sourceTree = ""; };
+ 913D6C040FC57A8E00E12527 /* boeresources.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; path = boeresources.icns; sourceTree = ""; };
91A79DC60FA797BF00A6A41F /* menu.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = menu.xib; sourceTree = ""; };
91A79DDD0FA79DEE00A6A41F /* dialogs.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = dialogs.xib; sourceTree = ""; };
91AC607E0FA26A3B00EEAE67 /* regtown.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = regtown.h; path = classes/regtown.h; sourceTree = ""; };
@@ -842,6 +844,7 @@
children = (
91279BB30F9D03B6007B0D52 /* boesave.icns */,
91279BB40F9D03B7007B0D52 /* boesounds.icns */,
+ 913D6C040FC57A8E00E12527 /* boeresources.icns */,
91279BB50F9D03B7007B0D52 /* boegraphics.icns */,
91D62F330F8EB84800674AB3 /* bladesofexile.rsrc */,
2B8F435C0C0973680012E4A8 /* BoE.icns */,
@@ -976,6 +979,7 @@
91279BB70F9D03B7007B0D52 /* boesounds.icns in Resources */,
91279BB80F9D03B7007B0D52 /* boegraphics.icns in Resources */,
91A79DC70FA797BF00A6A41F /* menu.xib in Resources */,
+ 913D6C050FC57A8E00E12527 /* boeresources.icns in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
diff --git a/osx/boe.graphics.cpp b/osx/boe.graphics.cpp
index 20605ca6..80f20c30 100644
--- a/osx/boe.graphics.cpp
+++ b/osx/boe.graphics.cpp
@@ -2142,35 +2142,35 @@ void place_trim(short q,short r,location where,unsigned short ter_type)
if (trim != 0) {
unsigned short shore;
if (trim & 2){ // upper right
- shore = coord_to_ter(where.x, where.y);
+ shore = coord_to_ter(where.x + 1, where.y - 1);
shore = get_ground_for_shore(shore);
draw_trim(q,r,5,shore);
}if (trim & 8){ // lower right
- shore = coord_to_ter(where.x, where.y);
+ shore = coord_to_ter(where.x + 1, where.y + 1);
shore = get_ground_for_shore(shore);
draw_trim(q,r,7,shore);
}if (trim & 32){ // lower left
- shore = coord_to_ter(where.x, where.y);
+ shore = coord_to_ter(where.x - 1, where.y + 1);
shore = get_ground_for_shore(shore);
draw_trim(q,r,6,shore);
}if (trim & 128){ // upper left
- shore = coord_to_ter(where.x, where.y);
+ shore = coord_to_ter(where.x - 1, where.y - 1);
shore = get_ground_for_shore(shore);
draw_trim(q,r,4,shore);
}if (trim & 1){ // top
- shore = coord_to_ter(where.x, where.y);
+ shore = coord_to_ter(where.x, where.y - 1);
shore = get_ground_for_shore(shore);
draw_trim(q,r,2,shore);
}if (trim & 4){ // right
- shore = coord_to_ter(where.x, where.y);
+ shore = coord_to_ter(where.x + 1, where.y);
shore = get_ground_for_shore(shore);
draw_trim(q,r,1,shore);
}if (trim & 16){ // bottom
- shore = coord_to_ter(where.x, where.y);
+ shore = coord_to_ter(where.x, where.y + 1);
shore = get_ground_for_shore(shore);
draw_trim(q,r,3,shore);
}if (trim & 64){ // left
- shore = coord_to_ter(where.x, where.y);
+ shore = coord_to_ter(where.x - 1, where.y);
shore = get_ground_for_shore(shore);
draw_trim(q,r,0,shore);
}
@@ -2324,10 +2324,12 @@ void draw_trim(short q,short r,short which_trim,unsigned short ground_ter)
LockPixels(to_bits);
LockPixels(mask_bits);
LockPixels(from_bits);
- CopyMask ((BitMap*) *from_bits,
- (BitMap*) *mask_bits,
- (BitMap*) *to_bits,
- &from_rect, &mask_rect, &to_rect);
+ CopyDeepMask ((BitMap*) *from_bits,
+ (BitMap*) *mask_bits,
+ (BitMap*) *to_bits,
+ &from_rect, &mask_rect, &to_rect,
+ transparent, NULL
+ );
UnlockPixels(from_bits);
UnlockPixels(mask_bits);
UnlockPixels(to_bits);
diff --git a/osx/boe.graphutil.cpp b/osx/boe.graphutil.cpp
index 5988db73..6e7092e2 100644
--- a/osx/boe.graphutil.cpp
+++ b/osx/boe.graphutil.cpp
@@ -815,7 +815,7 @@ Rect get_item_template_rect (short type_wanted)////
return store_rect;
}
-// Is this is subterranean fluid that gets shore plopped down on it?
+// Is this a fluid that gets shore plopped down on it?
bool is_fluid(unsigned short ter_type)////
{
// if (((ter_type >= 71) && (ter_type <= 76)) || (ter_type == 90))
@@ -824,12 +824,12 @@ bool is_fluid(unsigned short ter_type)////
return scenario.ter_types[ter_type].trim_type == TRIM_FRILLS;
}
-// Is this is subterranean beach that gets shore plopped down next to it?
+// Is this a beach that gets shore plopped down next to it?
bool is_shore(unsigned short ter_type)////
{
if (is_fluid(ter_type) == true)
return false;
- if(scenario.ter_types[ter_type].trim_type = TRIM_WATERFALL)
+ if(scenario.ter_types[ter_type].trim_type == TRIM_WATERFALL)
return false;
// if (ter_type == 77)
// return false;