Author: esr
Date: Wed Apr 18 12:55:11 2007
New Revision: 16895

URL: http://svn.gna.org/viewcvs/wesnoth?rev=16895&view=rev
Log:
Back out mog's commit 16648, it caused bug #8739.
Some bits of this commit can and should be saved.

Modified:
    trunk/src/builder.cpp
    trunk/src/terrain_translation.cpp
    trunk/src/terrain_translation.hpp

Modified: trunk/src/builder.cpp
URL: 
http://svn.gna.org/viewcvs/wesnoth/trunk/src/builder.cpp?rev=16895&r1=16894&r2=16895&view=diff
==============================================================================
--- trunk/src/builder.cpp (original)
+++ trunk/src/builder.cpp Wed Apr 18 12:55:11 2007
@@ -545,7 +545,7 @@
 
 void terrain_builder::add_constraints(terrain_builder::constraint_set 
&constraints, const gamemap::location& loc, const config& cfg, const config& 
global_images)
 {
-       add_constraints(constraints, loc, t_translation::t_match(cfg["type"], 
t_translation::WILDCARD), global_images);
+       add_constraints(constraints, loc, t_translation::t_match(cfg["type"]), 
global_images);
 
        terrain_constraint& constraint = constraints[loc];
 
@@ -1009,7 +1009,7 @@
                                if(cons != rule->second.constraints.end()) {
                                        adjacent_types[i] = 
cons->second.terrain_types_match.terrain;
                                } else {
-                                       adjacent_types[i] = 
t_translation::read_list("", -1, t_translation::T_FORMAT_STRING, 
t_translation::WILDCARD);
+                                       adjacent_types[i] = 
t_translation::read_list("", -1, t_translation::T_FORMAT_STRING);
                                }
                        }
 

Modified: trunk/src/terrain_translation.cpp
URL: 
http://svn.gna.org/viewcvs/wesnoth/trunk/src/terrain_translation.cpp?rev=16895&r1=16894&r2=16895&view=diff
==============================================================================
--- trunk/src/terrain_translation.cpp (original)
+++ trunk/src/terrain_translation.cpp Wed Apr 18 12:55:11 2007
@@ -151,23 +151,23 @@
 
 
/***************************************************************************************/
      
 
-const t_letter VOID_TERRAIN = string_to_number_("_s", NO_LAYER);
-const t_letter FOGGED = string_to_number_("_f", NO_LAYER);
-
-const t_letter HUMAN_CASTLE = string_to_number_("Ch", NO_LAYER);
-const t_letter HUMAN_KEEP = string_to_number_("Kh", NO_LAYER);
-const t_letter SHALLOW_WATER = string_to_number_("Ww", NO_LAYER);
-const t_letter DEEP_WATER = string_to_number_("Wo", NO_LAYER);
-const t_letter GRASS_LAND = string_to_number_("Gg", NO_LAYER);
-const t_letter FOREST = string_to_number_("Ff", NO_LAYER);
-const t_letter MOUNTAIN = string_to_number_("Mm", NO_LAYER);
-const t_letter HILL = string_to_number_("Hh", NO_LAYER);
-
-const t_letter CAVE_WALL = string_to_number_("Xu", NO_LAYER);
-const t_letter CAVE = string_to_number_("Uu", NO_LAYER);
-const t_letter UNDERGROUND_VILLAGE = string_to_number_("Vu", NO_LAYER);
-const t_letter DWARVEN_CASTLE = string_to_number_("Cud", NO_LAYER);
-const t_letter DWARVEN_KEEP = string_to_number_("Kud", NO_LAYER);
+const t_letter VOID_TERRAIN = string_to_number_("_s");
+const t_letter FOGGED = string_to_number_("_f");
+
+const t_letter HUMAN_CASTLE = string_to_number_("Ch");
+const t_letter HUMAN_KEEP = string_to_number_("Kh");
+const t_letter SHALLOW_WATER = string_to_number_("Ww");
+const t_letter DEEP_WATER = string_to_number_("Wo");
+const t_letter GRASS_LAND = string_to_number_("Gg");
+const t_letter FOREST = string_to_number_("Ff");
+const t_letter MOUNTAIN = string_to_number_("Mm");
+const t_letter HILL = string_to_number_("Hh");
+
+const t_letter CAVE_WALL = string_to_number_("Xu");
+const t_letter CAVE = string_to_number_("Uu");
+const t_letter UNDERGROUND_VILLAGE = string_to_number_("Vu");
+const t_letter DWARVEN_CASTLE = string_to_number_("Cud");
+const t_letter DWARVEN_KEEP = string_to_number_("Kud");
 
 const t_letter PLUS = string_to_number_("+");
 const t_letter MINUS = string_to_number_("-");
