-- Rockstar Map Export -- Rockstar North -- 11/5/2005 -- by Greg Smith -- some useful utilities relating to the object attributes ---------------------------------------------------------------------------------------- -- turn the surface type enum into a string. this list has to match that in gta3.att ---------------------------------------------------------------------------------------- fn RsCollSurfaceTypeToString index = ( -- rage treats underscores as a special case -- so we need to change underscores to dashes -- in the material names case index of ( 0: return "DEFAULT" 1: return "TARMAC" 2: return "TARMAC_FUCKED" 3: return "TARMAC_REALLYFUCKED" 4: return "PAVEMENT" 5: return "PAVEMENT_FUCKED" 6: return "GRAVEL" 7: return "FUCKED_CONCRETE" 8: return "PAINTED_GROUND" 9: return "GRASS_SHORT_LUSH" 10: return "GRASS_MEDIUM_LUSH" 11: return "GRASS_LONG_LUSH" 12: return "GRASS_SHORT_DRY" 13: return "GRASS_MEDIUM_DRY" 14: return "GRASS_LONG_DRY" 15: return "GOLFGRASS_ROUGH" 16: return "GOLFGRASS_SMOOTH" 17: return "STEEP_SLIDYGRASS" 18: return "STEEP_CLIFF" 19: return "FLOWERBED" 20: return "MEADOW" 21: return "WASTEGROUND" 22: return "WOODLANDGROUND" 23: return "VEGETATION" 24: return "MUD_WET" 25: return "MUD_DRY" 26: return "DIRT" 27: return "DIRTTRACK" 28: return "SAND_DEEP" 29: return "SAND_MEDIUM" 30: return "SAND_COMPACT" 31: return "SAND_ARID" 32: return "SAND_MORE" 33: return "SAND_BEACH" 34: return "CONCRETE_BEACH" 35: return "ROCK_DRY" 36: return "ROCK_WET" 37: return "ROCK_CLIFF" 38: return "WATER_RIVERBED" 39: return "WATER_SHALLOW" 40: return "CORNFIELD" 41: return "HEDGE" 42: return "WOOD_CRATES" 43: return "WOOD_SOLID" 44: return "WOOD_THIN" 45: return "GLASS_WEAK" 46: return "GLASS_MEDIUM" 47: return "GLASS_STRONG" 48: return "EMPTY1" 49: return "EMPTY2" 50: return "GARAGE_DOOR" 51: return "THICK_METAL_PLATE" 52: return "SCAFFOLD_POLE" 53: return "LAMP_POST" 54: return "METAL_GATE" 55: return "METAL_CHAIN_FENCE" 56: return "GIRDER" 57: return "FIRE_HYDRANT" 58: return "CONTAINER" 59: return "NEWS_VENDOR" 60: return "WHEELBASE" 61: return "CARDBOARDBOX" 62: return "PED" 63: return "CAR" 64: return "CAR_PANEL" 65: return "CAR_MOVINGCOMPONENT" 66: return "TRANSPARENT_CLOTH" 67: return "RUBBER" 68: return "PLASTIC" 69: return "TRANSPARENT_STONE" 70: return "WOOD_BENCH" 71: return "CARPET" 72: return "FLOORBOARD" 73: return "STAIRSWOOD" 74: return "P_SAND" 75: return "P_SAND_DENSE" 76: return "P_SAND_ARID" 77: return "P_SAND_COMPACT" 78: return "P_SAND_ROCKY" 79: return "P_SANDBEACH" 80: return "P_GRASS_SHORT" 81: return "P_GRASS_MEADOW" 82: return "P_GRASS_DRY" 83: return "P_WOODLAND" 84: return "P_WOODDENSE" 85: return "P_ROADSIDE" 86: return "P_ROADSIDEDES" 87: return "P_FLOWERBED" 88: return "P_WASTEGROUND" 89: return "P_CONCRETE" 90: return "P_OFFICEDESK" 91: return "P_711SHELF1" 92: return "P_711SHELF2" 93: return "P_711SHELF3" 94: return "P_RESTUARANTTABLE" 95: return "P_BARTABLE" 96: return "P_UNDERWATERLUSH" 97: return "P_UNDERWATERBARREN" 98: return "P_UNDERWATERCORAL" 99: return "P_UNDERWATERDEEP" 100: return "P_RIVERBED" 101: return "P_RUBBLE" 102: return "P_BEDROOMFLOOR" 103: return "P_KIRCHENFLOOR" 104: return "P_LIVINGRMFLOOR" 105: return "P_CORRIDORFLOOR" 106: return "P_711FLOOR" 107: return "P_FASTFOODFLOOR" 108: return "P_SKANKYFLOOR" 109: return "P_MOUNTAIN" 110: return "P_MARSH" 111: return "P_BUSHY" 112: return "P_BUSHYMIX" 113: return "P_BUSHYDRY" 114: return "P_BUSHYMID" 115: return "P_GRASSWEEFLOWERS" 116: return "P_GRASSDRYTALL" 117: return "P_GRASSLUSHTALL" 118: return "P_GRASSGRNMIX" 119: return "P_GRASSBRNMIX" 120: return "P_GRASSLOW" 121: return "P_GRASSROCKY" 122: return "P_GRASSSMALLTREES" 123: return "P_DIRTROCKY" 124: return "P_DIRTWEEDS" 125: return "P_GRASSWEEDS" 126: return "P_RIVEREDGE" 127: return "P_POOLSIDE" 128: return "P_FORESTSTUMPS" 129: return "P_FORESTSTICKS" 130: return "P_FORRESTLEAVES" 131: return "P_DESERTROCKS" 132: return "P_FORRESTDRY" 133: return "P_SPARSEFLOWERS" 134: return "P_BUILDINGSITE" 135: return "P_DOCKLANDS" 136: return "P_INDUSTRIAL" 137: return "P_INDUSTJETTY" 138: return "P_CONCRETELITTER" 139: return "P_ALLEYRUBISH" 140: return "P_JUNKYARDPILES" 141: return "P_JUNKYARDGRND" 142: return "P_DUMP" 143: return "P_CACTUSDENSE" 144: return "P_AIRPORTGRND" 145: return "P_CORNFIELD" 146: return "P_GRASSLIGHT" 147: return "P_GRASSLIGHTER" 148: return "P_GRASSLIGHTER2" 149: return "P_GRASSMID1" 150: return "P_GRASSMID2" 151: return "P_GRASSDARK" 152: return "P_GRASSDARK2" 153: return "P_GRASSDIRTMIX" 154: return "P_RIVERBEDSTONE" 155: return "P_RIVERBEDSHALLOW" 156: return "P_RIVERBEDWEEDS" 157: return "P_SEAWEED" 158: return "DOOR" 159: return "PLASTICBARRIER" 160: return "PARKGRASS" 161: return "STAIRSSTONE" 162: return "STAIRSMETAL" 163: return "STAIRSCARPET" 164: return "FLOORMETAL" 165: return "FLOORCONCRETE" 166: return "BIN_BAG" 167: return "THIN_METAL_SHEET" 168: return "METAL_BARREL" 169: return "PLASTIC_CONE" 170: return "PLASTIC_DUMPSTER" 171: return "METAL_DUMPSTER" 172: return "WOOD_PICKET_FENCE" 173: return "WOOD_SLATTED_FENCE" 174: return "WOOD_RANCH_FENCE" 175: return "UNBREAKABLE_GLASS" 176: return "HAY_BALE" 177: return "GORE" 178: return "RAILTRACK" 179: return "FLESH" 180: return "WALL_POST" 181: return "BS_PAVEMENT" 182: return "P_711SHELF4" 183: return "P_711SHELF5" 184: return "P_711SHELF6" 185: return "P_711SHELF7" 186: return "P_711SHELF8" 187: return "P_711SHELF9" 188: return "P_711SHELF10" 189: return "P_711SHELF11" 190: return "P_711SHELF12" 191: return "P_711SHELF13" 192: return "P_711SHELF14" 193: return "P_711SHELF15" 194: return "P_711SHELF16" 195: return "P_711SHELF17" 196: return "P_711SHELF18" 197: return "P_711SHELF19" 198: return "P_711SHELF20" 199: return "P_711SHELF21" 200: return "P_711SHELF22" 201: return "P_711SHELF23" 202: return "P_711SHELF24" 203: return "P_711SHELF25" 204: return "P_711SHELF26" 205: return "P_711SHELF27" 206: return "P_711SHELF28" 207: return "P_711SHELF29" 208: return "P_711SHELF30" ) return "unknown" ) fn RsGetCollSurfaceTypeString obj = ( if getattrclass obj != "Gta Collision" then ( return "unknown" ) idxCollType = getattrindex "Gta Collision" "Coll Type" idxStairs = getattrindex "Gta Collision" "Stairs" idxNonClimable = getattrindex "Gta Collision" "Non Climable" idxSeeThrough = getattrindex "Gta Collision" "See Through" idxShootThrough = getattrindex "Gta Collision" "Shoot Through" idxWet = getattrindex "Gta Collision" "Wet" idxPath = getattrindex "Gta Collision" "Path" idxCamCol = getattrindex "Gta Collision" "Non Camera Collidable" idxRoomID = getattrindex "Gta Collision" "Room ID" flagVal = 0 roomID = getattr obj idxRoomID if getattr obj idxStairs then flagVal = flagVal + 1 if getattr obj idxNonClimable then flagVal = flagVal + 2 if getattr obj idxSeeThrough then flagVal = flagVal + 4 if getattr obj idxShootThrough then flagVal = flagVal + 8 if getattr obj idxWet then flagVal = flagVal + 16 if getattr obj idxPath then flagVal = flagVal + 32 if getattr obj idxCamCol then flagVal = flagVal + 64 valCollType = getattr obj idxCollType if valCollType == "" then valCollType = "DEFAULT" valCollType = valCollType + "|0|" + (roomID as string) + "|0|" + (flagVal as string) -- RsCollSurfaceTypeToString valSurfaceType valCollType ) fn RsGetCollRoomIDString obj = ( if getattrclass obj != "Gta Collision" then ( return "0" ) roomID = getattr obj (getattrindex "Gta Collision" "Room ID") return (roomID as string) )