summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJoursoir <chat@joursoir.net>2021-03-09 21:45:42 +0000
committerJoursoir <chat@joursoir.net>2021-03-09 21:45:42 +0000
commit728efbb79dd76a25283b02259d6344d85d8f447d (patch)
tree5da84537a2eba04d736eaa398d3269444d94b37f
parenta7b9aa288a65ef456ec3795435c91eba58f2a098 (diff)
downloadascii-road-728efbb79dd76a25283b02259d6344d85d8f447d.tar.gz
ascii-road-728efbb79dd76a25283b02259d6344d85d8f447d.tar.bz2
ascii-road-728efbb79dd76a25283b02259d6344d85d8f447d.zip
some changes in class Vehicle
-rw-r--r--Vehicle.cpp30
-rw-r--r--Vehicle.hpp7
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 {