Author: ansgar-guest
Date: 2008-03-23 20:27:19 +0000 (Sun, 23 Mar 2008)
New Revision: 6280

Added:
   packages/trunk/simutrans/debian/patches/makeobj-endianness
Modified:
   packages/trunk/simutrans/debian/changelog
   packages/trunk/simutrans/debian/patches/series
   packages/trunk/simutrans/debian/rules
Log:
began work on endianness patch

Modified: packages/trunk/simutrans/debian/changelog
===================================================================
--- packages/trunk/simutrans/debian/changelog   2008-03-23 13:10:44 UTC (rev 
6279)
+++ packages/trunk/simutrans/debian/changelog   2008-03-23 20:27:19 UTC (rev 
6280)
@@ -1,3 +1,11 @@
+simutrans (99.18~0.svn1664-3) UNRELEASED; urgency=low
+
+  * makeobj should work on big-endian archs (Closes: #472326)
+    + new patch: makeobj-endianness
+    + NOT FINISHED YET
+
+ -- Ansgar Burchardt <[EMAIL PROTECTED]>  Sun, 23 Mar 2008 21:15:39 +0100
+
 simutrans (99.18~0.svn1664-2) unstable; urgency=low
 
   * Fix segfault on startup (Closes: #471244)

Added: packages/trunk/simutrans/debian/patches/makeobj-endianness
===================================================================
--- packages/trunk/simutrans/debian/patches/makeobj-endianness                  
        (rev 0)
+++ packages/trunk/simutrans/debian/patches/makeobj-endianness  2008-03-23 
20:27:19 UTC (rev 6280)
@@ -0,0 +1,1025 @@
+fix makeobj on big-endian architectures
+
+makeobj assumes a little-endian architecture, the files it generates on
+big-endian architectures are unusable.
+
+While at it, remove the following warnings:
+../besch/writer/way_obj_writer.cc:21:
+    warning: deprecated conversion from string constant to ‘char*’
+../besch/writer/way_writer.cc:21:
+    warning: deprecated conversion from string constant to ‘char*’
+
+
+TODO:
+ * image nodes still broken
+ * make patch less ugly
+ * copy, uncopy (see calls to fwrite in root_writer.cc)
+
+Index: simutrans-99.18~0.svn1664/besch/writer/bridge_writer.cc
+===================================================================
+--- simutrans-99.18~0.svn1664.orig/besch/writer/bridge_writer.cc
++++ simutrans-99.18~0.svn1664/besch/writer/bridge_writer.cc
+@@ -20,7 +20,7 @@
+       uint32 maintenance   = obj.get_int("maintenance", 1000);
+       uint8  pillars_every = obj.get_int("pillar_distance",0); // distance==0 
is off
+       uint8  pillar_asymmetric = obj.get_int("pillar_asymmetric",0); // 
middle of tile
+-      uint8  max_lenght    = obj.get_int("max_lenght",0); // max_lenght==0: 
unlimited
++      uint8  max_length    = obj.get_int("max_lenght",0); // max_lenght==0: 
unlimited
+       uint8  max_height    = obj.get_int("max_height",0); // max_height==0: 
unlimited
+ 
+       // prissi: timeline
+@@ -35,17 +35,17 @@
+       // Hajo: Version needs high bit set as trigger -> this is required
+       //       as marker because formerly nodes were unversionend
+       uint16 version = 0x8007;
+-      node.write_data_at(outfp, &version,        0, 2);
+-      node.write_data_at(outfp, &topspeed,       2, 2);
+-      node.write_data_at(outfp, &preis,          4, 4);
+-      node.write_data_at(outfp, &maintenance,    8, 4);
+-      node.write_data_at(outfp, &wegtyp,        12, 1);
+-      node.write_data_at(outfp, &pillars_every, 13, 1);
+-      node.write_data_at(outfp, &max_lenght,    14, 1);
+-      node.write_data_at(outfp, &intro_date,    15, sizeof(uint16));
+-      node.write_data_at(outfp, &obsolete_date, 17, sizeof(uint16));
+-      node.write_data_at(outfp, &pillar_asymmetric, 19, 1);
+-      node.write_data_at(outfp, &max_height,    20, 1);
++      node.write_uint16(outfp, version,            0);
++      node.write_uint16(outfp, topspeed,           2);
++      node.write_uint32(outfp, preis,              4);
++      node.write_uint32(outfp, maintenance,        8);
++      node.write_uint8 (outfp, wegtyp,            12);
++      node.write_uint8 (outfp, pillars_every,     13);
++      node.write_uint8 (outfp, max_length,        14);
++      node.write_uint16(outfp, intro_date,        15);
++      node.write_uint16(outfp, obsolete_date,     17);
++      node.write_uint8 (outfp, pillar_asymmetric, 19);
++      node.write_uint8 (outfp, max_height,        20);
+ 
+       static const char* const names[] = {
+               "image",
+Index: simutrans-99.18~0.svn1664/besch/writer/building_writer.cc
+===================================================================
+--- simutrans-99.18~0.svn1664.orig/besch/writer/building_writer.cc
++++ simutrans-99.18~0.svn1664/besch/writer/building_writer.cc
+@@ -48,16 +48,16 @@
+ 
+       // Hajo: write version data
+       v16 = 0x8002;
+-      node.write_data_at(fp, &v16, 0, sizeof(uint16));
++      node.write_uint16(fp, v16, 0);
+ 
+       v16 = besch.phasen;
+-      node.write_data_at(fp, &v16, 2, sizeof(uint16));
++      node.write_uint16(fp, v16, 2);
+ 
+       v16 = besch.index;
+-      node.write_data_at(fp, &v16, 4, sizeof(uint16));
++      node.write_uint16(fp, v16, 4);
+ 
+       uint8 uv8 = besch.seasons;
+-      node.write_data_at(fp, &uv8, 6, sizeof(uint8));
++      node.write_uint8(fp, uv8, 6);
+ 
+       node.write(fp);
+ }
+@@ -272,61 +272,24 @@
+               }
+       }
+ 
+-      // Hajo: old code
+-      // node.write_data(fp, &besch);
+-
+-      // Hajo: temp vars of appropriate size
+-      uint32 v32;
+-      uint16 v16;
+-      uint8  v8;
+-
+       // Hajo: write version data
+-      v16 = 0x8005;
+-      node.write_data_at(fp, &v16, 0, sizeof(uint16));
++      node.write_uint16(fp, 0x8005,                           0);
+ 
+       // Hajo: write besch data
+-
+-      v8 = (uint8) besch.gtyp;
+-      node.write_data_at(fp, &v8, 2, sizeof(uint8));
+-
+-      v8 = (uint8)besch.utype;
+-      node.write_data_at(fp, &v8, 3, sizeof(uint8));
+-
+-      v16 = (uint16)besch.level;
+-      node.write_data_at(fp, &v16, 4, sizeof(uint16));
+-
+-      v32 = (uint32)besch.bauzeit;
+-      node.write_data_at(fp, &v32, 6, sizeof(uint32));
+-
+-      v16 = besch.groesse.x;
+-      node.write_data_at(fp, &v16, 10, sizeof(uint16));
+-
+-      v16 = besch.groesse.y;
+-      node.write_data_at(fp, &v16, 12, sizeof(uint16));
+-
+-      v8 = (uint8)besch.layouts;
+-      node.write_data_at(fp, &v8, 14, sizeof(uint8));
+-
+-      v16 = (uint16)besch.allowed_climates;
+-      node.write_data_at(fp, &v16, 15, sizeof(uint16));
+-
+-      v8 = (uint8)besch.enables;
+-      node.write_data_at(fp, &v8, 17, sizeof(uint8));
+-
+-      v8 = (uint8)besch.flags;
+-      node.write_data_at(fp, &v8, 18, sizeof(uint8));
+-
+-      v8 = (uint8)besch.chance;
+-      node.write_data_at(fp, &v8, 19, sizeof(uint8));
+-
+-      v16 = besch.intro_date;
+-      node.write_data_at(fp, &v16, 20, sizeof(uint16));
+-
+-      v16 = besch.obsolete_date;
+-      node.write_data_at(fp, &v16, 22, sizeof(uint16));
+-
+-      v16 = besch.animation_time;
+-      node.write_data_at(fp, &v16, 24, sizeof(uint16));
++      node.write_uint8 (fp, (uint8) besch.gtyp,               2);
++      node.write_uint8 (fp, (uint8) besch.utype,              3);
++      node.write_uint16(fp, (uint16) besch.level,             4);
++      node.write_uint32(fp, (uint32) besch.bauzeit,           6);
++      node.write_uint16(fp, besch.groesse.x,                 10);
++      node.write_uint16(fp, besch.groesse.y,                 12);
++      node.write_uint8 (fp, (uint8) besch.layouts,           14);
++      node.write_uint16(fp, (uint16) besch.allowed_climates, 15);
++      node.write_uint8 (fp, (uint8) besch.enables,           17);
++      node.write_uint8 (fp, (uint8) besch.flags,             18);
++      node.write_uint8 (fp, (uint8) besch.chance,            19);
++      node.write_uint16(fp, besch.intro_date,                20);
++      node.write_uint16(fp, besch.obsolete_date,             22);
++      node.write_uint16(fp, besch.animation_time,            24);
+ 
+       // probably add some icons, if defined
+       slist_tpl<cstring_t> cursorkeys;
+Index: simutrans-99.18~0.svn1664/besch/writer/citycar_writer.cc
+===================================================================
+--- simutrans-99.18~0.svn1664.orig/besch/writer/citycar_writer.cc
++++ simutrans-99.18~0.svn1664/besch/writer/citycar_writer.cc
+@@ -25,20 +25,11 @@
+       besch.geschw  = obj.get_int("speed", 80) * 16;
+ 
+       // new version with intro and obsolete dates
+-      uint16 data = 0x8002;
+-      node.write_data_at(fp, &data, 0, sizeof(uint16));
+-
+-      data = (uint16)besch.gewichtung;
+-      node.write_data_at(fp, &data, 2, sizeof(uint16));
+-
+-      data = (uint16)besch.geschw;
+-      node.write_data_at(fp, &data, 4, sizeof(uint16));
+-
+-      data = besch.intro_date;
+-      node.write_data_at(fp, &data, 6, sizeof(uint16));
+-
+-      data = besch.obsolete_date;
+-      node.write_data_at(fp, &data, 8, sizeof(uint16));
++      node.write_uint16(fp, 0x8002,                    0); // version 
information
++      node.write_uint16(fp, (uint16) besch.gewichtung, 2);
++      node.write_uint16(fp, (uint16) besch.geschw,     4);
++      node.write_uint16(fp, besch.intro_date,          6);
++      node.write_uint16(fp, besch.obsolete_date,       8);
+ 
+       write_head(fp, node, obj);
+ 
+Index: simutrans-99.18~0.svn1664/besch/writer/crossing_writer.cc
+===================================================================
+--- simutrans-99.18~0.svn1664.orig/besch/writer/crossing_writer.cc
++++ simutrans-99.18~0.svn1664/besch/writer/crossing_writer.cc
+@@ -45,7 +45,7 @@
+       // Hajo: Version needs high bit set as trigger -> this is required
+       //       as marker because formerly nodes were unversionend
+       uint16 uv16 = 0x8001;
+-      node.write_data_at(fp, &uv16, 0, sizeof(uint16));
++      node.write_uint16(fp, 0x8001, 0);
+ 
+       // waytypes, waytype 2 will be on top
+       uint8 wegtyp1 = get_waytype(obj.get("waytype[0]"));
+@@ -54,8 +54,8 @@
+               printf("*** FATAL ***:\nIdentical ways cannot cross (check 
waytypes)!\n");
+               exit(0);
+       }
+-      node.write_data_at(fp, &wegtyp1, 2, sizeof(uint8));
+-      node.write_data_at(fp, &wegtyp2, 3, sizeof(uint8));
++      node.write_uint8(fp, wegtyp1, 2);
++      node.write_uint8(fp, wegtyp2, 3);
+ 
+       // Top speed of this way
+       uv16 = obj.get_int("speed[0]", 0);
+@@ -63,21 +63,21 @@
+               printf("*** FATAL ***:\nA maxspeed MUST be given for both 
ways!\n");
+               exit(0);
+       }
+-      node.write_data_at(fp, &uv16, 4, sizeof(uint16));
++      node.write_uint16(fp, uv16, 4);
+       uv16 = obj.get_int("speed[1]", 0);
+       if(uv16==0) {
+               printf("*** FATAL ***:\nA maxspeed MUST be given for both 
ways!\n");
+               exit(0);
+       }
+-      node.write_data_at(fp, &uv16, 6, sizeof(uint16));
++      node.write_uint16(fp, uv16, 6);
+ 
+       // time between frames for animation
+       uint32 uv32 = obj.get_int("animation_time_open", 0);
+-      node.write_data_at(fp, &uv32, 8, sizeof(sint32));
++      node.write_uint32(fp, uv32, 8);
+       uv32 = obj.get_int("animation_time_closed", 0);
+-      node.write_data_at(fp, &uv32, 12, sizeof(sint32));
++      node.write_uint32(fp, uv32, 12);
+ 
+-      node.write_data_at(fp, &sound_id, 16, sizeof(uint8));
++      node.write_uint8(fp, sound_id, 16);
+ 
+       if(sound_str.len() > 0) {
+               sint8 sv8 = sound_str.len();
+Index: simutrans-99.18~0.svn1664/besch/writer/factory_writer.cc
+===================================================================
+--- simutrans-99.18~0.svn1664.orig/besch/writer/factory_writer.cc
++++ simutrans-99.18~0.svn1664/besch/writer/factory_writer.cc
+@@ -23,23 +23,12 @@
+       besch.max_fields = obj.get_int("max_fields", 25);
+       besch.min_fields = obj.get_int("min_fields", 5);
+ 
+-      uint16 data = 0x8001;   // version
+-      node.write_data_at(outfp, &data, 0, sizeof(uint16));
+-
+-      uint8 v8 = besch.has_winter;
+-      node.write_data_at(outfp, &v8, 2, sizeof(uint8));
+-
+-      data = besch.probability;
+-      node.write_data_at(outfp, &data, 3, sizeof(uint16));
+-
+-      data = besch.production_per_field;
+-      node.write_data_at(outfp, &data, 5, sizeof(uint16));
+-
+-      data = besch.max_fields;
+-      node.write_data_at(outfp, &data, 7, sizeof(uint16));
+-
+-      data = besch.min_fields;
+-      node.write_data_at(outfp, &data, 9, sizeof(uint16));
++      node.write_uint16(outfp, 0x8001,                     0); // version
++      node.write_uint8 (outfp, besch.has_winter,           2);
++      node.write_uint16(outfp, besch.probability,          3);
++      node.write_uint16(outfp, besch.production_per_field, 5);
++      node.write_uint16(outfp, besch.max_fields,           7);
++      node.write_uint16(outfp, besch.min_fields,           9);
+ 
+       node.write(outfp);
+ }
+@@ -71,14 +60,10 @@
+       // Hajo: Version needs high bit set as trigger -> this is required
+       //       as marker because formerly nodes were unversionend
+       // new version 2: pax-level added
+-      uint16 data = 0x8001;
+-      node.write_data_at(outfp, &data, 0, sizeof(uint16));
+-
+-      data = capacity;
+-      node.write_data_at(outfp, &data, 2, sizeof(uint16));
++      node.write_uint16(outfp, 0x8001,   0);
+ 
+-      data = factor;
+-      node.write_data_at(outfp, &data, 4, sizeof(uint16));
++      node.write_uint16(outfp, capacity, 2);
++      node.write_uint16(outfp, factor,   4);
+ 
+       node.write(outfp);
+ }
+@@ -178,36 +163,17 @@
+       }
+ 
+       // new version with pax_level
+-      uint16 data = 0x8002;
+-      uint8 data8;
+-      node.write_data_at(fp, &data, 0, sizeof(uint16));
+-
+-      data = (uint16)besch.platzierung;
+-      node.write_data_at(fp, &data, 2, sizeof(uint16));
+-
+-      data = besch.produktivitaet;
+-      node.write_data_at(fp, &data, 4, sizeof(uint16));
+-
+-      data = besch.bereich;
+-      node.write_data_at(fp, &data, 6, sizeof(uint16));
+-
+-      data = besch.gewichtung;
+-      node.write_data_at(fp, &data, 8, sizeof(uint16));
+-
+-      data8 = besch.kennfarbe;
+-      node.write_data_at(fp, &data8, 10, sizeof(uint8));
+-
+-      data8 = besch.fields;
+-      node.write_data_at(fp, &data8, 11, sizeof(uint8));
+-
+-      data = besch.lieferanten;
+-      node.write_data_at(fp, &data, 12, sizeof(uint16));
+-
+-      data = besch.produkte;
+-      node.write_data_at(fp, &data, 14, sizeof(uint16));
++      node.write_uint16(fp, 0x8002,                      0); // version
+ 
+-      data = besch.pax_level;
+-      node.write_data_at(fp, &data, 16, sizeof(uint16));
++      node.write_uint16(fp, (uint16) besch.platzierung,  2);
++      node.write_uint16(fp, besch.produktivitaet,        4);
++      node.write_uint16(fp, besch.bereich,               6);
++      node.write_uint16(fp, besch.gewichtung,            8);
++      node.write_uint8 (fp, besch.kennfarbe,            10);
++      node.write_uint8 (fp, besch.fields,               11);
++      node.write_uint16(fp, besch.lieferanten,          12);
++      node.write_uint16(fp, besch.produkte,             14);
++      node.write_uint16(fp, besch.pax_level,            16);
+ 
+       node.write(fp);
+ }
+Index: simutrans-99.18~0.svn1664/besch/writer/good_writer.cc
+===================================================================
+--- simutrans-99.18~0.svn1664.orig/besch/writer/good_writer.cc
++++ simutrans-99.18~0.svn1664/besch/writer/good_writer.cc
+@@ -20,23 +20,22 @@
+       // Hajo: version number
+       // Hajo: Version needs high bit set as trigger -> this is required
+       //       as marker because formerly nodes were unversionend
+-      value = 0x8003;
+-      node.write_data_at(fp, &value, 0, sizeof(uint16));
++      node.write_uint16(fp, 0x8003, 0);
+ 
+       value = obj.get_int("value", 0);
+-      node.write_data_at(fp, &value, 2, sizeof(uint16));
++      node.write_uint16(fp, value,  2);
+ 
+       val8 = obj.get_int("catg", 0);
+-      node.write_data_at(fp, &val8, 4, sizeof(uint8));
++      node.write_uint8 (fp, val8,   4);
+ 
+       value = obj.get_int("speed_bonus", 0);
+-      node.write_data_at(fp, &value, 5, sizeof(uint16));
++      node.write_uint16(fp, value,  5);
+ 
+       value = obj.get_int("weight_per_unit", 100);
+-      node.write_data_at(fp, &value, 7, sizeof(uint16));
++      node.write_uint16(fp, value,  7);
+ 
+       val8 = obj.get_int("mapcolor", 255);
+-      node.write_data_at(fp, &val8, 9, sizeof(uint8));
++      node.write_uint8 (fp, val8,   9);
+ 
+       node.write(fp);
+ }
+Index: simutrans-99.18~0.svn1664/besch/writer/groundobj_writer.cc
+===================================================================
+--- simutrans-99.18~0.svn1664.orig/besch/writer/groundobj_writer.cc
++++ simutrans-99.18~0.svn1664/besch/writer/groundobj_writer.cc
+@@ -97,35 +97,16 @@
+ finish_images:
+       imagelist2d_writer_t::instance()->write_obj(fp, node, keys);
+ 
+-      // Hajo: temp vars of appropriate size
+-      sint32 s32;
+-      uint16 v16;
+-      uint8 v8;
+-
+       // Hajo: write version data
+-      v16 = 0x8001;
+-      node.write_data_at(fp, &v16, 0, sizeof(uint16));
+-
+-      v16 = (uint16) besch.allowed_climates;
+-      node.write_data_at(fp, &v16, 2, sizeof(uint16));
+-
+-      v16 = (uint16)besch.distribution_weight;
+-      node.write_data_at(fp, &v16, 4, sizeof(uint16));
+-
+-      v8 = (uint8) besch.number_of_seasons;
+-      node.write_data_at(fp, &v8, 6, sizeof(uint8));
+-
+-      v8 = (uint8) besch.trees_on_top;
+-      node.write_data_at(fp, &v8, 7, sizeof(uint8));
+-
+-      v16 = (uint16) besch.speed;
+-      node.write_data_at(fp, &v16, 8, sizeof(uint16));
+-
+-      v16 = (uint16)besch.waytype;
+-      node.write_data_at(fp, &v16, 10, sizeof(uint16));
++      node.write_uint16(fp, 0x8001,                              0);
+ 
+-      s32 = (sint32)besch.cost_removal;
+-      node.write_data_at(fp, &s32, 12, sizeof(sint32));
++      node.write_uint16(fp, (uint16) besch.allowed_climates,     2);
++      node.write_uint16(fp, (uint16) besch.distribution_weight,  4);
++      node.write_uint8 (fp, (uint8)  besch.number_of_seasons,    6);
++      node.write_uint8 (fp, (uint8)  besch.trees_on_top,         7);
++      node.write_uint16(fp, (uint16) besch.speed,                8);
++      node.write_uint16(fp, (uint16) besch.waytype,             10);
++      node.write_sint32(fp, (sint32) besch.cost_removal,        12);
+ 
+       node.write(fp);
+ }
+Index: simutrans-99.18~0.svn1664/besch/writer/image_writer.cc
+===================================================================
+--- simutrans-99.18~0.svn1664.orig/besch/writer/image_writer.cc
++++ simutrans-99.18~0.svn1664/besch/writer/image_writer.cc
+@@ -323,16 +323,14 @@
+       obj_node_t node(this, 12 + (bild.len * sizeof(uint16)), &parent, false);
+ 
+       // to avoid any problems due to structure changes, we write manually 
the data
+-      node.write_data_at(outfp, &bild.x, 0, sizeof(uint8));
+-      node.write_data_at(outfp, &bild.w, 1, sizeof(uint8));
+-      node.write_data_at(outfp, &bild.y, 2, sizeof(uint8));
+-      node.write_data_at(outfp, &bild.h, 3, sizeof(uint8));
+-      node.write_data_at(outfp, &bild.len, 4, sizeof(uint32));
+-      uint16 dummy16=0;
+-      node.write_data_at(outfp, &dummy16, 8, sizeof(uint16));
+-      node.write_data_at(outfp, &bild.zoomable, 10, sizeof(uint8));
+-      uint8 dummy8=0;
+-      node.write_data_at(outfp, &dummy8, 11, sizeof(uint8));
++      node.write_uint8 (outfp, bild.x,         0);
++      node.write_uint8 (outfp, bild.w,         1);
++      node.write_uint8 (outfp, bild.y,         2);
++      node.write_uint8 (outfp, bild.h,         3);
++      node.write_uint32(outfp, bild.len,       4);
++      node.write_uint16(outfp, 0,              8);
++      node.write_uint8 (outfp, bild.zoomable, 10);
++      node.write_uint8 (outfp, 0,             11);
+ 
+       if (bild.len) {
+               // only called, if there is something to store
+@@ -344,14 +342,13 @@
+       obj_node_t node(this, 10 + (bild.len * sizeof(uint16)), &parent, false);
+ 
+       // to avoid any problems due to structure changes, we write manually 
the data
+-      node.write_data_at(outfp, &bild.x, 0, sizeof(uint16));
+-      node.write_data_at(outfp, &bild.y, 2, sizeof(uint16));
+-      node.write_data_at(outfp, &bild.w, 4, sizeof(uint8));
+-      node.write_data_at(outfp, &bild.h, 5, sizeof(uint8));
+-      uint8 version=1;
+-      node.write_data_at(outfp, &version, 6, sizeof(uint8));
+-      node.write_data_at(outfp, &bild.len, 7, sizeof(uint16));
+-      node.write_data_at(outfp, &bild.zoomable, 9, sizeof(uint8));
++      node.write_uint16(outfp, bild.x,        0);
++      node.write_uint16(outfp, bild.y,        2);
++      node.write_uint8 (outfp, bild.w,        4);
++      node.write_uint8 (outfp, bild.h,        5);
++      node.write_uint8 (outfp, 1,             6); // version
++      node.write_uint16(outfp, bild.len,      7);
++      node.write_uint8 (outfp, bild.zoomable, 9);
+ 
+       if (bild.len) {
+               // only called, if there is something to store
+Index: simutrans-99.18~0.svn1664/besch/writer/imagelist2d_writer.cc
+===================================================================
+--- simutrans-99.18~0.svn1664.orig/besch/writer/imagelist2d_writer.cc
++++ simutrans-99.18~0.svn1664/besch/writer/imagelist2d_writer.cc
+@@ -19,8 +19,7 @@
+       while (iter.next()) {
+               imagelist_writer_t::instance()->write_obj(fp, node, 
iter.get_current());
+       }
+-      node.write_data_at(fp, &besch.anzahl, 0, sizeof(uint16));
+-      uint16 dummy16 = 0;
+-      node.write_data_at(fp, &dummy16, 2, sizeof(uint16));
++      node.write_uint16(fp, besch.anzahl, 0);
++      node.write_uint16(fp, 0,            2);
+       node.write(fp);
+ }
+Index: simutrans-99.18~0.svn1664/besch/writer/imagelist_writer.cc
+===================================================================
+--- simutrans-99.18~0.svn1664.orig/besch/writer/imagelist_writer.cc
++++ simutrans-99.18~0.svn1664/besch/writer/imagelist_writer.cc
+@@ -29,8 +29,7 @@
+       }
+       besch.anzahl = count;//keys.count();
+ 
+-      node.write_data_at(fp, &besch.anzahl, 0, sizeof(uint16));
+-      uint16 dummy16 = 0;
+-      node.write_data_at(fp, &dummy16, 2, sizeof(uint16));
++      node.write_uint16(fp, besch.anzahl, 0);
++      node.write_uint16(fp, 0,            2);
+       node.write(fp);
+ }
+Index: simutrans-99.18~0.svn1664/besch/writer/obj_node.cc
+===================================================================
+--- simutrans-99.18~0.svn1664.orig/besch/writer/obj_node.cc
++++ simutrans-99.18~0.svn1664/besch/writer/obj_node.cc
+@@ -24,7 +24,13 @@
+ void obj_node_t::write(FILE* fp)
+ {
+       fseek(fp, write_offset - sizeof(desc), SEEK_SET);
+-      fwrite(&desc, sizeof(desc), 1, fp);
++
++        uint32 type = endian_uint32(&desc.type);
++        uint16 children = endian_uint16(&desc.children);
++        uint16 size = endian_uint16(&desc.size);
++      fwrite(&type, 4, 1, fp);
++      fwrite(&children, 2, 1, fp);
++      fwrite(&size, 2, 1, fp);
+       if (parent) {
+               parent->desc.children++;
+       }
+@@ -56,3 +62,21 @@
+       fseek(fp, write_offset + offset, SEEK_SET);
+       fwrite(data, size, 1, fp);
+ }
++
++void obj_node_t::write_uint8(FILE* fp, uint8 data, int offset)
++{
++      this->write_data_at(fp, &data, offset, 1);
++}
++
++void obj_node_t::write_uint16(FILE* fp, uint16 data, int offset)
++{
++      uint16 data2 = endian_uint16(&data);
++      this->write_data_at(fp, &data2, offset, 2);
++}
++
++void obj_node_t::write_uint32(FILE* fp, uint32 data, int offset)
++{
++      uint32 data2 = endian_uint32(&data);
++      this->write_data_at(fp, &data2, offset, 4);
++}
++
+Index: simutrans-99.18~0.svn1664/besch/writer/obj_node.h
+===================================================================
+--- simutrans-99.18~0.svn1664.orig/besch/writer/obj_node.h
++++ simutrans-99.18~0.svn1664/besch/writer/obj_node.h
+@@ -37,6 +37,20 @@
+               // Throws obj_pak_exception_t
+               void write_data_at(FILE* fp, const void* data, int offset, int 
size);
+ 
++              void write_uint8(FILE* fp, uint8 data, int offset);
++              void write_uint16(FILE* fp, uint16 data, int offset);
++              void write_uint32(FILE* fp, uint32 data, int offset);
++
++              void write_sint8(FILE* fp, sint8 data, int offset) {
++                      this->write_uint8(fp, (uint8) data, offset);
++              }
++              void write_sint16(FILE* fp, sint16 data, int offset) {
++                      this->write_uint16(fp, (uint16) data, offset);
++              }
++              void write_sint32(FILE* fp, sint32 data, int offset) {
++                      this->write_uint32(fp, (sint32) data, offset);
++              }
++
+               // Write the internal node info to the file
+               // DO THIS AFTER ALL CHILD NODES ARE WRITTEN !!!
+               void write(FILE* fp);
+Index: simutrans-99.18~0.svn1664/besch/writer/roadsign_writer.cc
+===================================================================
+--- simutrans-99.18~0.svn1664.orig/besch/writer/roadsign_writer.cc
++++ simutrans-99.18~0.svn1664/besch/writer/roadsign_writer.cc
+@@ -29,34 +29,21 @@
+               (obj.get_int("end_of_choose", 0) > 0) * 128;
+       besch.wtyp =  get_waytype(obj.get("waytype"));
+ 
+-      // Hajo: temp vars of appropriate size
+-      uint32 v32;
+-      uint16 v16;
+-      uint8 v8;
+-
+       // Hajo: write version data
+-      v16 = 0x8003;
+-      node.write_data_at(fp, &v16, 0, sizeof(uint16));
+-
+-      v16 = (uint16) besch.min_speed;
+-      node.write_data_at(fp, &v16, 2, sizeof(uint16));
+-
+-      v32 = (uint32) besch.cost;
+-      node.write_data_at(fp, &v32, 4, sizeof(uint32));
+-
+-      v8 = (uint8)besch.flags;
+-      node.write_data_at(fp, &v8, 8, sizeof(uint8));
++      node.write_uint16(fp, 0x8003,                    0);
+ 
+-      v8 = (uint8)besch.wtyp;
+-      node.write_data_at(fp, &v8, 9, sizeof(uint8));
++      node.write_uint16(fp, (uint16) besch.min_speed,  2);
++      node.write_uint32(fp, (uint32) besch.cost,       4);
++      node.write_uint8 (fp, (uint8)  besch.flags,      8);
++      node.write_uint8 (fp, (uint8)  besch.wtyp,       9);
+ 
+       uint16 intro  = obj.get_int("intro_year", DEFAULT_INTRO_DATE) * 12;
+       intro += obj.get_int("intro_month", 1) - 1;
+-      node.write_data_at(fp, &intro, 10, sizeof(uint16));
++      node.write_uint16(fp,          intro,           10);
+ 
+       uint16 retire  = obj.get_int("retire_year", DEFAULT_RETIRE_DATE) * 12;
+       retire += obj.get_int("retire_month", 1) - 1;
+-      node.write_data_at(fp, &retire, 12, sizeof(uint16));
++      node.write_uint16(fp,          retire,          12);
+ 
+       write_head(fp, node, obj);
+ 
+Index: simutrans-99.18~0.svn1664/besch/writer/sound_writer.cc
+===================================================================
+--- simutrans-99.18~0.svn1664.orig/besch/writer/sound_writer.cc
++++ simutrans-99.18~0.svn1664/besch/writer/sound_writer.cc
+@@ -15,10 +15,10 @@
+       // Hajo: Version needs high bit set as trigger -> this is required
+       //       as marker because formerly nodes were unversionend
+       uint16 uv16 = 0x8001;
+-      node.write_data_at(fp, &uv16, 0, sizeof(uint16));
++      node.write_uint16(fp, uv16, 0);
+ 
+       uv16 = obj.get_int("sound_nr", NO_SOUND);       // for compatibility 
reasons; the old nr of a sound
+-      node.write_data_at(fp, &uv16, 2, sizeof(uint16));
++      node.write_uint16(fp, uv16, 2);
+ 
+       node.write(fp);
+ }
+Index: simutrans-99.18~0.svn1664/besch/writer/tree_writer.cc
+===================================================================
+--- simutrans-99.18~0.svn1664.orig/besch/writer/tree_writer.cc
++++ simutrans-99.18~0.svn1664/besch/writer/tree_writer.cc
+@@ -53,22 +53,12 @@
+       }
+       imagelist2d_writer_t::instance()->write_obj(fp, node, keys);
+ 
+-      // Hajo: temp vars of appropriate size
+-      uint16 v16;
+-      uint8 v8;
+-
+       // Hajo: write version data
+-      v16 = 0x8002;
+-      node.write_data_at(fp, &v16, 0, sizeof(uint16));
+-
+-      v16 = (uint16) besch.allowed_climates;
+-      node.write_data_at(fp, &v16, 2, sizeof(uint16));
+-
+-      v8 = (uint8)besch.distribution_weight;
+-      node.write_data_at(fp, &v8, 4, sizeof(uint8));
++      node.write_uint16(fp, 0x8002,                             0);
+ 
+-      v8 = (uint8) besch.number_of_seasons;
+-      node.write_data_at(fp, &v8, 5, sizeof(uint8));
++      node.write_uint16(fp, (uint16) besch.allowed_climates,    2);
++      node.write_uint8 (fp, (uint8)  besch.distribution_weight, 4);
++      node.write_uint8 (fp, (uint8)  besch.number_of_seasons,   5);
+ 
+       node.write(fp);
+ }
+Index: simutrans-99.18~0.svn1664/besch/writer/tunnel_writer.cc
+===================================================================
+--- simutrans-99.18~0.svn1664.orig/besch/writer/tunnel_writer.cc
++++ simutrans-99.18~0.svn1664/besch/writer/tunnel_writer.cc
+@@ -31,13 +31,13 @@
+       // Version uses always high bit set as trigger
+       // version 2: snow images
+       uint16 version = 0x8002;
+-      node.write_data_at(fp, &version,        0, 2);
+-      node.write_data_at(fp, &topspeed,       2, sizeof(uint32));
+-      node.write_data_at(fp, &preis,          6, sizeof(uint32));
+-      node.write_data_at(fp, &maintenance,   10, sizeof(uint32));
+-      node.write_data_at(fp, &wegtyp,        14, sizeof(uint8));
+-      node.write_data_at(fp, &intro_date,    15, sizeof(uint16));
+-      node.write_data_at(fp, &obsolete_date, 17, sizeof(uint16));
++      node.write_uint16(fp, version,        0);
++      node.write_uint32(fp, topspeed,       2);
++      node.write_uint32(fp, preis,          6);
++      node.write_uint32(fp, maintenance,   10);
++      node.write_uint8 (fp, wegtyp,        14);
++      node.write_uint16(fp, intro_date,    15);
++      node.write_uint16(fp, obsolete_date, 17);
+ 
+       sint8 number_seasons = 0;
+ 
+@@ -54,7 +54,7 @@
+ 
+       cstring_t str = obj.get(buf);
+       if (strlen(str) == 0) {
+-              node.write_data_at(fp, &number_seasons, 19, sizeof(uint8));
++              node.write_sint8(fp, number_seasons, 19);
+               write_head(fp, node, obj);
+ 
+               for (pos = 0; pos < 2; pos++) {
+@@ -79,7 +79,7 @@
+                               break;
+                       }
+               }
+-              node.write_data_at(fp, &number_seasons, 19, sizeof(uint8));
++              node.write_sint8(fp, number_seasons, 19);
+               write_head(fp, node, obj);
+ 
+               for (uint8 season = 0; season <= number_seasons ; season++) {
+Index: simutrans-99.18~0.svn1664/besch/writer/vehicle_writer.cc
+===================================================================
+--- simutrans-99.18~0.svn1664.orig/besch/writer/vehicle_writer.cc
++++ simutrans-99.18~0.svn1664/besch/writer/vehicle_writer.cc
+@@ -53,10 +53,7 @@
+ void vehicle_writer_t::write_obj(FILE* fp, obj_node_t& parent, tabfileobj_t& 
obj)
+ {
+       int i;
+-      uint32 uv32;
+-      uint16 uv16;
+       uint8  uv8;
+-      sint8  sv8;
+ 
+       int total_len = 31;
+ 
+@@ -87,62 +84,62 @@
+       // Hajo: version number
+       // Hajo: Version needs high bit set as trigger -> this is required
+       //       as marker because formerly nodes were unversionend
+-      uv16 = 0x8008;
+-      node.write_data_at(fp, &uv16, 0, sizeof(uint16));
++      uint16 version = 0x8008;
++      node.write_uint16(fp, version, 0);
+ 
+ 
+       // Hajodoc: Price of this vehicle in cent
+       // Hajoval: int
+-      uv32 = obj.get_int("cost", 0);
+-      node.write_data_at(fp, &uv32, 2, sizeof(uint32));
++      uint32 cost = obj.get_int("cost", 0);
++      node.write_uint32(fp, cost, 2);
+ 
+ 
+       // Hajodoc: Payload of this vehicle
+       // Hajoval: int
+-      uv16 = obj.get_int("payload", 0);
+-      node.write_data_at(fp, &uv16, 6, sizeof(uint16));
++      uint16 payload = obj.get_int("payload", 0);
++      node.write_uint16(fp, payload, 6);
+ 
+ 
+       // Hajodoc: Top speed of this vehicle. Must be greater than 0
+       // Hajoval: int
+-      uv16 = obj.get_int("speed", 0);
+-      node.write_data_at(fp, &uv16, 8, sizeof(uint16));
++      uint16 top_speed = obj.get_int("speed", 0);
++      node.write_uint16(fp, top_speed, 8);
+ 
+ 
+       // Hajodoc: Total weight of this vehicle in tons
+       // Hajoval: int
+-      uv16 = obj.get_int("weight", 0);
+-      node.write_data_at(fp, &uv16, 10, sizeof(uint16));
++      uint16 weight = obj.get_int("weight", 0);
++      node.write_uint16(fp, weight, 10);
+ 
+ 
+       // Hajodoc: Power of this vehicle in KW
+       // Hajoval: int
+-      uv32 = obj.get_int("power", 0);
+-      node.write_data_at(fp, &uv32, 12, sizeof(uint32));
++      uint32 power = obj.get_int("power", 0);
++      node.write_uint32(fp, power, 12);
+ 
+ 
+       // Hajodoc: Running costs, given in cent per square
+       // Hajoval: int
+-      uv16 = obj.get_int("runningcost", 0);
+-      node.write_data_at(fp, &uv16, 16, sizeof(uint16));
++      uint16 runningcost = obj.get_int("runningcost", 0);
++      node.write_uint16(fp, runningcost, 16);
+ 
+ 
+-      // Hajodoc: Introduction date (year * 16 + month)
++      // Hajodoc: Introduction date (year * 12 + month)
+       // Hajoval: int
+-      uv16  = obj.get_int("intro_year", DEFAULT_INTRO_DATE) * 12;
+-      uv16 += obj.get_int("intro_month", 1) - 1;
+-      node.write_data_at(fp, &uv16, 18, sizeof(uint16));
++      uint16 intro  = obj.get_int("intro_year", DEFAULT_INTRO_DATE) * 12;
++      intro += obj.get_int("intro_month", 1) - 1;
++      node.write_uint16(fp, intro, 18);
+ 
+-      // Hajodoc: retire date (year * 16 + month)
++      // Hajodoc: retire date (year * 12 + month)
+       // Hajoval: int
+-      uv16 = obj.get_int("retire_year", DEFAULT_RETIRE_DATE) * 12;
+-      uv16 += obj.get_int("retire_month", 1) - 1;
+-      node.write_data_at(fp, &uv16, 20, sizeof(uint16));
++      uint16 retire = obj.get_int("retire_year", DEFAULT_RETIRE_DATE) * 12;
++      retire += obj.get_int("retire_month", 1) - 1;
++      node.write_uint16(fp, retire, 20);
+ 
+       // Hajodoc: Engine gear (power multiplier)
+       // Hajoval: int
+-      uv16 = (obj.get_int("gear", 100) * 64) / 100;
+-      node.write_data_at(fp, &uv16, 22, sizeof(uint16));
++      uint16 gear = (obj.get_int("gear", 100) * 64) / 100;
++      node.write_uint16(fp, gear, 22);
+ 
+ 
+       // Hajodoc: Type of way this vehicle drives on
+@@ -150,7 +147,7 @@
+       const char* waytype = obj.get("waytype");
+       const char waytype_uint = get_waytype(waytype);
+       uv8 = (waytype_uint == overheadlines_wt ? track_wt : waytype_uint);
+-      node.write_data_at(fp, &uv8, 24, sizeof(uint8));
++      node.write_uint8 (fp, uv8, 24);
+ 
+       // Hajodoc: The freight type
+       // Hajoval: string
+@@ -312,7 +309,7 @@
+               xref_writer_t::instance()->write_obj(fp, node, obj_good, 
freight, false);
+       }
+ 
+-      node.write_data_at(fp, &sound_id, 25, sizeof(sint8));
++      node.write_sint8(fp, sound_id, 25);
+ 
+       if (waytype_uint == overheadlines_wt) {
+               // Hajo: compatibility for old style DAT files
+@@ -321,22 +318,20 @@
+               const char* engine_type = obj.get("engine_type");
+               uv8 = get_engine_type(engine_type, obj);
+       }
+-      node.write_data_at(fp, &uv8, 26, sizeof(uint8));
++      node.write_uint8(fp, uv8, 26);
+ 
+       // the length (default 8)
+-      uv8 = obj.get_int("length", 8);
+-      node.write_data_at(fp, &uv8, 27, sizeof(uint8));
++      uint8 length = obj.get_int("length", 8);
++      node.write_uint8(fp, length, 27);
+ 
+-      node.write_data_at(fp, &besch_vorgaenger, 28, sizeof(sint8));
+-      node.write_data_at(fp, &besch_nachfolger, 29, sizeof(sint8));
+-
+-      uv8 = freight_max;
+-      node.write_data_at(fp, &uv8, 30, sizeof(sint8));
+-
+-      if (sound_str.len() > 0) {
+-              sv8 = sound_str.len();
+-              node.write_data_at(fp, &sv8, 31, sizeof(sint8));
+-              node.write_data_at(fp, sound_str, 32, sound_str.len());
++      node.write_sint8(fp, besch_vorgaenger, 28);
++      node.write_sint8(fp, besch_nachfolger, 29);
++      node.write_uint8(fp, (uint8) freight_max, 30);
++
++      sint8 sound_str_len = sound_str.len();
++      if (sound_str_len > 0) {
++              node.write_sint8  (fp, sound_str_len, 31);
++              node.write_data_at(fp, sound_str,     32, sound_str_len);
+       }
+ 
+       node.write(fp);
+Index: simutrans-99.18~0.svn1664/besch/writer/way_obj_writer.cc
+===================================================================
+--- simutrans-99.18~0.svn1664.orig/besch/writer/way_obj_writer.cc
++++ simutrans-99.18~0.svn1664/besch/writer/way_obj_writer.cc
+@@ -15,7 +15,7 @@
+  */
+ void way_obj_writer_t::write_obj(FILE* outfp, obj_node_t& parent, 
tabfileobj_t& obj)
+ {
+-      static char* const ribi_codes[16] = {
++      static const char* const ribi_codes[16] = {
+               "-", "n",  "e",  "ne",  "s",  "ns",  "se",  "nse",
+               "w", "nw", "ew", "new", "sw", "nsw", "sew", "nsew"
+       };
+@@ -41,14 +41,15 @@
+       uint8 wtyp     =  get_waytype(obj.get("waytype"));
+       uint8 own_wtyp =  get_waytype(obj.get("own_waytype"));
+ 
+-      node.write_data_at(outfp, &version,      0, 2);
+-      node.write_data_at(outfp, &price,        2, 4);
+-      node.write_data_at(outfp, &maintenance,  6, 4);
+-      node.write_data_at(outfp, &topspeed,    10, 4);
+-      node.write_data_at(outfp, &intro,       14, 4);
+-      node.write_data_at(outfp, &retire,      16, 2);
+-      node.write_data_at(outfp, &wtyp,        18, 1);
+-      node.write_data_at(outfp, &own_wtyp,    19, 1);
++      node.write_uint16(outfp, version,      0);
++      node.write_uint32(outfp, price,        2);
++      node.write_uint32(outfp, maintenance,  6);
++      node.write_uint32(outfp, topspeed,    10);
++      // XXX: maybe uint32?  see original code
++      node.write_uint16(outfp, intro,       14);
++      node.write_uint16(outfp, retire,      16);
++      node.write_uint8 (outfp, wtyp,        18);
++      node.write_uint8 (outfp, own_wtyp,    19);
+ 
+       write_head(outfp, node, obj);
+ 
+Index: simutrans-99.18~0.svn1664/besch/writer/way_writer.cc
+===================================================================
+--- simutrans-99.18~0.svn1664.orig/besch/writer/way_writer.cc
++++ simutrans-99.18~0.svn1664/besch/writer/way_writer.cc
+@@ -15,7 +15,7 @@
+  */
+ void way_writer_t::write_obj(FILE* outfp, obj_node_t& parent, tabfileobj_t& 
obj)
+ {
+-      static char* const ribi_codes[16] = {
++      static const char* const ribi_codes[16] = {
+               "-", "n",  "e",  "ne",  "s",  "ns",  "se",  "nse",
+               "w", "nw", "ew", "new", "sw", "nsw", "sew", "nsew"
+       };
+@@ -52,16 +52,21 @@
+       uint8 draw_as_ding = (obj.get_int("draw_as_ding", 0) == 1);
+       sint8 number_seasons = 0;
+ 
+-      node.write_data_at(outfp, &version,       0, 2);
+-      node.write_data_at(outfp, &price,         2, 4);
+-      node.write_data_at(outfp, &maintenance,   6, 4);
+-      node.write_data_at(outfp, &topspeed,     10, 4);
+-      node.write_data_at(outfp, &max_weight,   14, 4);
+-      node.write_data_at(outfp, &intro,        18, 4);
+-      node.write_data_at(outfp, &retire,       20, 2);
+-      node.write_data_at(outfp, &wtyp,         22, 1);
+-      node.write_data_at(outfp, &styp,         23, 1);
+-      node.write_data_at(outfp, &draw_as_ding, 24, 1);
++      node.write_uint16(outfp, version,       0);
++      node.write_uint32(outfp, price,         2);
++      node.write_uint32(outfp, maintenance,   6);
++      node.write_uint32(outfp, topspeed,     10);
++      node.write_uint32(outfp, max_weight,   14);
++      // XXX: confirm weather to write uint32 or uint16
++      // (compare with retire below)
++      // node.write_data_at(outfp, &intro,        18, 4);
++      // node.write_uint32(outfp, intro,        18);
++      node.write_uint16(outfp, intro,        18);
++      // node.write_data_at(outfp, &retire,       20, 2);
++      node.write_uint16(outfp, retire,       20);
++      node.write_uint8 (outfp, wtyp,         22);
++      node.write_uint8 (outfp, styp,         23);
++      node.write_uint8 (outfp, draw_as_ding, 24);
+ 
+       slist_tpl<cstring_t> keys;
+       char buf[40];
+Index: simutrans-99.18~0.svn1664/Makefile
+===================================================================
+--- simutrans-99.18~0.svn1664.orig/Makefile
++++ simutrans-99.18~0.svn1664/Makefile
+@@ -390,4 +390,5 @@
+ 
+ 
+ makeobj_prog:
+-      $(MAKE) -e -C makeobj
++      $(MAKE) -e -C makeobj FLAGS="$(FLAGS)"
++
+Index: simutrans-99.18~0.svn1664/makeobj/Makefile
+===================================================================
+--- simutrans-99.18~0.svn1664.orig/makeobj/Makefile
++++ simutrans-99.18~0.svn1664/makeobj/Makefile
+@@ -15,8 +15,8 @@
+ 
+ ifeq ($(OSTYPE),linux)
+ LDLIBS=-lpng -lstdc++ -lm
+-CFLAGS   = -O
+-CXXFLAGS = -O
++CFLAGS   = -O -W -Wall
++CXXFLAGS = -O -W -Wall
+ endif
+ 
+ ifeq ($(OSTYPE),beos)
+@@ -26,6 +26,10 @@
+ 
+ endif
+ 
++ifdef FLAGS
++  CFLAGS   += $(FLAGS)
++  CXXFLAGS += $(FLAGS)
++endif
+ 
+ SOURCES=makeobj.cc
+ 
+Index: simutrans-99.18~0.svn1664/besch/writer/root_writer.cc
+===================================================================
+--- simutrans-99.18~0.svn1664.orig/besch/writer/root_writer.cc
++++ simutrans-99.18~0.svn1664/besch/writer/root_writer.cc
+@@ -20,6 +20,7 @@
+       );
+ 
+       l = COMPILER_VERSION_CODE;
++        l = endian_uint32(&l);
+       fwrite(&l, 1, sizeof(uint32), fp); // Compiler Version zum Checken
+ 
+       obj_node_t::set_start_offset(ftell(fp));
+@@ -267,7 +268,14 @@
+       root.children = 0;      // we will change this later
+       root.size = 0;
+       root.type = obj_root;
+-      fwrite(&root, sizeof(root), 1, outfp);
++
++        // XXX
++        uint32 type     = endian_uint32(&root.type);
++        uint16 children = endian_uint16(&root.children);
++        uint16 size     = endian_uint16(&root.size);
++        fwrite(&type,     4, 1, outfp);
++        fwrite(&children, 2, 1, outfp);
++        fwrite(&size,     2, 1, outfp);
+ 
+       for(  int i=0;  i<argc;  i++  ) {
+               bool any = false;
+@@ -287,7 +295,15 @@
+               }
+       }
+       fseek(outfp, start, SEEK_SET);
+-      fwrite(&root, sizeof(root), 1, outfp);
++
++        // XXX
++        type     = endian_uint32(&root.type);
++        children = endian_uint16(&root.children);
++        size     = endian_uint16(&root.size);
++        fwrite(&type,     4, 1, outfp);
++        fwrite(&children, 2, 1, outfp);
++        fwrite(&size,     2, 1, outfp);
++
+       fclose(outfp);
+ }
+ 

Modified: packages/trunk/simutrans/debian/patches/series
===================================================================
--- packages/trunk/simutrans/debian/patches/series      2008-03-23 13:10:44 UTC 
(rev 6279)
+++ packages/trunk/simutrans/debian/patches/series      2008-03-23 20:27:19 UTC 
(rev 6280)
@@ -3,3 +3,4 @@
 config.diff
 gcc-4.3-fixes
 fix-stdarg-calls
+makeobj-endianness

Modified: packages/trunk/simutrans/debian/rules
===================================================================
--- packages/trunk/simutrans/debian/rules       2008-03-23 13:10:44 UTC (rev 
6279)
+++ packages/trunk/simutrans/debian/rules       2008-03-23 20:27:19 UTC (rev 
6280)
@@ -24,8 +24,8 @@
        $(MAKE)
        convert simutrans.ico debian/simutrans.xpm
 
-       # try to build makeobj
-       $(MAKE) -C makeobj
+       # build makeobj
+       $(MAKE) makeobj_prog
 
        touch $@
 


_______________________________________________
Pkg-games-commits mailing list
[email protected]
http://lists.alioth.debian.org/mailman/listinfo/pkg-games-commits

Reply via email to