@@ -177,11 +177,7 @@
 
/***************************************************************************************/
      
 
 t_letter::t_letter(const std::string& b) : 
-       base(string_to_layer_(b)), overlay(NO_LAYER)
-{}
-
-t_letter::t_letter(const std::string& b, const t_layer o) : 
-       base(string_to_layer_(b)), overlay(o)
+       base(string_to_layer_(b)), overlay(0xFFFFFFFF)
 {}
 
 t_letter::t_letter(const std::string& b, const std::string& o) : 
@@ -192,8 +188,8 @@
        has_wildcard(false), is_empty(true)
 {}
 
-t_match::t_match(const std::string& str, const t_layer filler):
-       terrain(t_translation::read_list(str, -1, 
t_translation::T_FORMAT_STRING, filler)) 
+t_match::t_match(const std::string& str):
+       terrain(t_translation::read_list(str, -1, 
t_translation::T_FORMAT_STRING)) 
 {
        mask.resize(terrain.size());
        masked_terrain.resize(terrain.size());
@@ -220,12 +216,12 @@
        }
 }
 
-t_letter read_letter(const std::string& str, const int t_format, const t_layer 
filler)
+t_letter read_letter(const std::string& str, const int t_format)
 {
 #ifdef TERRAIN_TRANSLATION_COMPATIBLE 
        if(t_format == T_FORMAT_STRING ||
                        (t_format == T_FORMAT_AUTO && map_format_ == 2)) {
-               return string_to_number_(str, filler);
+               return string_to_number_(str);
                
        } else if(t_format == T_FORMAT_LETTER ||
                        (t_format == T_FORMAT_AUTO && map_format_ == 1)) {
@@ -235,7 +231,7 @@
                throw error("Invalid case in read_letter");
        }
 #else
-               return string_to_number_(str, filler);
+               return string_to_number_(str);
 #endif
 }
 
@@ -244,12 +240,12 @@
        return number_to_string_(letter);
 }
 
-t_list read_list(const std::string& str, const int separated, const int 
t_format, const t_layer filler)
+t_list read_list(const std::string& str, const int separated, const int 
t_format)
 {
 #ifdef TERRAIN_TRANSLATION_COMPATIBLE 
        if(t_format == T_FORMAT_STRING ||
                        (t_format == T_FORMAT_AUTO && map_format_ == 2)) {
-               return string_to_vector_(str, filler);
+               return string_to_vector_(str);
                
        } else if(t_format == T_FORMAT_LETTER ||
                        (t_format == T_FORMAT_AUTO && map_format_ == 1)) {
@@ -259,7 +255,7 @@
                throw error("Invalid case in read_list");
        }
 #else
-               return string_to_vector_(str, filler);
+               return string_to_vector_(str);
 #endif
 }
 
@@ -325,9 +321,8 @@
                const std::string terrain = str.substr(offset, pos_separator - 
offset);
 
                // process the chunk
-               int starting_position = -1;
-               // the gamemap never has a wildcard
-               const t_letter tile = string_to_number_(terrain, 
starting_position, NO_LAYER);
+               int starting_position = -1; 
+               const t_letter tile = string_to_number_(terrain, 
starting_position);
 
                // add to the resulting starting position
                if(starting_position != -1) {
@@ -507,12 +502,12 @@
                        return result;
                }
 
