summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--build.bat2
-rw-r--r--src/include/world.h2
-rw-r--r--src/scenes/save_state_select.c88
3 files changed, 86 insertions, 6 deletions
diff --git a/build.bat b/build.bat
index 8302705..1d1c13a 100644
--- a/build.bat
+++ b/build.bat
@@ -2,5 +2,5 @@ robocopy "data/" "build/data" /s /e
windres icon.rc -O coff -o icon.res
-gcc.exe -m64 -w -g -DMODE_DEBUG src/main.c icon.res -o build/truckerx.exe -Llibs/ -lSDL2 -lSDL2_mixer -mwindows
+gcc.exe -m64 -w -g -DMODE_DEBUG src/main.c icon.res -o build/truckerx.exe -Llibs/ -lSDL2 -lSDL2_mixer
call build\truckerx.exe \ No newline at end of file
diff --git a/src/include/world.h b/src/include/world.h
index 458478b..58e41fa 100644
--- a/src/include/world.h
+++ b/src/include/world.h
@@ -7,7 +7,7 @@
#ifndef INCLUDE_WORLD
#define INCLUDE_WORLD
-#define MAX_WORLD_LOCATION_NAME_LENGTH 20
+#define MAX_WORLD_LOCATION_NAME_LENGTH 40
#define MAX_ENPOLYEE_FIRSTNAME_LENGTH 14
#define MAX_ENPOLYEE_LASTNAME_LENGTH 14
#define MAX_EMPLOYEE_NAME_LENGTH 30
diff --git a/src/scenes/save_state_select.c b/src/scenes/save_state_select.c
index 9972b7f..464c2fe 100644
--- a/src/scenes/save_state_select.c
+++ b/src/scenes/save_state_select.c
@@ -184,11 +184,91 @@ static void write_save_file(s32 index)
cJSON_AddItemToObject(loc, "employees", employees);
}
- // TODO: job_offers
- // TODO: resumes
- // TODO: trucks
+ cJSON *job_offers = cJSON_CreateArray();
+ {
+ for (s32 x = 0; x < location->job_offers.length; x++)
+ {
+ job_offer* o = array_at(&location->job_offers, x);
+
+ cJSON *offer = cJSON_CreateObject();
+ cJSON_AddItemToObject(offer, "id", cJSON_CreateNumber(o->id));
+ cJSON_AddItemToObject(offer, "expire_date", cJSON_CreateNumber(o->expire_date));
+ cJSON_AddItemToObject(offer, "company_id", cJSON_CreateString(o->company->name));
+ cJSON_AddItemToObject(offer, "product", cJSON_CreateString(o->product->name));
+ cJSON_AddItemToObject(offer, "shipday_count", cJSON_CreateNumber(o->shipday_count));
+
+ cJSON *shipdays = cJSON_CreateArray();
+ for (s32 s = 0; s < MAX_SHIPDAYS; s++)
+ {
+ cJSON_AddItemToArray(shipdays, cJSON_CreateNumber(o->shipdays[s]));
+ }
+ cJSON_AddItemToObject(offer, "shipdays", shipdays);
+ cJSON_AddItemToObject(offer, "total_distance", cJSON_CreateNumber(o->total_distance));
+
+ cJSON_AddItemToObject(offer, "boat_distance", cJSON_CreateNumber(o->boat_distance));
+ cJSON_AddItemToObject(offer, "duration_sec_min", cJSON_CreateNumber(o->duration_sec_min));
+ cJSON_AddItemToObject(offer, "duration_sec_max", cJSON_CreateNumber(o->duration_sec_max));
+ cJSON_AddItemToObject(offer, "duration_sec_min_excluding_boat", cJSON_CreateNumber(o->duration_sec_min_excluding_boat));
+
+ cJSON *connections = cJSON_CreateArray();
+ for (s32 s = 0; s < o->connections.length; s++)
+ {
+ world_location* loc = *(world_location**)array_at(&o->connections, s);
+ cJSON_AddItemToArray(connections, cJSON_CreateNumber(loc->id));
+ }
+ cJSON_AddItemToObject(offer, "connections", connections);
+
+ cJSON_AddItemToArray(job_offers, offer);
+ }
+ cJSON_AddItemToObject(loc, "job_offers", job_offers);
+ }
+
+ cJSON *resumes = cJSON_CreateArray();
+ {
+ for (s32 r = 0; r < location->resumes.length; r++)
+ {
+ resume* res = array_at(&location->resumes, r);
+
+ cJSON *resume = cJSON_CreateObject();
+ cJSON_AddItemToObject(resume, "employee_id", cJSON_CreateNumber(res->employee->id));
+ cJSON_AddItemToObject(resume, "expire_date", cJSON_CreateNumber(res->expire_date));
+ cJSON_AddItemToObject(resume, "hired", cJSON_CreateNumber(res->hired));
+
+ cJSON_AddItemToArray(resumes, resume);
+ }
+
+ cJSON_AddItemToObject(loc, "resumes", resumes);
+ }
+
+ cJSON *trucks = cJSON_CreateArray();
+ {
+ for (s32 i = 0; i < location->trucks.length; i++) {
+ truck* emp = array_at(&location->trucks, i);
+
+ cJSON *truck = cJSON_CreateObject();
+ cJSON_AddItemToObject(truck, "id", cJSON_CreateNumber(emp->id));
+ cJSON_AddItemToObject(truck, "employee_id", cJSON_CreateNumber(emp->assigned_employee == 0 ? 0 : emp->assigned_employee->id));
+ cJSON_AddItemToObject(truck, "type", cJSON_CreateNumber(emp->type));
+
+ cJSON_AddItemToArray(trucks, truck);
+ }
+
+ cJSON_AddItemToObject(loc, "trucks", trucks);
+ }
+
+ cJSON *schedule = cJSON_CreateArray();
+ {
+ for (s32 r = 0; r < location->schedule.jobs.length; r++)
+ {
+ scheduled_job* scheduled_job = array_at(&location->schedule.jobs, r);
+
+ //
+ }
+
+ cJSON_AddItemToObject(loc, "schedule", schedule);
+ }
+
// TODO: insights
- // TODO: schedule
cJSON_AddItemToArray(locations, loc);
}