#include <math.h>
#include "../config.h"
#include "../lib/rfxswf.h"
+#include "../lib/drawer.h"
#include "../lib/log.h"
#include "../lib/args.h"
#include "../lib/q.h"
}
void args_callback_usage(char*name)
{
- printf("Usage: %s [-o filename] file.wav\n", name);
+ printf("Usage: %s [-o filename] file.sc\n", name);
printf("\t-v , --verbose\t\t\t Be more verbose\n");
printf("\t-o , --output filename\t\t set output filename (default: output.swf)\n");
printf("\t-V , --version\t\t\t Print program version and exit\n");
outline->bbox = font->layout->bounds[g];
{
- SWFSHAPEDRAWER draw;
- swf_DrawerInit(&draw,0);
+ drawer_t draw;
+ swf_Shape11DrawerInit(&draw, 0);
swf_DrawText(&draw, font, _text);
- swf_DrawerFinish(&draw);
- outline->shape = swf_DrawerToShape(&draw);
- outline->bbox = draw.bbox;
+ draw.finish(&draw);
+ outline->shape = swf_ShapeDrawerToShape(&draw);
+ outline->bbox = swf_ShapeDrawerGetBBox(&draw);
+ draw.dealloc(&draw);
}
if(dictionary_lookup(&outlines, name))
int f;
SWF swf;
SWFFONT* font;
- f = open(filename,O_RDONLY|O_BINARY);
+ font = swf_LoadFont(filename);
+
+ /*f = open(filename,O_RDONLY|O_BINARY);
if (f<0) {
warning("Couldn't open file \"%s\": %s", filename, strerror(errno));
font = (SWFFONT*)malloc(sizeof(SWFFONT));
close(f);
if (font==0) {
syntaxerror("File \"%s\" isn't a valid rfxswf font file", filename);
- }
+ }*/
if(0)
{
dictionary_put2(&gradients, name, gradient);
}
+void s_action(const char*text)
+{
+ ActionTAG* a = 0;
+ a = swf_ActionCompile(text, stack[0].swf->fileVersion);
+
+ tag = swf_InsertTag(tag, ST_DOACTION);
+
+ swf_ActionSet(tag, a);
+
+ swf_ActionFree(a);
+}
+
void s_outline(char*name, char*format, char*source)
{
outline_t* outline;
- SWFSHAPEDRAWER draw;
+ drawer_t draw;
SHAPE* shape;
SHAPE2* shape2;
SRECT bounds;
- swf_DrawerInit(&draw, 0);
- swf_DrawString(&draw, source);
- swf_DrawerFinish(&draw);
- shape = swf_DrawerToShape(&draw);
- shape2 = swf_ShapeToShape2(shape);
- bounds = swf_GetShapeBoundingBox(shape2);
+ swf_Shape11DrawerInit(&draw, 0);
+ draw_string(&draw, source);
+ draw.finish(&draw);
+ shape = swf_ShapeDrawerToShape(&draw);
+ //shape2 = swf_ShapeToShape2(shape);
+ //bounds = swf_GetShapeBoundingBox(shape2);
//swf_Shape2Free(shape2);
+ bounds = swf_ShapeDrawerGetBBox(&draw);
+ draw.dealloc(&draw);
outline = (outline_t*)malloc(sizeof(outline_t));
memset(outline, 0, sizeof(outline_t));
}
static int c_egon(map_t*args) {return fakechar(args);}
-static int c_button(map_t*args) {return fakechar(args);}
+static int c_button(map_t*args) {
+ readToken();
+ if(type != RAWDATA)
+ syntaxerror("colon (:) expected");
+
+ return fakechar(args);
+}
static int c_edittext(map_t*args) {return fakechar(args);}
static int c_morphshape(map_t*args) {return fakechar(args);}
static int c_buttonsounds(map_t*args) {return 0;}
static int c_buttonput(map_t*args) {return 0;}
static int c_texture(map_t*args) {return 0;}
-static int c_action(map_t*args) {return 0;}
+
+static int c_action(map_t*args)
+{
+ readToken();
+ if(type != RAWDATA)
+ syntaxerror("colon (:) expected");
+
+ s_action(text);
+
+ return 0;
+}
static struct {
char*command;
(*arguments[nr].func)(&args);
- if(!strcmp(command, "button") ||
+ /*if(!strcmp(command, "button") ||
!strcmp(command, "action")) {
while(1) {
readToken();
}
}
}
- }
+ }*/
map_clear(&args);
return;