From 728efbb79dd76a25283b02259d6344d85d8f447d Mon Sep 17 00:00:00 2001 From: Joursoir Date: Tue, 9 Mar 2021 21:45:42 +0000 Subject: some changes in class Vehicle --- Vehicle.cpp | 30 ++++++++---------------------- Vehicle.hpp | 7 +++---- 2 files changed, 11 insertions(+), 26 deletions(-) diff --git a/Vehicle.cpp b/Vehicle.cpp index 9a5153c..df1e1e3 100644 --- a/Vehicle.cpp +++ b/Vehicle.cpp @@ -2,29 +2,15 @@ #include "Vehicle.hpp" #include "veh_models.hpp" +#include "GameWorld.hpp" -bool Vehicle::Draw(int bound_x) +bool Vehicle::MoveRight(GameWorld *world) { - bool ret = false; - int i, j, k; - const struct vehicle_info car = veh_info[type]; + const struct object_info *car = &veh_store[type]; + int h = car->height, i; + for(i = 0; i < h; i++) + world->RedrawCh(pos_y - i, pos_x); - for(i = pos_x, j = car.length-1; i >= 0 && j >= 0; i--, j--) { - if(i >= bound_x) - continue; - ret = true; - - int h = car.height; - for(k = 0; k < h; k++) { - if(car.model[k][j] != SUPPORT_CHAR) - mvaddch(pos_y - (h - k), i, car.model[k][j]); - } - } - - return ret; + pos_x++; + return world->Draw(car, pos_y, pos_x, false); } - -int Vehicle::GetLength() -{ - return veh_info[type].length; -} \ No newline at end of file diff --git a/Vehicle.hpp b/Vehicle.hpp index 4e5e854..24cc505 100644 --- a/Vehicle.hpp +++ b/Vehicle.hpp @@ -1,6 +1,8 @@ #ifndef ASCIIROAD_VEHICLE_H #define ASCIIROAD_VEHICLE_H +class GameWorld; + class Vehicle { int type; int pos_y, pos_x; @@ -9,10 +11,7 @@ public: : type(a_type), pos_y(a_y), pos_x(a_x) { } ~Vehicle() { } - int GetLength(); - - void MoveRight() { pos_x++; } - bool Draw(int bound_x); /* return false if not draw anything */ + bool MoveRight(GameWorld *world); /* return false if not draw anything */ }; struct ll_vehicle { -- cgit v1.2.3-18-g5258