Skip to content

Commit 28d55c9

Browse files
authored
Don't freeze on wait
1 parent c82219c commit 28d55c9

File tree

1 file changed

+4
-4
lines changed

1 file changed

+4
-4
lines changed

src/squirrel/supertux_api.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -164,14 +164,14 @@ static bool check_cutscene()
164164
static SQInteger wait(HSQUIRRELVM vm, float seconds, bool forced = false)
165165
{
166166
ssq::VM* ssq_vm = ssq::VM::get(vm);
167-
if (!ssq_vm || !ssq_vm->isThread()) return 0;
167+
if (ssq_vm && !ssq_vm->isThread()) return 0;
168168

169169
if (!forced)
170170
{
171171
auto session = GameSession::current();
172172
if (session && session->get_current_level().m_skip_cutscene)
173173
{
174-
if (ssq_vm->getForeignPtr())
174+
if (ssq_vm && ssq_vm->getForeignPtr())
175175
{
176176
auto squirrelenv = ssq_vm->getForeignPtr<SquirrelEnvironment>();
177177
// Wait anyways, to prevent scripts like `while (true) {wait(0.1); ...}`.
@@ -182,7 +182,7 @@ static SQInteger wait(HSQUIRRELVM vm, float seconds, bool forced = false)
182182
}
183183
if (session && session->get_current_level().m_is_in_cutscene)
184184
{
185-
if (ssq_vm->getForeignPtr())
185+
if (ssq_vm && ssq_vm->getForeignPtr())
186186
{
187187
auto squirrelenv = ssq_vm->getForeignPtr<SquirrelEnvironment>();
188188
// Wait anyways, to prevent scripts like `while (true) {wait(0.1); ...}` from freezing the game.
@@ -192,7 +192,7 @@ static SQInteger wait(HSQUIRRELVM vm, float seconds, bool forced = false)
192192
return squirrelvm->skippable_wait_for_seconds(vm, seconds);
193193
}
194194
}
195-
if (ssq_vm->getForeignPtr())
195+
if (ssq_vm && ssq_vm->getForeignPtr())
196196
{
197197
auto squirrelenv = ssq_vm->getForeignPtr<SquirrelEnvironment>();
198198
return squirrelenv->wait_for_seconds(vm, seconds);

0 commit comments

Comments
 (0)