From 10ed0058fd760f764cc7b849e6f0e22f1e4dc6bb Mon Sep 17 00:00:00 2001 From: Info Teddy <59748578+InfoTeddy@users.noreply.github.com> Date: Tue, 14 Jan 2020 05:51:33 -0800 Subject: [PATCH] Fix the flipgravity() internal command (#78) There are two main problems with flipgravity(): 1. It doesn't work for an already-flipped crewmate. 2. It doesn't work on the player. This commit addresses both of those issues. --- desktop_version/src/Script.cpp | 63 ++++++++++++++++++++-------------- 1 file changed, 37 insertions(+), 26 deletions(-) diff --git a/desktop_version/src/Script.cpp b/desktop_version/src/Script.cpp index 640e24ee..b552fac9 100644 --- a/desktop_version/src/Script.cpp +++ b/desktop_version/src/Script.cpp @@ -927,35 +927,46 @@ void scriptclass::run( KeyPoll& key, Graphics& dwgfx, Game& game, mapclass& map, //not something I'll use a lot, I think. Doesn't need to be very robust! if (words[1] == "player") { - i=obj.getplayer(); + game.gravitycontrol = !game.gravitycontrol; } - else if (words[1] == "cyan") + else { - i=obj.getcrewman(0); - } - else if (words[1] == "red") - { - i=obj.getcrewman(3); - } - else if (words[1] == "green") - { - i=obj.getcrewman(4); - } - else if (words[1] == "yellow") - { - i=obj.getcrewman(2); - } - else if (words[1] == "blue") - { - i=obj.getcrewman(5); - } - else if (words[1] == "purple") - { - i=obj.getcrewman(1); - } + if (words[1] == "cyan") + { + i=obj.getcrewman(0); + } + else if (words[1] == "red") + { + i=obj.getcrewman(3); + } + else if (words[1] == "green") + { + i=obj.getcrewman(4); + } + else if (words[1] == "yellow") + { + i=obj.getcrewman(2); + } + else if (words[1] == "blue") + { + i=obj.getcrewman(5); + } + else if (words[1] == "purple") + { + i=obj.getcrewman(1); + } - obj.entities[i].rule =7; - obj.entities[i].tile = 6; + if (obj.entities[i].rule == 6) + { + obj.entities[i].rule = 7; + obj.entities[i].tile = 6; + } + else if (obj.entities[i].rule == 7) + { + obj.entities[i].rule = 6; + obj.entities[i].tile = 0; + } + } } else if (words[0] == "changegravity") {