Maelstrom: Added StoreKit code for in-app purchases

https://github.com/libsdl-org/Maelstrom/commit/ada37a0ab69dfebe2a560546501928e80c311913

From ada37a0ab69dfebe2a560546501928e80c311913 Mon Sep 17 00:00:00 2001
From: Sam Lantinga <[EMAIL REDACTED]>
Date: Mon, 3 Dec 2012 21:51:07 -0800
Subject: [PATCH] Added StoreKit code for in-app purchases

---
 Data/UI_Classic/feature.xml                   |  31 ++--
 Data/UI_Classic/message.xml                   |  21 +++
 Maelstrom_Data.zip                            | Bin 14925470 -> 14925988 bytes
 Xcode-iOS/Maelstrom.xcodeproj/project.pbxproj |  50 ++++--
 game/Localization.h                           |   6 +
 game/MaelstromFeatures.cpp                    | 107 ------------
 game/MaelstromFeatures.h                      |  31 ----
 game/MaelstromUI.cpp                          | 140 +++++++++++++++
 game/MaelstromUI.h                            |  11 ++
 game/Maelstrom_Globals.h                      |   5 +
 game/Makefile.am                              |   7 +-
 game/Makefile.in                              |  16 +-
 game/ServiceManager.cpp                       |  48 ++++++
 game/ServiceManager.h                         |  49 ++++++
 game/controls.cpp                             |   4 +-
 game/init.cpp                                 |  12 +-
 game/main.cpp                                 |  34 +++-
 game/main.h                                   |   2 +
 game/store.cpp                                | 161 ++++++++++++++++++
 game/store.h                                  |  67 ++++++++
 20 files changed, 614 insertions(+), 188 deletions(-)
 create mode 100644 Data/UI_Classic/message.xml
 create mode 100644 game/Localization.h
 delete mode 100644 game/MaelstromFeatures.cpp
 delete mode 100644 game/MaelstromFeatures.h
 create mode 100644 game/ServiceManager.cpp
 create mode 100644 game/ServiceManager.h
 create mode 100644 game/store.cpp
 create mode 100644 game/store.h

diff --git a/Data/UI_Classic/feature.xml b/Data/UI_Classic/feature.xml
index 2abe2b86..43697fcd 100644
--- a/Data/UI_Classic/feature.xml
+++ b/Data/UI_Classic/feature.xml
@@ -1,18 +1,27 @@
 <Dialog>
-	<Size w="273" h="103"/>
-	<Anchor anchorFrom="TOPLEFT" anchorTo="CENTER" x="-137" y="-147"/>
+	<Size w="408" h="168"/>
 	<Elements>
-		<Icon name="icon" id="103">
-			<Anchor anchorFrom="TOPLEFT" anchorTo="TOPLEFT" x="19" y="19"/>
-		</Icon>
-		<DialogLabel name="line1" text="You don't have that feature">
-			<Anchor anchorFrom="TOPLEFT" anchorTo="TOPRIGHT" anchor="icon" x="25"/>
+		<DialogLabel name="message" template="DialogLabel" text="Would you like to purchase this feature?">
+			<Size w="392"/>
+			<Anchor anchorFrom="TOPLEFT" anchorTo="TOPLEFT" x="8" y="8"/>
 		</DialogLabel>
-		<DialogButton name="cancelButton" text="Cancel">
-			<Anchor anchorFrom="TOPLEFT" anchorTo="TOPLEFT" x="99" y="74"/>
+		<DialogLabel name="title" template="DialogLabel">
+			<Anchor anchorFrom="TOPLEFT" anchorTo="BOTTOMLEFT" anchor="message" x="0" y="8"/>
+		</DialogLabel>
+		<DialogLabel name="description" template="DialogLabel">
+			<Size w="392"/>
+			<TextArea><Anchor anchorFrom="TOPLEFT" anchorTo="TOPLEFT"/></TextArea>
+			<Anchor anchorFrom="TOPLEFT" anchorTo="BOTTOMLEFT" anchor="title" x="0" y="8"/>
+		</DialogLabel>
+		<DialogLabel name="price" template="DialogLabel">
+			<Anchor anchorFrom="LEFT" anchorTo="RIGHT" anchor="title" x="8" y="0"/>
+		</DialogLabel>
+
+		<DialogButton name="button1" template="DialogButton" text="Buy it!" id="1" default="true">
+			<Anchor anchorFrom="BOTTOMRIGHT" anchorTo="BOTTOMRIGHT" x="-10" y="-11"/>
 		</DialogButton>
-		<DialogButton text="Buy it!" id="1" default="true">
-			<Anchor anchorFrom="TOPLEFT" anchorTo="TOPRIGHT" anchor="cancelButton" x="13"/>
+		<DialogButton template="DialogButton" text="Cancel">
+			<Anchor anchorFrom="RIGHT" anchorTo="LEFT" anchor="button1" x="-14"/>
 		</DialogButton>
 	</Elements>
 </Dialog>
diff --git a/Data/UI_Classic/message.xml b/Data/UI_Classic/message.xml
new file mode 100644
index 00000000..01eff3fe
--- /dev/null
+++ b/Data/UI_Classic/message.xml
@@ -0,0 +1,21 @@
+<Dialog>
+	<Size w="273" h="103"/>
+	<Anchor anchorFrom="TOPLEFT" anchorTo="CENTER" x="-137" y="-147"/>
+	<Elements>
+		<DialogLabel name="message" template="DialogLabel">
+			<Size w="267"/>
+			<TextArea><Anchor anchorFrom="TOPLEFT" anchorTo="TOPLEFT"/></TextArea>
+			<Anchor anchorFrom="TOPLEFT" anchorTo="TOPLEFT" x="8" y="8"/>
+		</DialogLabel>
+
+		<DialogButton name="button1" template="DialogButton" default="true">
+			<Anchor anchorFrom="BOTTOMRIGHT" anchorTo="BOTTOMRIGHT" x="-10" y="-11"/>
+		</DialogButton>
+		<DialogButton name="button2" template="DialogButton">
+			<Anchor anchorFrom="RIGHT" anchorTo="LEFT" anchor="button1" x="-10"/>
+		</DialogButton>
+		<DialogButton name="button3" template="DialogButton">
+			<Anchor anchorFrom="RIGHT" anchorTo="LEFT" anchor="button2" x="-10"/>
+		</DialogButton>
+	</Elements>
+</Dialog>
diff --git a/Maelstrom_Data.zip b/Maelstrom_Data.zip
index a62218ebe5dcc19a7be3dc1e7caa431af607c180..c3a029d41367e8acad84e796735e158c21b91cc2 100644
GIT binary patch
delta 42445
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

delta 42373
zcmZ`?bzD@<*Z&c^fQtA40(N1G7}y=yiiM(LU@MB9NGKK-2yzWlK|~ag8cMpmw-?3E
z$8I0r**SN2XSu$A+>bN!{hpXJ=g!QXdly69FYp3?pXYg5YPs)X?hO%ZXk|VL@M)u2
zqa|`?;+|>xHYWua-5GlF!m(n*lf{M_sMt_5W~#ga9kJ64O^}zE9<8;`l0sZ-Ert~4
z7-*#sl3p9F1w2w(WvUg|ij<6dY8e`kQ

(Patch may be truncated, please check the link at the top of this post.)