summary refs log tree commit diff stats
path: root/src/map.cpp
diff options
context:
space:
mode:
authorStar Rauchenberger <fefferburbia@gmail.com>2021-07-05 11:58:29 -0400
committerStar Rauchenberger <fefferburbia@gmail.com>2021-07-05 11:58:29 -0400
commit324346a87c114f0991a092ac8653afecada364b5 (patch)
treef88ac730897056918b366e7fabaad2b136383d59 /src/map.cpp
parentd983ef6b8d66d916ed7502cf6d35b573c5366257 (diff)
downloadtanetane-324346a87c114f0991a092ac8653afecada364b5.tar.gz
tanetane-324346a87c114f0991a092ac8653afecada364b5.tar.bz2
tanetane-324346a87c114f0991a092ac8653afecada364b5.zip
Added background scripts
Background scripts are scripts that are launched when a map is loaded. They differ in use from a map's init script in that they are expected to contain an infinite loop. These scripts are linked to a sprite and will be killed when that sprite is destroyed (usually when the map is unloaded, but if the sprite is made persistent then it may last longer). The thread running the script is given no warning that it is being killed; the coroutine is simply never called again, and the thread is disposed of. Because of this, background scripts MUST ensure the game is in a consistent state before coroutine yielding, because it is not guaranteed that the coroutine will ever be called again.
Diffstat (limited to 'src/map.cpp')
-rw-r--r--src/map.cpp2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/map.cpp b/src/map.cpp index c8bf18f..f28a976 100644 --- a/src/map.cpp +++ b/src/map.cpp
@@ -121,6 +121,8 @@ Map::Map(std::string_view name) : name_(name) {
121 p.spriteToMirror = property.getStringValue(); 121 p.spriteToMirror = property.getStringValue();
122 } else if (property.getName() == "bumpPlayerScript") { 122 } else if (property.getName() == "bumpPlayerScript") {
123 p.bumpPlayerScript = property.getStringValue(); 123 p.bumpPlayerScript = property.getStringValue();
124 } else if (property.getName() == "backgroundScript") {
125 p.backgroundScript = property.getStringValue();
124 } 126 }
125 } 127 }
126 128