-               if(src_has_wildcard && src.overlay == 0 && itor->overlay == 
NO_LAYER &&
+               if(src_has_wildcard && src.overlay == 0 && itor->overlay == 
0xFFFFFFFF &&
                                 ((itor->base & src_mask.base) == 
masked_src.base )) {
                         return result;
                }
 
-               if(dest_has_wildcard && itor->overlay == 0 && src.overlay == 
NO_LAYER &&
+               if(dest_has_wildcard && itor->overlay == 0 && src.overlay == 
0xFFFFFFFF &&
                                ((src.base & dest_mask.base) == 
masked_dest.base)) {
                        return result;
                }
@@ -580,7 +575,7 @@
                
                // does the source have a wildcard and an empty overlay and the 
destination
                // no overlay, we need to check the part base for a match
-               if(src_has_wildcard && src.overlay == 0 && 
terrain_itor->overlay == NO_LAYER &&
+               if(src_has_wildcard && src.overlay == 0 && 
terrain_itor->overlay == 0xFFFFFFFF &&
                                 ((terrain_itor->base & src_mask.base) == 
masked_src.base )) {
                         return result;
                }
@@ -589,7 +584,7 @@
                // no overlay, we need to check the part base for a match
                // NOTE the has_wildcard(*terrain_itor) is expensive so move 
the test to
                // later in the line
-               if(terrain_itor->overlay == 0 && src.overlay == NO_LAYER && 
has_wildcard(*terrain_itor) &&
+               if(terrain_itor->overlay == 0 && src.overlay == 0xFFFFFFFF && 
has_wildcard(*terrain_itor) &&
                                ((src.base & dest.mask[i].base) == 
dest.masked_terrain[i].base)) {
                        return result;
                }
@@ -602,10 +597,10 @@
 
 bool has_wildcard(const t_letter& letter) 
 {
-       if(letter.overlay == NO_LAYER) {
-               return get_layer_mask_(letter.base) != NO_LAYER;
+       if(letter.overlay == 0xFFFFFFFF) {
+               return get_layer_mask_(letter.base) != 0xFFFFFFFF;
        } else {
-               return get_layer_mask_(letter.base) != NO_LAYER || 
get_layer_mask_(letter.overlay) != NO_LAYER;
+               return get_layer_mask_(letter.base) != 0xFFFFFFFF || 
get_layer_mask_(letter.overlay) != 0xFFFFFFFF;
        }
 }
 
@@ -726,7 +721,7 @@
 static t_list string_to_vector_(const std::string& str, const bool 
convert_eol, const int separated)
 {
        // only used here so define here
-       const t_letter EOL(7, NO_LAYER);
+       const t_letter EOL(7, 0xFFFFFFFF);
        bool last_eol = false;
        t_list result;
 
@@ -883,7 +878,7 @@
                const std::string terrain = str.substr(offset, pos_separator - 
offset);
 
                // process the chunk
-               const t_letter tile = string_to_number_(terrain, filler);
+               const t_letter tile = string_to_number_(terrain);
 
                // add the resulting terrain number
                result.push_back(tile);
@@ -899,7 +894,7 @@
        return result;
 }
 
-inline t_layer get_layer_mask_(t_layer terrain)
+inline Uint32 get_layer_mask_(Uint32 terrain)
 {
        // test for the star 0x2A in every postion and return the
        // appropriate mask
@@ -988,7 +983,7 @@
                const std::string overlay_str(str, offset + 1, str.size());
                result = t_letter(base_str, overlay_str);
        } else {
-               result = t_letter(str, filler);
+               result = t_letter(str);
        }       
 
 #ifndef TERRAIN_TRANSLATION_COMPATIBLE 
@@ -1017,7 +1012,7 @@
        letter[2] = ((terrain.base & 0x0000FF00) >> 8);
        letter[3] =  (terrain.base & 0x000000FF);
 
-       if(terrain.overlay != NO_LAYER) {
+       if(terrain.overlay != 0xFFFFFFFF) {
                letter[4] = '^'; //the layer separator
                letter[5] = ((terrain.overlay & 0xFF000000) >> 24);
                letter[6] = ((terrain.overlay & 0x00FF0000) >> 16);

Modified: trunk/src/terrain_translation.hpp
URL: 
http://svn.gna.org/viewcvs/wesnoth/trunk/src/terrain_translation.hpp?rev=16895&r1=16894&r2=16895&view=diff
==============================================================================
--- trunk/src/terrain_translation.hpp (original)
+++ trunk/src/terrain_translation.hpp Wed Apr 18 12:55:11 2007
@@ -35,10 +35,6 @@
 
 namespace t_translation {
 
-       typedef Uint32 t_layer;
-       const t_layer WILDCARD = 0x2A000000;
-       const t_layer NO_LAYER = 0xFFFFFFFF;
-       
        // The definitions for a terrain
        /**
         * A terrain string which is converted to a terrain is a string with 1 
or 2 layers
@@ -49,12 +45,11 @@
        struct t_letter {
                t_letter(const std::string& b);
                t_letter(const std::string& b, const std::string& o);
-               t_letter(const std::string& b, const t_layer o);
-               t_letter(const t_layer& b, const t_layer& o) : base(b), 
overlay(o) {};
-               t_letter() : base(0), overlay(NO_LAYER) {}
-
-               t_layer base;
-               t_layer overlay;
+               t_letter(const Uint32& b, const Uint32& o) : base(b), 
overlay(o) {};
+               t_letter() : base(0), overlay(0xFFFFFFFF) {}
+
+               Uint32 base;
+               Uint32 overlay;
        };
        const t_letter NONE_TERRAIN = t_letter();
 
@@ -85,7 +80,7 @@
         */
        struct t_match{
                t_match();
-               t_match(const std::string& str, const t_layer filler = 
NO_LAYER);
+               t_match(const std::string& str);
                t_match(const t_letter& letter);
 
                t_list terrain; 
@@ -164,11 +159,10 @@
         *                                      is the base terrain, the second 
the overlay terrain.
         * 
         * @param t_format      The format to read
-        * @param filler        if there's no layer this value will be used as 
the second layer
         *
         * @return                      A single terrain letter
         */
-       t_letter read_letter(const std::string& str, const int t_format, const 
t_layer filler = NO_LAYER);
+       t_letter read_letter(const std::string& str, const int t_format);
        
        /** 
         * Writes a single letter to a string.
@@ -195,11 +189,10 @@
         *                                              0 = no
         *                                              1 = yes
         * @param t_format      The format to read.
-        * @param filler        if there's no layer this value will be used as 
the second layer
         *
         * @returns                     A vector which contains the letters 
found in the string
         */
-        t_list read_list(const std::string& str, const int separated, const 
int t_format, const t_layer filler = NO_LAYER);
+        t_list read_list(const std::string& str, const int separated, const 
int t_format);
 
        /** 
         * Writes a list of terrains to a string, only writes the new format.
@@ -331,8 +324,8 @@
 
        // these terrain letters are in the builder format, and 
        // not usable in other parts of the engine
-       const t_layer TB_STAR = '*' << 24; //it can be assumed this is the 
equivalent of STAR
-       const t_layer TB_DOT = '.' << 24;
+       const Uint32 TB_STAR = '*' << 24; //it can be assumed this is the 
equivalent of STAR
+       const Uint32 TB_DOT = '.' << 24;
        
        /** 
         * Reads a builder map, a builder map differs much from a normal map 
hence


_______________________________________________
Wesnoth-commits mailing list
[email protected]
https://mail.gna.org/listinfo/wesnoth-commits

Reply via email to