mirror of https://github.com/UberGames/rpgxEF.git
Merge branch 'master' of git@github.com:UberGames/rpgxEF.git
This commit is contained in:
commit
65282c20a2
|
@ -0,0 +1,144 @@
|
||||||
|
#include "export_lyx.h"
|
||||||
|
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <stdio.h>
|
||||||
|
|
||||||
|
function_p create_function(void) {
|
||||||
|
function_p n = (function_p)malloc(sizeof(function_s));
|
||||||
|
|
||||||
|
if(n == NULL) return NULL;
|
||||||
|
|
||||||
|
n->desc = create_list();
|
||||||
|
if(n->desc == NULL) {
|
||||||
|
free(n);
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
n->params = create_list();
|
||||||
|
if(n->params == NULL) {
|
||||||
|
destroy_list(n->desc);
|
||||||
|
free(n);
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
return n;
|
||||||
|
}
|
||||||
|
|
||||||
|
void destroy_function(function_p f) {
|
||||||
|
if(f != NULL) {
|
||||||
|
if(f->desc != NULL) {
|
||||||
|
destroy_list(f->desc);
|
||||||
|
}
|
||||||
|
if(f->params != NULL) {
|
||||||
|
destroy_list(f->params);
|
||||||
|
}
|
||||||
|
free(f);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
desc_p create_desc(void) {
|
||||||
|
desc_p n = (desc_p)malloc(sizeof(desc_s));
|
||||||
|
|
||||||
|
if(n == NULL) return NULL;
|
||||||
|
|
||||||
|
return n;
|
||||||
|
}
|
||||||
|
|
||||||
|
void destroy_desc(desc_p d) {
|
||||||
|
if(d != NULL) {
|
||||||
|
if(d->text != NULL) {
|
||||||
|
free(d->text);
|
||||||
|
}
|
||||||
|
|
||||||
|
free(d);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
param_p create_param(void) {
|
||||||
|
param_p n = (param_p)malloc(sizeof(param_s));
|
||||||
|
|
||||||
|
if(n == NULL) return NULL;
|
||||||
|
|
||||||
|
n->desc = create_list();
|
||||||
|
if(n->desc == NULL) {
|
||||||
|
free(n);
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
return n;
|
||||||
|
}
|
||||||
|
|
||||||
|
void destroy_param(param_p p) {
|
||||||
|
if (p != NULL) {
|
||||||
|
if(p->name != NULL) {
|
||||||
|
free(p->name);
|
||||||
|
}
|
||||||
|
if(p->desc != NULL) {
|
||||||
|
destroy_list(p->desc);
|
||||||
|
}
|
||||||
|
|
||||||
|
free(p);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void write_desc(list_p d, FILE* f) {
|
||||||
|
list_iter_p iter;
|
||||||
|
desc_p d;
|
||||||
|
|
||||||
|
if(d == NULL || f == NULL) return;
|
||||||
|
|
||||||
|
fprintf(f, "%s", BEGIN_STANDART);
|
||||||
|
|
||||||
|
for(d = list_next(iter); d != NULL; d = list_next(iter)) {
|
||||||
|
fprintf(f, "%s", d->text);
|
||||||
|
}
|
||||||
|
|
||||||
|
fprintf(f, "%s", END_LAYOUT);
|
||||||
|
}
|
||||||
|
|
||||||
|
void write_params(list_p p, FILE* f) {
|
||||||
|
list_iter_p iter;
|
||||||
|
param_p d;
|
||||||
|
|
||||||
|
if(p == NULL || f == NULL) return;
|
||||||
|
|
||||||
|
fprintf(f, "%s", BEGIN_TABULAR);
|
||||||
|
iter = list_iterator(p);
|
||||||
|
for(d = list_next(iter); d != NULL; d = list_next(iter)) {
|
||||||
|
write_param(d, f);
|
||||||
|
}
|
||||||
|
fprintf(f, "%s", END_TABULAR);
|
||||||
|
}
|
||||||
|
|
||||||
|
void write_param(param_p p, FILE* f) {
|
||||||
|
list_iter_p iter;
|
||||||
|
desc_p d;
|
||||||
|
|
||||||
|
if(p == NULL || f == NULL) return;
|
||||||
|
|
||||||
|
fprintf(f, "%s%s", BEGIN_TABULAR_ROW, BEGIN_TABULAR_CELL);
|
||||||
|
switch(p->type) {
|
||||||
|
case FLOAT:
|
||||||
|
fprintf(f, "float\n");
|
||||||
|
break;
|
||||||
|
case ENTITY:
|
||||||
|
fprintf(f, "entity\n");
|
||||||
|
break;
|
||||||
|
case VECTOR:
|
||||||
|
fprintf(f, "vector\n");
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
fprintf(stderr, "write_param - Uknown param type %d\n", p->type);
|
||||||
|
exit(EXIT_FAILURE);
|
||||||
|
}
|
||||||
|
fprintf(f, "%s%s", END_TABULAR_CELL, BEGIN_TABULAR_CELL);
|
||||||
|
fprintf(f, "%s\n", p->name);
|
||||||
|
fprintf(f, "%s%s", END_TABULAR_CELL, BEGIN_TABULAR_CELL);
|
||||||
|
iter = list_iterator(p->desc, FRONT);
|
||||||
|
for(d = list_next(iter); d != NULL; d = list_next(iter)) {
|
||||||
|
fprintf(f, "%s", d->desc);
|
||||||
|
}
|
||||||
|
fprintf(f, "%s%s%s", END_TABULAR_CELL, END_TABULAR_ROW, END_TABULAR);
|
||||||
|
}
|
||||||
|
|
|
@ -0,0 +1,51 @@
|
||||||
|
#ifndef EXPORT_LYX_H_
|
||||||
|
#define EXPORT_LYX_H_
|
||||||
|
|
||||||
|
#include "../../game/list.h"
|
||||||
|
|
||||||
|
typedef struct function_s* function_p;
|
||||||
|
struct function_s {
|
||||||
|
char* name;
|
||||||
|
list_p desc;
|
||||||
|
list_p params;
|
||||||
|
} function_s;
|
||||||
|
function_p create_function(void);
|
||||||
|
void destroy_function(function_p f);
|
||||||
|
|
||||||
|
typedef struct desc_s* desc_p;
|
||||||
|
struct desc_s {
|
||||||
|
char* text;
|
||||||
|
} desc_s;
|
||||||
|
desc_p create_desc(void);
|
||||||
|
void destroy_desc(desc_p d);
|
||||||
|
|
||||||
|
typedef enum { FLOAT, ENTITY, VECTOR } pType;
|
||||||
|
|
||||||
|
typedef struct param_s* param_p;
|
||||||
|
struct param_s {
|
||||||
|
pType type;
|
||||||
|
char* name;
|
||||||
|
list_p desc;
|
||||||
|
} param_s;
|
||||||
|
param_p create_param(void);
|
||||||
|
void destroy_param(param_p p);
|
||||||
|
|
||||||
|
void write_function(function_p f, FILE* f);
|
||||||
|
void write_desc(list_p d, FILE* f);
|
||||||
|
void wrtie_params(list_p p, FILE* f);
|
||||||
|
void write_param(param_p p, FILE* f);
|
||||||
|
|
||||||
|
#define BEGIN_SECTION "\\begin_layout Section"
|
||||||
|
#define BEGIN_SUBSECTION "\\begin_layout Subsection"
|
||||||
|
#define BEGIN_STANDART "\\begin_layout Standart"
|
||||||
|
#define END_LAYOUT "\\ent_layout
|
||||||
|
|
||||||
|
#define BEGIN_TABULAR "\\begin_layout Standard\n\\begin_inset Tabular\n<lyxtabular version=\"3\" rows=\"2\" columns=\"3\">\n<features tabularvalignment=\"middle\">\n<column alignment=\"center\" valignment=\"top\" width=\"0\">\n<column alignment=\"center\" valignment=\"top\" width=\"0\">\n<column alignment=\"center\" valignment=\"top\" width=\"0\">\n"
|
||||||
|
#define BEGIN_TABULAR_ROW "<row>\n"
|
||||||
|
#define END_TABULAR_ROW "</row>\n"
|
||||||
|
#define BEGIN_TABULAR_CELL "<cell allignment=\"center\" valignment=\"top\" usebox=\"none\">\n\\begin_inset Text\n\\begin_layout Plain Layout\n"
|
||||||
|
#define END_TABULAR_CELL "\\end_layout\n\\end_inset\n</cell>\n"
|
||||||
|
#define END_TABULAR "</lyxtabular>\n\\end_inset\n\\end_layout\n"
|
||||||
|
|
||||||
|
|
||||||
|
#endif
|
Loading…
Reference in New Issue