summaryrefslogtreecommitdiff
path: root/obj.c
diff options
context:
space:
mode:
authorrodri <rgl@antares-labs.eu>2024-09-28 11:45:26 +0000
committerrodri <rgl@antares-labs.eu>2024-09-28 11:45:26 +0000
commit545d3c6c2a053007d1a1b032f9e0359d44a9a358 (patch)
treec21f5705c572350efa191b0fe89c09cc1092da3b /obj.c
parent1af782b52c796fd341621b0c9de2dea3a1c7c660 (diff)
download3dee-545d3c6c2a053007d1a1b032f9e0359d44a9a358.tar.gz
3dee-545d3c6c2a053007d1a1b032f9e0359d44a9a358.tar.bz2
3dee-545d3c6c2a053007d1a1b032f9e0359d44a9a358.zip
obj: add more conversion possibilities.HEADmaster
this brings back the < in.obj obj >out.mdl mechanic that's so handy for simpler models where there are no textures.
Diffstat (limited to 'obj.c')
-rw-r--r--obj.c21
1 files changed, 16 insertions, 5 deletions
diff --git a/obj.c b/obj.c
index a2e5936..7095e58 100644
--- a/obj.c
+++ b/obj.c
@@ -325,7 +325,7 @@ readobjmodel(char *path)
static void
usage(void)
{
- fprint(2, "usage: %s objfile dstdir\n", argv0);
+ fprint(2, "usage: %s [objfile [dstdir]]\n", argv0);
exits("usage");
}
@@ -333,17 +333,28 @@ void
threadmain(int argc, char *argv[])
{
Model *m;
+ char *infile, *dstdir;
ARGBEGIN{
default: usage();
}ARGEND;
- if(argc != 2)
+ if(argc > 2)
usage();
- m = readobjmodel(argv[0]);
+ infile = argc > 0? argv[0]: "/fd/0";
+ dstdir = argc == 2? argv[1]: nil;
+
+ m = readobjmodel(infile);
if(m == nil)
sysfatal("readobjmodel: %r");
- if(exportmodel(argv[1], m) < 0)
- sysfatal("exportmodel: %r");
+
+ if(dstdir == nil){
+ if(writemodel(1, m) == 0)
+ sysfatal("writemodel: %r");
+ }else{
+ if(exportmodel(dstdir, m) < 0)
+ sysfatal("exportmodel: %r");
+ }
+
exits(nil);
}