diff options
-rw-r--r-- | res/scripts/common.lua | 35 | ||||
-rw-r--r-- | res/scripts/map2.lua | 4 | ||||
-rw-r--r-- | res/sprites/boney_anim.txt | 8 | ||||
-rw-r--r-- | res/sprites/claus_anim.txt | 8 | ||||
-rw-r--r-- | res/sprites/duster_anim.txt | 8 | ||||
-rw-r--r-- | res/sprites/kuma_anim.txt | 8 | ||||
-rw-r--r-- | res/sprites/lucas_anim.txt | 8 |
7 files changed, 73 insertions, 6 deletions
diff --git a/res/scripts/common.lua b/res/scripts/common.lua index 494ace9..45b596d 100644 --- a/res/scripts/common.lua +++ b/res/scripts/common.lua | |||
@@ -30,6 +30,10 @@ SpriteLayer = { | |||
30 | ABOVE = 1 | 30 | ABOVE = 1 |
31 | } | 31 | } |
32 | 32 | ||
33 | CutsceneOptions = { | ||
34 | DO_NOT_CHANGE_ANIMATION = 1 -- Prevents player party animation being set to "frozen" at the start of a cutscene or "still" at the end | ||
35 | } | ||
36 | |||
33 | gamestate = {} | 37 | gamestate = {} |
34 | 38 | ||
35 | --- Yields until the specified amount of time has passed. | 39 | --- Yields until the specified amount of time has passed. |
@@ -42,12 +46,19 @@ end | |||
42 | 46 | ||
43 | --- Starts a cutscene. | 47 | --- Starts a cutscene. |
44 | -- This takes care of showing the cutscene bars, as well as halting character | 48 | -- This takes care of showing the cutscene bars, as well as halting character |
45 | -- movement. It does not block. | 49 | -- movement. It does not block. See CutsceneOptions for modifiers. |
46 | function StartCutscene() | 50 | function StartCutscene(options) |
51 | options = options or 0 | ||
52 | |||
47 | local playerId = getPlayerSprite() | 53 | local playerId = getPlayerSprite() |
48 | local playerSprite = getSprite(playerId) | 54 | local playerSprite = getSprite(playerId) |
49 | playerSprite.controllable = false | 55 | playerSprite.controllable = false |
50 | character():halt(playerId) | 56 | character():halt(playerId) |
57 | |||
58 | if (options & CutsceneOptions.DO_NOT_CHANGE_ANIMATION == 0) then | ||
59 | SetPartyAnimation(playerId, "frozen") | ||
60 | end | ||
61 | |||
51 | message():displayCutsceneBars() | 62 | message():displayCutsceneBars() |
52 | 63 | ||
53 | local allSprites = getAllSprites() | 64 | local allSprites = getAllSprites() |
@@ -91,8 +102,10 @@ function WaitForEndOfMessage() | |||
91 | end | 102 | end |
92 | 103 | ||
93 | --- Hides the cutscene bars. | 104 | --- Hides the cutscene bars. |
94 | -- This also re-enables player movement. | 105 | -- This also re-enables player movement. See CutsceneOptions for modifiers. |
95 | function HideCutsceneBars() | 106 | function HideCutsceneBars(options) |
107 | options = options or 0 | ||
108 | |||
96 | WaitForEndOfMessage() | 109 | WaitForEndOfMessage() |
97 | message():hideCutsceneBars() | 110 | message():hideCutsceneBars() |
98 | 111 | ||
@@ -100,6 +113,10 @@ function HideCutsceneBars() | |||
100 | local playerSprite = getSprite(playerId) | 113 | local playerSprite = getSprite(playerId) |
101 | playerSprite.controllable = true | 114 | playerSprite.controllable = true |
102 | 115 | ||
116 | if (options & CutsceneOptions.DO_NOT_CHANGE_ANIMATION == 0) then | ||
117 | SetPartyAnimation(playerId, "still") | ||
118 | end | ||
119 | |||
103 | local allSprites = getAllSprites() | 120 | local allSprites = getAllSprites() |
104 | for k,v in pairs(allSprites) do | 121 | for k,v in pairs(allSprites) do |
105 | getSprite(v).paused = false | 122 | getSprite(v).paused = false |
@@ -212,6 +229,16 @@ function SetPartyDirection(spriteId, direction) | |||
212 | end | 229 | end |
213 | end | 230 | end |
214 | 231 | ||
232 | function SetPartyAnimation(spriteId, animName) | ||
233 | animation():setSpriteAnimation(spriteId, animName) | ||
234 | |||
235 | local sprite = getSprite(spriteId) | ||
236 | |||
237 | for i=1,#sprite.followers do | ||
238 | animation():setSpriteAnimation(sprite.followers[i], animName) | ||
239 | end | ||
240 | end | ||
241 | |||
215 | function ChangeMap(map, warp) | 242 | function ChangeMap(map, warp) |
216 | local playerId = getPlayerSprite() | 243 | local playerId = getPlayerSprite() |
217 | local playerSprite = getSprite(playerId) | 244 | local playerSprite = getSprite(playerId) |
diff --git a/res/scripts/map2.lua b/res/scripts/map2.lua index cb373b4..31b9e00 100644 --- a/res/scripts/map2.lua +++ b/res/scripts/map2.lua | |||
@@ -89,7 +89,7 @@ function map2.mailbox_lightning() | |||
89 | 89 | ||
90 | DisplayMessage("* It was lightning.\n\fAh.", "", SpeakerType.NONE) | 90 | DisplayMessage("* It was lightning.\n\fAh.", "", SpeakerType.NONE) |
91 | WaitForEndOfMessage() | 91 | WaitForEndOfMessage() |
92 | HideCutsceneBars() | 92 | HideCutsceneBars(CutsceneOptions.DO_NOT_CHANGE_ANIMATION) |
93 | end | 93 | end |
94 | 94 | ||
95 | function map2.approach_doria() | 95 | function map2.approach_doria() |
@@ -142,7 +142,7 @@ function map2.approach_doria() | |||
142 | SetAnimation("boney", "crouch") | 142 | SetAnimation("boney", "crouch") |
143 | StopSound(barkingNoise) | 143 | StopSound(barkingNoise) |
144 | PlaySound("boney_growl.wav") | 144 | PlaySound("boney_growl.wav") |
145 | SetAnimation("kuma", "still") | 145 | SetAnimation("kuma", "frozen") |
146 | Delay(1000) | 146 | Delay(1000) |
147 | 147 | ||
148 | SetAnimation("doria", "talk") | 148 | SetAnimation("doria", "talk") |
diff --git a/res/sprites/boney_anim.txt b/res/sprites/boney_anim.txt index ffbb4fa..a8b036c 100644 --- a/res/sprites/boney_anim.txt +++ b/res/sprites/boney_anim.txt | |||
@@ -8,6 +8,14 @@ still[up]: 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4 | |||
8 | still[up_right]: 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,101,109,101,109 | 8 | still[up_right]: 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,101,109,101,109 |
9 | still[right]: 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,102,110,102,110 | 9 | still[right]: 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,102,110,102,110 |
10 | still[down_right]: 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,103,111,103,111 | 10 | still[down_right]: 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,103,111,103,111 |
11 | frozen[down]: 0 | ||
12 | frozen[down_left]: 1 | ||
13 | frozen[left]: 2 | ||
14 | frozen[up_left]: 3 | ||
15 | frozen[up]: 4 | ||
16 | frozen[up_right]: 5 | ||
17 | frozen[right]: 6 | ||
18 | frozen[down_right]: 7 | ||
11 | walk[down]: 8,16,24 | 19 | walk[down]: 8,16,24 |
12 | walk[down_left]: 9,17,25 | 20 | walk[down_left]: 9,17,25 |
13 | walk[left]: 10,18,26 | 21 | walk[left]: 10,18,26 |
diff --git a/res/sprites/claus_anim.txt b/res/sprites/claus_anim.txt index 79cb64b..14154e6 100644 --- a/res/sprites/claus_anim.txt +++ b/res/sprites/claus_anim.txt | |||
@@ -8,6 +8,14 @@ still[up]: 4 | |||
8 | still[up_right]: 5 | 8 | still[up_right]: 5 |
9 | still[right]: 6 | 9 | still[right]: 6 |
10 | still[down_right]: 7 | 10 | still[down_right]: 7 |
11 | frozen[down]: 0 | ||
12 | frozen[down_left]: 1 | ||
13 | frozen[left]: 2 | ||
14 | frozen[up_left]: 3 | ||
15 | frozen[up]: 4 | ||
16 | frozen[up_right]: 5 | ||
17 | frozen[right]: 6 | ||
18 | frozen[down_right]: 7 | ||
11 | walk[down]: 8,0,16,0 | 19 | walk[down]: 8,0,16,0 |
12 | walk[down_left]: 9,1,17,1 | 20 | walk[down_left]: 9,1,17,1 |
13 | walk[left]: 10,2,18,2 | 21 | walk[left]: 10,2,18,2 |
diff --git a/res/sprites/duster_anim.txt b/res/sprites/duster_anim.txt index 06e70d0..57c470c 100644 --- a/res/sprites/duster_anim.txt +++ b/res/sprites/duster_anim.txt | |||
@@ -8,6 +8,14 @@ still[up]: 4 | |||
8 | still[up_right]: 5 | 8 | still[up_right]: 5 |
9 | still[right]: 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,215,6,215 | 9 | still[right]: 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,215,6,215 |
10 | still[down_right]: 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,216,7,216 | 10 | still[down_right]: 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,216,7,216 |
11 | frozen[down]: 0 | ||
12 | frozen[down_left]: 1 | ||
13 | frozen[left]: 2 | ||
14 | frozen[up_left]: 3 | ||
15 | frozen[up]: 4 | ||
16 | frozen[up_right]: 5 | ||
17 | frozen[right]: 6 | ||
18 | frozen[down_right]: 7 | ||
11 | walk[down]: 8,16,24,32,40 | 19 | walk[down]: 8,16,24,32,40 |
12 | walk[down_left]: 9,17,25,33,41 | 20 | walk[down_left]: 9,17,25,33,41 |
13 | walk[left]: 10,18,26,34,42 | 21 | walk[left]: 10,18,26,34,42 |
diff --git a/res/sprites/kuma_anim.txt b/res/sprites/kuma_anim.txt index a6a5b72..01ca970 100644 --- a/res/sprites/kuma_anim.txt +++ b/res/sprites/kuma_anim.txt | |||
@@ -8,6 +8,14 @@ still[up]: 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4 | |||
8 | still[up_right]: 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,133,141,149,157,149,157,149,157,149,141 | 8 | still[up_right]: 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,133,141,149,157,149,157,149,157,149,141 |
9 | still[right]: 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,134,142,150,158,150,158,150,158,150,142 | 9 | still[right]: 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,134,142,150,158,150,158,150,158,150,142 |
10 | still[down_right]: 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,135,143,151,159,151,159,151,159,151,143 | 10 | still[down_right]: 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,135,143,151,159,151,159,151,159,151,143 |
11 | frozen[down]: 0 | ||
12 | frozen[down_left]: 1 | ||
13 | frozen[left]: 2 | ||
14 | frozen[up_left]: 3 | ||
15 | frozen[up]: 4 | ||
16 | frozen[up_right]: 5 | ||
17 | frozen[right]: 6 | ||
18 | frozen[down_right]: 7 | ||
11 | walk[down]: 16,0,24,0 | 19 | walk[down]: 16,0,24,0 |
12 | walk[down_left]: 17,1,25,1 | 20 | walk[down_left]: 17,1,25,1 |
13 | walk[left]: 18,2,26,2 | 21 | walk[left]: 18,2,26,2 |
diff --git a/res/sprites/lucas_anim.txt b/res/sprites/lucas_anim.txt index 98a9f5b..1a8b62b 100644 --- a/res/sprites/lucas_anim.txt +++ b/res/sprites/lucas_anim.txt | |||
@@ -8,6 +8,14 @@ still[up]: 4 | |||
8 | still[up_right]: 5 | 8 | still[up_right]: 5 |
9 | still[right]: 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,193,6,193 | 9 | still[right]: 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,193,6,193 |
10 | still[down_right]: 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,192,7,192 | 10 | still[down_right]: 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,192,7,192 |
11 | frozen[down]: 0 | ||
12 | frozen[down_left]: 1 | ||
13 | frozen[left]: 2 | ||
14 | frozen[up_left]: 3 | ||
15 | frozen[up]: 4 | ||
16 | frozen[up_right]: 5 | ||
17 | frozen[right]: 6 | ||
18 | frozen[down_right]: 7 | ||
11 | walk[down]: 40,0,48,0 | 19 | walk[down]: 40,0,48,0 |
12 | walk[down_left]: 41,1,49,1 | 20 | walk[down_left]: 41,1,49,1 |
13 | walk[left]: 42,2,50,2 | 21 | walk[left]: 42,2,50,2 |