Changed files names
This commit is contained in:
parent
80b7018ba0
commit
e5f548a327
171
src/bin.cpp
171
src/bin.cpp
|
@ -1,171 +0,0 @@
|
|||
#include <cstdlib>
|
||||
#include <vector>
|
||||
#include <map>
|
||||
#include <iostream>
|
||||
|
||||
#include "bin.hpp"
|
||||
|
||||
void load_json_into_bin(json *json_input, bin_t *bin_output)
|
||||
{
|
||||
// value
|
||||
bin_output->value = (*json_input)["value"].get<int>();
|
||||
|
||||
// str
|
||||
std::string str = (*json_input)["str"];
|
||||
bin_output->str_size = str.size();
|
||||
bin_output->str = (char *)malloc(bin_output->str_size * sizeof(char));
|
||||
|
||||
for(size_t i = 0; i < bin_output->str_size; i++)
|
||||
{
|
||||
bin_output->str[i] = str[i];
|
||||
}
|
||||
|
||||
// list
|
||||
std::vector<int> list = (*json_input)["list"];
|
||||
bin_output->list_size = list.size();
|
||||
bin_output->list = (int *)malloc(bin_output->list_size * sizeof(int));
|
||||
|
||||
for(size_t i = 0; i < bin_output->list_size; i++)
|
||||
{
|
||||
bin_output->list[i] = list[i];
|
||||
}
|
||||
|
||||
// object -> value2
|
||||
bin_output->object.value2 = (*json_input)["object"]["value2"].get<int>();
|
||||
|
||||
// object -> str2
|
||||
std::string str2 = (*json_input)["object"]["str2"];
|
||||
bin_output->object.str2_size = str2.size();
|
||||
bin_output->object.str2 = (char *)malloc(bin_output->object.str2_size * sizeof(char));
|
||||
|
||||
for(size_t i = 0; i < bin_output->object.str2_size; i++)
|
||||
{
|
||||
bin_output->object.str2[i] = str2[i];
|
||||
}
|
||||
|
||||
// object -> list2
|
||||
std::vector<int> list2 = (*json_input)["object"]["list2"];
|
||||
bin_output->object.list2_size = list2.size();
|
||||
bin_output->object.list2 = (int *)malloc(bin_output->object.list2_size * sizeof(int));
|
||||
|
||||
for(size_t i = 0; i < bin_output->object.list2_size; i++)
|
||||
{
|
||||
bin_output->object.list2[i] = list2[i];
|
||||
}
|
||||
|
||||
// object_list
|
||||
std::vector<json> object_list = (*json_input)["object_list"];
|
||||
bin_output->object_list_size = object_list.size();
|
||||
bin_output->object_list = (person_t *)malloc(bin_output->object_list_size * sizeof(person_t));
|
||||
|
||||
for(size_t i = 0; i < bin_output->object_list_size; i++)
|
||||
{
|
||||
json object = object_list[i];
|
||||
|
||||
std::string name = object["name"];
|
||||
bin_output->object_list[i].name_size = name.size();
|
||||
bin_output->object_list[i].name = (char *)malloc(bin_output->object_list[i].name_size * sizeof(char));
|
||||
|
||||
for(size_t j = 0; j < bin_output->object_list[i].name_size; j++)
|
||||
{
|
||||
bin_output->object_list[i].name[j] = name[j];
|
||||
}
|
||||
|
||||
bin_output->object_list[i].age = object["age"].get<int>();
|
||||
|
||||
std::vector<std::string> passions = object["passions"];
|
||||
bin_output->object_list[i].nb_passions = passions.size();
|
||||
bin_output->object_list[i].passions_size = (size_t *)malloc(bin_output->object_list[i].nb_passions * sizeof(size_t));
|
||||
|
||||
size_t passions_total_size = 0;
|
||||
|
||||
for(size_t j = 0; j < bin_output->object_list[i].nb_passions; j++)
|
||||
{
|
||||
bin_output->object_list[i].passions_size[j] = passions[j].size();
|
||||
passions_total_size += passions[j].size();
|
||||
}
|
||||
|
||||
bin_output->object_list[i].passions = (char *)malloc(passions_total_size * sizeof(char));
|
||||
|
||||
size_t last_passion_pos = 0;
|
||||
for(size_t j = 0; j < bin_output->object_list[i].nb_passions; j++)
|
||||
{
|
||||
for(size_t k = 0; k < bin_output->object_list[i].passions_size[j]; k++)
|
||||
bin_output->object_list[i].passions[k + last_passion_pos] = passions[j][k];
|
||||
|
||||
std::cout << passions[j] << std::endl;
|
||||
std::cout << bin_output->object_list[i].passions << std::endl;
|
||||
|
||||
last_passion_pos += bin_output->object_list[i].passions_size[j];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void write_bin_into_file(bin_t *bin_output, std::ofstream *bin_output_file)
|
||||
{
|
||||
// value
|
||||
bin_output_file->write(reinterpret_cast<char*>(&bin_output->value), sizeof(int));
|
||||
|
||||
// str
|
||||
bin_output_file->write(reinterpret_cast<char*>(&bin_output->str_size), sizeof(size_t));
|
||||
bin_output_file->write(reinterpret_cast<char*>(bin_output->str), bin_output->str_size * sizeof(char));
|
||||
|
||||
// list
|
||||
bin_output_file->write(reinterpret_cast<char*>(&bin_output->list_size), sizeof(size_t));
|
||||
bin_output_file->write(reinterpret_cast<char*>(bin_output->list), bin_output->list_size * sizeof(int));
|
||||
|
||||
// object -> value2
|
||||
bin_output_file->write(reinterpret_cast<char*>(&bin_output->object.value2), sizeof(int));
|
||||
|
||||
// object -> str2
|
||||
bin_output_file->write(reinterpret_cast<char*>(&bin_output->object.str2_size), sizeof(size_t));
|
||||
bin_output_file->write(reinterpret_cast<char*>(bin_output->object.str2), bin_output->object.str2_size * sizeof(char));
|
||||
|
||||
// object -> list2
|
||||
bin_output_file->write(reinterpret_cast<char*>(&bin_output->object.list2_size), sizeof(size_t));
|
||||
bin_output_file->write(reinterpret_cast<char*>(bin_output->object.list2), bin_output->object.list2_size * sizeof(int));
|
||||
|
||||
// object_list
|
||||
bin_output_file->write(reinterpret_cast<char*>(&bin_output->object_list_size), sizeof(size_t));
|
||||
for (size_t i = 0; i < bin_output->object_list_size; i++)
|
||||
{
|
||||
person_t& person = bin_output->object_list[i];
|
||||
|
||||
// name
|
||||
bin_output_file->write(reinterpret_cast<char*>(&person.name_size), sizeof(size_t));
|
||||
bin_output_file->write(reinterpret_cast<char*>(person.name), person.name_size * sizeof(char));
|
||||
|
||||
// age
|
||||
bin_output_file->write(reinterpret_cast<char*>(&person.age), sizeof(int));
|
||||
|
||||
// passions
|
||||
bin_output_file->write(reinterpret_cast<char*>(&person.nb_passions), sizeof(size_t));
|
||||
bin_output_file->write(reinterpret_cast<char*>(person.passions_size), person.nb_passions * sizeof(size_t));
|
||||
|
||||
size_t passions_total_size = 0;
|
||||
|
||||
for(size_t j = 0; j < person.nb_passions; j++)
|
||||
{
|
||||
passions_total_size += person.passions_size[j];
|
||||
}
|
||||
|
||||
bin_output_file->write(person.passions, passions_total_size);
|
||||
}
|
||||
}
|
||||
|
||||
void free_bin(bin_t *bin)
|
||||
{
|
||||
free(bin->list);
|
||||
bin->list = nullptr;
|
||||
bin->list_size = 0;
|
||||
free(bin->str);
|
||||
bin->str = nullptr;
|
||||
bin->str_size = 0;
|
||||
|
||||
free(bin->object.list2);
|
||||
bin->object.list2 = nullptr;
|
||||
bin->object.list2_size = 0;
|
||||
free(bin->object.str2);
|
||||
bin->object.str2 = nullptr;
|
||||
bin->object.str2_size = 0;
|
||||
}
|
45
src/bin.hpp
45
src/bin.hpp
|
@ -1,45 +0,0 @@
|
|||
#ifndef BIN_H
|
||||
#define BIN_H
|
||||
|
||||
#include <fstream>
|
||||
#include "json/json.hpp"
|
||||
|
||||
using nlohmann::json;
|
||||
|
||||
typedef struct object_t {
|
||||
int value2;
|
||||
size_t list2_size;
|
||||
int *list2;
|
||||
size_t str2_size;
|
||||
char *str2;
|
||||
} object_t;
|
||||
|
||||
typedef struct person_t {
|
||||
size_t name_size;
|
||||
char *name;
|
||||
int age;
|
||||
size_t nb_passions;
|
||||
size_t *passions_size;
|
||||
char *passions;
|
||||
} person_t;
|
||||
|
||||
typedef struct bin_t {
|
||||
int value;
|
||||
size_t list_size;
|
||||
int *list;
|
||||
size_t str_size;
|
||||
char *str;
|
||||
|
||||
object_t object;
|
||||
|
||||
size_t object_list_size;
|
||||
person_t *object_list;
|
||||
} bin_t;
|
||||
|
||||
void load_json_into_bin(json *json_input, bin_t *bin_output);
|
||||
|
||||
void write_bin_into_file(bin_t *bin_output, std::ofstream *bin_output_file);
|
||||
|
||||
void free_bin(bin_t *bin);
|
||||
|
||||
#endif // BIN_H
|
|
@ -0,0 +1,23 @@
|
|||
#include <cstdlib>
|
||||
#include <vector>
|
||||
#include <map>
|
||||
#include <iostream>
|
||||
|
||||
#include "game_data.hpp"
|
||||
|
||||
struct texture_t builtin_textures[NB_TEXTURES] = {
|
||||
{"player_idle_sheet", &player_idle_sheet},
|
||||
{"player_run_sheet", &player_run_sheet}
|
||||
};
|
||||
|
||||
void load_json_into_game_data(json *json_input, game_data_t *bin_output)
|
||||
{
|
||||
}
|
||||
|
||||
void write_game_data_as_bin_into_file(game_data_t *game_data, std::ofstream *bin_output_file)
|
||||
{
|
||||
}
|
||||
|
||||
void free_game_data(game_data_t *game_data)
|
||||
{
|
||||
}
|
|
@ -0,0 +1,31 @@
|
|||
#ifndef GAME_DATA_HPP
|
||||
#define GAME_DATA_HPP
|
||||
|
||||
#include <fstream>
|
||||
#include "gint/display-cg.h"
|
||||
#include "nlohmann/json/json.hpp"
|
||||
|
||||
using nlohmann::json;
|
||||
|
||||
extern bopti_image_t player_idle_sheet;
|
||||
extern bopti_image_t player_run_sheet;
|
||||
|
||||
typedef struct texture_t {
|
||||
const char *name;
|
||||
bopti_image_t *image;
|
||||
} texture_t;
|
||||
|
||||
#define NB_TEXTURES 2
|
||||
extern struct texture_t builtin_textures[];
|
||||
|
||||
typedef struct game_data_t {
|
||||
texture_t *textures;
|
||||
} game_data_t;
|
||||
|
||||
void load_json_into_game_data(json *json_input, game_data_t *game_data);
|
||||
|
||||
void write_game_data_as_bin_into_file(game_data_t *game_data, std::ofstream *bin_output_file);
|
||||
|
||||
void free_game_data(game_data_t *game_data);
|
||||
|
||||
#endif // GAME_DATA_HPP
|
10
src/main.cpp
10
src/main.cpp
|
@ -1,6 +1,6 @@
|
|||
#include <iostream>
|
||||
|
||||
#include "bin.hpp"
|
||||
#include "game_data.hpp"
|
||||
|
||||
void error(std::string error);
|
||||
|
||||
|
@ -27,13 +27,13 @@ int main(int argc, char *argv[])
|
|||
}
|
||||
|
||||
json json_input = json::parse(json_input_file);
|
||||
bin_t bin_output;
|
||||
game_data_t game_data;
|
||||
|
||||
load_json_into_bin(&json_input, &bin_output);
|
||||
load_json_into_game_data(&json_input, &game_data);
|
||||
|
||||
write_bin_into_file(&bin_output, &bin_output_file);
|
||||
write_game_data_as_bin_into_file(&game_data, &bin_output_file);
|
||||
|
||||
free_bin(&bin_output);
|
||||
free_game_data(&game_data);
|
||||
|
||||
return EXIT_SUCCESS;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue