From daf6c17c885e28a7f76980c4d8f26bfb019c6b16 Mon Sep 17 00:00:00 2001 From: Den Date: Fri, 17 Apr 2015 23:37:57 +0300 Subject: [PATCH] Fix speed and add rotate() If move NORTH and EAST speed[i] be + and "last_movement[i] + default_delay - speed[i]" decrease but if move SOUTH and WEST speed[i] be - and "last_movement[i] + default_delay - speed[i]" increase. abs(speed[i]) Fix it. "last_movement[i] + default_delay -abs(speed[i])" always decrease. rotate() rotate ship icon in move dir.(Don't need a make additional dir sprites) --- code/modules/overmap/ships/ship.dm | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/code/modules/overmap/ships/ship.dm b/code/modules/overmap/ships/ship.dm index 1dd7a17e468..9591f931ba3 100644 --- a/code/modules/overmap/ships/ship.dm +++ b/code/modules/overmap/ships/ship.dm @@ -8,6 +8,7 @@ var/last_burn = 0 var/list/last_movement = list(0,0) var/fore_dir = NORTH + var/standart_icon var/obj/effect/map/current_sector var/obj/machinery/computer/helm/nav_control @@ -23,6 +24,7 @@ nav_control = H break processing_objects.Add(src) + standart_icon = icon /obj/effect/map/ship/relaymove(mob/user, direction) accelerate(direction) @@ -98,9 +100,14 @@ if(!is_still()) var/list/deltas = list(0,0) for(var/i=1, i<=2, i++) - if(speed[i] && world.time > last_movement[i] + default_delay - speed[i]) + if(speed[i] && world.time > last_movement[i] + default_delay - abs(speed[i])) deltas[i] = speed[i] > 0 ? 1 : -1 last_movement[i] = world.time var/turf/newloc = locate(x + deltas[1], y + deltas[2], z) if(newloc) - Move(newloc) \ No newline at end of file + Move(newloc) + rotate() + +/obj/effect/map/ship/proc/rotate() + var/direct = get_heading() + src.icon = turn(src.standart_icon,dir2angle(direct))