%alltop{
/*
- * upkg: tool for manipulating Unreal Tournament packages.
- * Copyright © 2009-2011 Nick Bowler
+ * upkg: tool for manipulating Unreal Tournament packages.
+ * Copyright © 2009-2012, 2020, 2022 Nick Bowler
*
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
*
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
*
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
%}
+%ctop{
+#include <config.h>
+%}
+
%{
#include <stdio.h>
#include <stdlib.h>
#include <uobject/loadable.h>
#include <uobject/exportable.h>
#include <engine/palette.h>
-#include "pack.h"
-#include "pcx.h"
+#include <engine/pcx.h>
+#include <pack.h>
%}
%h{
unsigned long width, height;
unsigned long datalen;
- unsigned char data[];
+ unsigned char data[FLEXIBLE_ARRAY_MEMBER];
};
%}
long datalen;
buflen = upkg_export_read(f, buf, sizeof buf);
- if (uo->pkg->version >= 63) {
+ if (f->pkg->version >= 63) {
/*
* There's an offset to the end of the image data here; not
* clear why it's useful since it's implied by the very next
/* At this point, the current file offset should match the one recorded
* above. */
- if (uo->pkg->version >= 63 && end_offset != (f->base + f->offset)) {
+ if (f->pkg->version >= 63 && end_offset != (f->base + f->offset)) {
u_err(uo, "mipmap end offset does not match data size");
goto err_free;
}
private unsigned VClamp;
private unsigned VBits;
- private Engine:Palette *Palette;
+ private float DrawScale;
+
+ private Engine:Palette *Palette = NULL destroywith g_object_unref;
+ private Engine:Texture *DetailTexture = NULL destroywith g_object_unref;
private struct engine_texture_data **mipmap_data;
private unsigned char mipmap_count;
, link
);
+ property FLOAT DrawScale
+ ( nick = "Draw Scale"
+ , blurb = "Relative size to parent surface"
+ , link
+ );
+
property OBJECT Palette
( nick = "Palette"
, blurb = "Reference to the texture's palette."
, object_type = Engine:Palette
, link
);
+
+ property OBJECT DetailTexture
+ ( nick = "Detail Texture"
+ , blurb = "Reference to the corresponding detail texture."
+ , object_type = Engine:Texture
+ , link
+ );
}