Merge lp:~csirkeee/widelands-media/media_python_improvements into lp:widelands-media

Proposed by Kiscsirke
Status: Merged
Merged at revision: not available
Proposed branch: lp:~csirkeee/widelands-media/media_python_improvements
Merge into: lp:widelands-media
Diff against target: 954 lines (+421/-161)
7 files modified
graphics/README.TXT (+3/-1)
graphics/stock_sources/blender_set_templates/automask.py (+156/-0)
graphics/tools/automask.py (+160/-0)
graphics/tools/innerBuilding.py (+27/-0)
graphics/tools/innerWorker.py (+27/-0)
graphics/tools/menu.py (+48/-34)
graphics/tools/playercolor.py (+0/-126)
To merge this branch: bzr merge lp:~csirkeee/widelands-media/media_python_improvements
Reviewer Review Type Date Requested Status
Alexia Death Approve
Review via email: mp+22760@code.launchpad.net

Description of the change

The changes to the blender python menu, and making all the blender files reference it. (So, biig revision, in the hopes that we won't need another big one in the future.)

Already includes SirVer's automasking changes.

Someone could test out the menu for example on an animal (oxen) to see if works everywhere. (I didn't add the playercolor materials where they were not yet present, so playercolors don't work on all workers, but they didn't work there before either.)

To post a comment you must log in.
Revision history for this message
Alexia Death (alexiade) wrote :

Push it yourself to media. Merging loses all the intermediate commits and I'd rather keep them.

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'graphics/README.TXT'
2--- graphics/README.TXT 2007-05-11 18:37:58 +0000
3+++ graphics/README.TXT 2010-04-03 18:34:14 +0000
4@@ -17,7 +17,9 @@
5
6 Source files should contain everything needed to render the image in the same folder.
7
8-TODO: add some more guidelines as they come along :)
9+The scripts for rendering are in separate files in the "tools" folder. For blender to find these scripts, they need to be in a directory named "tools" somewhere above the .blend file you are working on.
10+
11+Instructions on how to make playercolors can be found in the relevant script file.
12
13 Lowest level structure:
14 -----------------------
15
16=== added file 'graphics/stock_sources/blender_set_templates/automask.py'
17--- graphics/stock_sources/blender_set_templates/automask.py 1970-01-01 00:00:00 +0000
18+++ graphics/stock_sources/blender_set_templates/automask.py 2010-04-03 18:34:14 +0000
19@@ -0,0 +1,156 @@
20+#automask python script (unstable)
21+#Needs Blender 2.43 or release candidates
22+#tested on linux build
23+
24+#CAUTION: Be sure to have saved/copied your model before
25+#running this. No undo available.
26+
27+#HOWTO: Add your player color objects to a group named
28+#PlayerColor in the 'Object and Links' Panel (F7).
29+#Press Alt-P with mouse cursor over this window.
30+
31+#Note: This Code is awful.
32+#Don't know why, but with any other attempt to relink materials
33+#for more than 300 objects/meshes blender 243 segfaults unevitably.
34+#Under 200 objects it seems to be no problem to change materials
35+#with NMesh.setMaterials/Object.setMaterials.
36+#So if you want to improve this code, use at
37+#least helmsmith-animation for testing.
38+
39+#Nevertheless...
40+
41+import Blender as BL
42+
43+objects = BL.Object.Get()
44+
45+def blackout_materials():
46+ materials = BL.Material.Get()
47+ for material in materials:
48+ print material.name
49+
50+ #delete all material ipos
51+ mipo = material.getIpo()
52+ if mipo != None:
53+ material.clearIpo()
54+
55+ #clear all material texture channels
56+ for i in [0,1,2,3,4,5,6,7,8,9]:
57+ material.clearTexture(i)
58+
59+ #change all present materials to shadeless black
60+ material.setRGBCol(0.0,0.0,0.0)
61+ material.setMode("Shadeless")
62+ material.setAlpha(1.0)
63+
64+
65+def blackout_objects():
66+ #define new shadeless materials (black/white)
67+ shadelessblack = BL.Material.New()
68+ shadelessblack.setRGBCol(0.0,0.0,0.0)
69+ shadelessblack.setMode("Shadeless")
70+
71+ #apply shadeless materials to objects with no materials
72+ for object in objects:
73+ objtype = object.getType()
74+ if objtype == "Mesh":
75+ nmesh = object.getData()
76+ if not nmesh.getMaterials():
77+ if not object.getMaterials():
78+ nmesh.materials.append( shadelessblack )
79+ nmesh.update()
80+ else:
81+ nmesh.hasVertexColours(0)
82+ nmesh.hasFaceUV(0)
83+ nmesh.hasVertexUV(0)
84+ #nmesh.update()
85+
86+ #remove all mesh color/uv layers
87+ meshes = BL.Mesh.Get()
88+ for mesh in meshes:
89+ collayers = mesh.getColorLayerNames()
90+ for coll in collayers:
91+ mesh.removeColorLayer(coll)
92+ mesh.update()
93+ uvlayers = mesh.getUVLayerNames()
94+ for uvl in uvlayers:
95+ mesh.removeUVLayer(uvl)
96+ mesh.update()
97+
98+def whiteout_objects_in_playercolor_group():
99+ shadelesswhite = BL.Material.New()
100+ shadelesswhite.setRGBCol(1.0,1.0,1.0)
101+ shadelesswhite.setMode("Shadeless")
102+
103+ #search for player color objects and make them shadeless white
104+ groups = BL.Group.Get()
105+
106+ havepcgrp = 0
107+ havepcobj = 0
108+ for pcgroup in groups:
109+ if pcgroup.name == "PlayerColor":
110+ havepcgrp = 1
111+ break
112+
113+ if havepcgrp == 0:
114+ print "Please add group 'PlayerColor'"
115+ print "Use 'Object and Links' Panel (F7)"
116+ else:
117+ for obj in list(pcgroup.objects):
118+ if obj.getType() == "Mesh":
119+ havepcobj = 1
120+ nmesh = obj.getData(0,0)
121+ if obj.getMaterials():
122+ obj.setMaterials([shadelesswhite])
123+ #FIXME: it sometimes happens, that faces
124+ #must be assigned to lower material indices.
125+ #Without that faces are rendered invisible
126+ #Should do this automatically here
127+ nmesh.setMaterials([shadelesswhite])
128+ obj.colbits = (1<<0)+(1<<0)#...
129+ nmesh.update()
130+ else:
131+ print "Warning 'PlayerColor' object must be mesh type"
132+ if havepcobj == 0:
133+ print "Warning: no 'PlayerColor' object found"
134+
135+def whiteout_player_color_material():
136+ """
137+ This searches for a Material calles PlayerColor and makes it shadeless
138+ white
139+ """
140+ try:
141+ m = BL.Material.Get("PlayerColor")
142+ m.setRGBCol(1.,1.,1.)
143+ m.setMode("Shadeless")
144+ except NameError:
145+ pass
146+
147+
148+def setup_world():
149+ #world and render settings
150+ world = BL.World.GetCurrent()
151+ world.setSkytype(0x04)
152+ world.setHor([0.0,0.0,0.0])
153+ scene = BL.Scene.GetCurrent()
154+ context = scene.getRenderingContext()
155+ context.enableKey()
156+ context.enableOversampling(0)
157+ context.enableRGBColor()
158+ context.setImageType(BL.Scene.Render.PNG)
159+
160+def main():
161+ # leave edit mode
162+ if BL.Window.EditMode():
163+ BL.Window.EditMode(0)
164+
165+ blackout_materials()
166+ blackout_objects()
167+
168+ whiteout_objects_in_playercolor_group()
169+ whiteout_player_color_material()
170+ setup_world()
171+
172+
173+if __name__ == '__main__':
174+ main()
175+
176
177=== renamed file 'graphics/stock_sources/blender_set_templates/automask.blend' => 'graphics/stock_sources/blender_set_templates/automask_testing.blend'
178Binary files graphics/stock_sources/blender_set_templates/automask.blend 2009-05-27 18:04:22 +0000 and graphics/stock_sources/blender_set_templates/automask_testing.blend 2010-04-03 18:34:14 +0000 differ
179=== removed file 'graphics/stock_sources/blender_set_templates/direction_rendering.blend'
180Binary files graphics/stock_sources/blender_set_templates/direction_rendering.blend 2009-05-27 18:04:22 +0000 and graphics/stock_sources/blender_set_templates/direction_rendering.blend 1970-01-01 00:00:00 +0000 differ
181=== added file 'graphics/stock_sources/blender_set_templates/empty_building_template.blend'
182Binary files graphics/stock_sources/blender_set_templates/empty_building_template.blend 1970-01-01 00:00:00 +0000 and graphics/stock_sources/blender_set_templates/empty_building_template.blend 2010-04-03 18:34:14 +0000 differ
183=== added file 'graphics/stock_sources/blender_set_templates/empty_worker_template.blend'
184Binary files graphics/stock_sources/blender_set_templates/empty_worker_template.blend 1970-01-01 00:00:00 +0000 and graphics/stock_sources/blender_set_templates/empty_worker_template.blend 2010-04-03 18:34:14 +0000 differ
185=== removed file 'graphics/stock_sources/blender_set_templates/static_scene_setup.blend'
186Binary files graphics/stock_sources/blender_set_templates/static_scene_setup.blend 2009-05-27 18:04:22 +0000 and graphics/stock_sources/blender_set_templates/static_scene_setup.blend 1970-01-01 00:00:00 +0000 differ
187=== removed directory 'graphics/stock_sources/tools'
188=== removed file 'graphics/stock_sources/tools/automask.blend'
189Binary files graphics/stock_sources/tools/automask.blend 2007-05-15 20:25:20 +0000 and graphics/stock_sources/tools/automask.blend 1970-01-01 00:00:00 +0000 differ
190=== removed file 'graphics/stock_sources/tools/direction_rendering.blend'
191Binary files graphics/stock_sources/tools/direction_rendering.blend 2008-03-08 16:20:00 +0000 and graphics/stock_sources/tools/direction_rendering.blend 1970-01-01 00:00:00 +0000 differ
192=== removed file 'graphics/stock_sources/tools/static_scene_setup.blend'
193Binary files graphics/stock_sources/tools/static_scene_setup.blend 2008-03-08 17:12:40 +0000 and graphics/stock_sources/tools/static_scene_setup.blend 1970-01-01 00:00:00 +0000 differ
194=== added file 'graphics/tools/automask.py'
195--- graphics/tools/automask.py 1970-01-01 00:00:00 +0000
196+++ graphics/tools/automask.py 2010-04-03 18:34:14 +0000
197@@ -0,0 +1,160 @@
198+#automask python script (unstable)
199+#Needs Blender 2.43 or release candidates
200+#tested on linux build
201+
202+#CAUTION: Be sure to have saved/copied your model before
203+#running this. No undo available.
204+
205+#HOWTO: Add your player color objects to a group named
206+#PlayerColor in the 'Object and Links' Panel (F7).
207+#Also, if you just want to use part of a mesh, add a
208+#material named PlayerColor to it. Make sure there is
209+#only one PlayerColor material and this same one is
210+#added to all surfaces that need it.
211+#Press Alt-P with mouse cursor over this window.
212+
213+#Note: This Code is awful.
214+#Don't know why, but with any other attempt to relink materials
215+#for more than 300 objects/meshes blender 243 segfaults unevitably.
216+#Under 200 objects it seems to be no problem to change materials
217+#with NMesh.setMaterials/Object.setMaterials.
218+#So if you want to improve this code, use at
219+#least helmsmith-animation for testing.
220+
221+#Nevertheless...
222+
223+import Blender as BL
224+
225+objects = BL.Object.Get()
226+
227+def blackout_materials():
228+ materials = BL.Material.Get()
229+ for material in materials:
230+ print material.name
231+
232+ #delete all material ipos
233+ mipo = material.getIpo()
234+ if mipo != None:
235+ material.clearIpo()
236+
237+ #clear all material texture channels
238+ for i in [0,1,2,3,4,5,6,7,8,9]:
239+ material.clearTexture(i)
240+
241+ #change all present materials to shadeless black
242+ material.setRGBCol(0.0,0.0,0.0)
243+ material.setMode("Shadeless")
244+ material.setAlpha(1.0)
245+
246+
247+def blackout_objects():
248+ #define new shadeless materials (black/white)
249+ shadelessblack = BL.Material.New()
250+ shadelessblack.setRGBCol(0.0,0.0,0.0)
251+ shadelessblack.setMode("Shadeless")
252+
253+ #apply shadeless materials to objects with no materials
254+ for object in objects:
255+ objtype = object.getType()
256+ if objtype == "Mesh":
257+ nmesh = object.getData()
258+ if not nmesh.getMaterials():
259+ if not object.getMaterials():
260+ nmesh.materials.append( shadelessblack )
261+ nmesh.update()
262+ else:
263+ nmesh.hasVertexColours(0)
264+ nmesh.hasFaceUV(0)
265+ nmesh.hasVertexUV(0)
266+ #nmesh.update()
267+
268+ #remove all mesh color/uv layers
269+ meshes = BL.Mesh.Get()
270+ for mesh in meshes:
271+ collayers = mesh.getColorLayerNames()
272+ for coll in collayers:
273+ mesh.removeColorLayer(coll)
274+ mesh.update()
275+ uvlayers = mesh.getUVLayerNames()
276+ for uvl in uvlayers:
277+ mesh.removeUVLayer(uvl)
278+ mesh.update()
279+
280+def whiteout_objects_in_playercolor_group():
281+ shadelesswhite = BL.Material.New()
282+ shadelesswhite.setRGBCol(1.0,1.0,1.0)
283+ shadelesswhite.setMode("Shadeless")
284+
285+ #search for player color objects and make them shadeless white
286+ groups = BL.Group.Get()
287+
288+ havepcgrp = 0
289+ havepcobj = 0
290+ for pcgroup in groups:
291+ if pcgroup.name == "PlayerColor":
292+ havepcgrp = 1
293+ break
294+
295+ if havepcgrp == 0:
296+ print "Please add group 'PlayerColor'"
297+ print "Use 'Object and Links' Panel (F7)"
298+ else:
299+ for obj in list(pcgroup.objects):
300+ if obj.getType() == "Mesh":
301+ havepcobj = 1
302+ nmesh = obj.getData(0,0)
303+ if obj.getMaterials():
304+ obj.setMaterials([shadelesswhite])
305+ #FIXME: it sometimes happens, that faces
306+ #must be assigned to lower material indices.
307+ #Without that faces are rendered invisible
308+ #Should do this automatically here
309+ nmesh.setMaterials([shadelesswhite])
310+ obj.colbits = (1<<0)+(1<<0)#...
311+ nmesh.update()
312+ else:
313+ print "Warning 'PlayerColor' object must be mesh type"
314+ if havepcobj == 0:
315+ print "Warning: no 'PlayerColor' object found"
316+
317+def whiteout_player_color_material():
318+ """
319+ This searches for a Material calles PlayerColor and makes it shadeless
320+ white
321+ """
322+ try:
323+ m = BL.Material.Get("PlayerColor")
324+ m.setRGBCol(1.,1.,1.)
325+ m.setMode("Shadeless")
326+ except NameError:
327+ pass
328+
329+
330+def setup_world():
331+ #world and render settings
332+ world = BL.World.GetCurrent()
333+ world.setSkytype(0x04)
334+ world.setHor([0.0,0.0,0.0])
335+ scene = BL.Scene.GetCurrent()
336+ context = scene.getRenderingContext()
337+ context.enableKey()
338+ context.enableOversampling(0)
339+ context.enableRGBColor()
340+ context.setImageType(BL.Scene.Render.PNG)
341+
342+def main():
343+ # leave edit mode
344+ if BL.Window.EditMode():
345+ BL.Window.EditMode(0)
346+
347+ blackout_materials()
348+ blackout_objects()
349+
350+ whiteout_objects_in_playercolor_group()
351+ whiteout_player_color_material()
352+ setup_world()
353+
354+
355+if __name__ == '__main__':
356+ main()
357+
358
359=== added file 'graphics/tools/innerBuilding.py'
360--- graphics/tools/innerBuilding.py 1970-01-01 00:00:00 +0000
361+++ graphics/tools/innerBuilding.py 2010-04-03 18:34:14 +0000
362@@ -0,0 +1,27 @@
363+# This script loads the scipts from the graphics/tools directory of the
364+# widelands-media repository, so it needs to have the /tools directory
365+# with its contents somewhere in the .blend file's tree.
366+import os
367+import sys
368+import os.path as ph
369+import Blender
370+
371+nowpath = (Blender.Get("filename"))
372+while(not ph.isdir(ph.join(nowpath, "tools")) and nowpath != ph.dirname(nowpath)):
373+ nowpath = ph.dirname(nowpath)
374+
375+if(ph.isdir(ph.join(nowpath, "tools"))):
376+ sys.path.append(ph.join(nowpath, "tools"))
377+
378+
379+try:
380+ import menu
381+ __has_tools = True
382+except ImportError:
383+ __has_tools = False
384+
385+if(__has_tools):
386+ menu.RegisterBuildingMenu()
387+else:
388+ Blender.Draw.PupBlock("Error", ["'tools' directory not found!",
389+ "Check the comment at the", "beginning of this script."])
390\ No newline at end of file
391
392=== added file 'graphics/tools/innerWorker.py'
393--- graphics/tools/innerWorker.py 1970-01-01 00:00:00 +0000
394+++ graphics/tools/innerWorker.py 2010-04-03 18:34:14 +0000
395@@ -0,0 +1,27 @@
396+# This script loads the scipts from the graphics/tools directory of the
397+# widelands-media repository, so it needs to have the /tools directory
398+# with its contents somewhere in the .blend file's tree.
399+import os
400+import sys
401+import os.path as ph
402+import Blender
403+
404+nowpath = (Blender.Get("filename"))
405+while(not ph.isdir(ph.join(nowpath, "tools")) and nowpath != ph.dirname(nowpath)):
406+ nowpath = ph.dirname(nowpath)
407+
408+if(ph.isdir(ph.join(nowpath, "tools"))):
409+ sys.path.append(ph.join(nowpath, "tools"))
410+
411+
412+try:
413+ import menu
414+ __has_tools = True
415+except ImportError:
416+ __has_tools = False
417+
418+if(__has_tools):
419+ menu.RegisterStandardMenu()
420+else:
421+ Blender.Draw.PupBlock("Error", ["'tools' directory not found!",
422+ "Check the comment at the", "beginning of this script."])
423\ No newline at end of file
424
425=== modified file 'graphics/tools/menu.py'
426--- graphics/tools/menu.py 2010-03-28 13:08:50 +0000
427+++ graphics/tools/menu.py 2010-04-03 18:34:14 +0000
428@@ -20,6 +20,8 @@
429 WSW = 0.39270
430 WNW = 1.17810
431
432+OrigRotZ = maincontrol.RotZ
433+
434 MenuItems = """Orientations %t|Orientations: %x0|%l|
435 SouthWest %x1|West %x2|NorthWest %x3|NorthEast %x4|
436 East %x5|SouthEast %x6|%l|North %x7|EastNorthEast %x8|
437@@ -30,9 +32,9 @@
438 orientation_text_list = ["SouthWest","West","NorthWest",
439 "NorthEast","East","SouthEast","North","EastNorthEast",
440 "EastSouthEast","South","WestSouthWest","WestNorthWest"]
441-direction_list = ["sw","w","nw","ne","e","se","n","ene","ese","s","wsw","wnw"]
442+direction_list = ["_sw","_w","_nw","_ne","_e","_se","_n","_ene","_ese","_s","_wsw","_wnw", ""]
443
444-togglebuttonstate = [1,1,1,1,1,1,0,0,0,0,0,0]
445+togglebuttonstate = [1,1,1,1,1,1,0,0,0,0,0,0,0]
446
447 dir_text = orientation_text_list[0]
448 orient = orientation_list[0]
449@@ -53,7 +55,7 @@
450 MENUEVENT_ORIENT = 2
451 SLIDEREVENT_ANG = 4
452 NUMBEREVENT_FRM = 7
453-togglebuttonevents = [8,9,10,11,12,13,14,15,16,17,18,19,20]
454+togglebuttonevents = [8,9,10,11,12,13,14,15,16,17,18,19,20,21]
455
456 togglereplace=1
457 toggleplrclr=0
458@@ -72,6 +74,7 @@
459 global numberfrmstate, togglesetstate, togglereplace#!
460 global path, prefix#!
461 global fileerror
462+ global OrigRotZ
463 #cdir = current direction
464 #cfrm = current frame
465
466@@ -80,12 +83,14 @@
467 Redraw(1)#__external__
468 return #__external__
469
470- cdir=0
471- for tstate in togglebuttonstate:
472+ for cdir, tstate in enumerate(togglebuttonstate):
473 if tstate or togglesetstate:
474 #redraw scene
475- maincontrol.RotZ = orientation_list[cdir] + angle*(2*3.14159/360)
476- #0.147534698248
477+ if(cdir<12):
478+ maincontrol.RotZ = orientation_list[cdir] + angle*(2*3.14159/360)
479+ #0.147534698248
480+ else:
481+ maincontrol.RotZ = OrigRotZ
482
483 objects = BL.Object.Get()
484 for object in objects:
485@@ -105,9 +110,9 @@
486 cfrm+=1
487 context.currentFrame(cfrm)
488 if(not playercolor):
489- fname = "%s_%s_%02d.png" %(prefix, direction_list[cdir], cfrm-1)
490+ fname = "%s%s_%02d.png" %(prefix, direction_list[cdir], cfrm-1)
491 else:
492- fname = "%s_%s_%02d_pc.png" %(prefix, direction_list[cdir], cfrm-1)
493+ fname = "%s%s_%02d_pc.png" %(prefix, direction_list[cdir], cfrm-1)
494 if(os.path.exists("%s%s"%(path,fname))):#__external__
495 if(togglereplace):
496 os.remove("%s%s"%(path,fname))
497@@ -118,7 +123,6 @@
498 context.render()
499 context.saveRenderedImage( fname, 0 )
500 #end rendering
501- cdir+=1
502 BL.Scene.Render.CloseRenderWindow()
503
504
505@@ -136,36 +140,38 @@
506 global BUTTONEVENT_SET, STRINGEVENT_PRE, STRINGEVENT_PTH, TOGGLEEVENT_REPLACE
507 global fileerror
508
509- top_y=210
510+ top_y=230
511
512 #Menu items from top to bottom:
513
514 pre_string = String("Prefix: ",STRINGEVENT_PRE,10,top_y-18,300,16,prefix,399,"Prefix of the image filenames")
515 pth_string = String("Path: ", STRINGEVENT_PTH,10,top_y-38,300,16,path,399,"Directory to save rendered pics to")
516
517- SW_t = Toggle("SW",togglebuttonevents[0], 10,top_y-75,50,16,togglebuttonstate[0],"SouthWest")
518- W__t = Toggle("W", togglebuttonevents[1], 60,top_y-75,50,16,togglebuttonstate[1],"West")
519- NW_t = Toggle("NW",togglebuttonevents[2],110,top_y-75,50,16,togglebuttonstate[2],"NorthWest")
520- NE_t = Toggle("NE",togglebuttonevents[3], 10,top_y-58,50,16,togglebuttonstate[3],"NorthEast")
521- E__t = Toggle("E", togglebuttonevents[4], 60,top_y-58,50,16,togglebuttonstate[4],"East")
522- SE_t = Toggle("SE",togglebuttonevents[5],110,top_y-58,50,16,togglebuttonstate[5],"SouthEast")
523-
524- N__t = Toggle("N", togglebuttonevents[6], 160,top_y-75,50,16,togglebuttonstate[6],"North")
525- ENEt = Toggle("ENE",togglebuttonevents[7], 210,top_y-75,50,16,togglebuttonstate[7],"EastNorthEast")
526- ESEt = Toggle("ESE",togglebuttonevents[8], 260,top_y-75,50,16,togglebuttonstate[8],"EastSouthEast")
527- S__t = Toggle("S", togglebuttonevents[9], 160,top_y-58,50,16,togglebuttonstate[9],"South")
528- WSWt = Toggle("WSW",togglebuttonevents[10],210,top_y-58,50,16,togglebuttonstate[10],"WestSouthWest")
529- WNWt = Toggle("WNW",togglebuttonevents[11],260,top_y-58,50,16,togglebuttonstate[11],"WestNorthWest")
530-
531- replace_toggle = Toggle("Replace",TOGGLEEVENT_REPLACE,10,top_y-95,100,16,togglereplace,"Whether to replace existing files")
532- toggles = [SW_t,W__t,NW_t,NE_t,E__t,SE_t,N__t,ENEt,ESEt,S__t,WSWt,WNWt]
533- set_toggle = Toggle("Set all", TOGGLEEVENT_SET, 110,top_y-95,100,16,togglesetstate,"Set/Unset all directions")
534- frm_number = Number("Frames", NUMBEREVENT_FRM,210,top_y-95,100,16,numberfrmstate,1,100,"Number of frames used for rendering")
535+ OrigP_t = Toggle("Original camera pos (buildings)",togglebuttonevents[12], 10,top_y-58,300,16,togglebuttonstate[12],"Original camera position")
536+
537+ SW_t = Toggle("SW",togglebuttonevents[0], 10,top_y-95,50,16,togglebuttonstate[0],"SouthWest")
538+ W__t = Toggle("W", togglebuttonevents[1], 60,top_y-95,50,16,togglebuttonstate[1],"West")
539+ NW_t = Toggle("NW",togglebuttonevents[2],110,top_y-95,50,16,togglebuttonstate[2],"NorthWest")
540+ NE_t = Toggle("NE",togglebuttonevents[3], 10,top_y-78,50,16,togglebuttonstate[3],"NorthEast")
541+ E__t = Toggle("E", togglebuttonevents[4], 60,top_y-78,50,16,togglebuttonstate[4],"East")
542+ SE_t = Toggle("SE",togglebuttonevents[5],110,top_y-78,50,16,togglebuttonstate[5],"SouthEast")
543+
544+ N__t = Toggle("N", togglebuttonevents[6], 160,top_y-95,50,16,togglebuttonstate[6],"North")
545+ ENEt = Toggle("ENE",togglebuttonevents[7], 210,top_y-95,50,16,togglebuttonstate[7],"EastNorthEast")
546+ ESEt = Toggle("ESE",togglebuttonevents[8], 260,top_y-95,50,16,togglebuttonstate[8],"EastSouthEast")
547+ S__t = Toggle("S", togglebuttonevents[9], 160,top_y-78,50,16,togglebuttonstate[9],"South")
548+ WSWt = Toggle("WSW",togglebuttonevents[10],210,top_y-78,50,16,togglebuttonstate[10],"WestSouthWest")
549+ WNWt = Toggle("WNW",togglebuttonevents[11],260,top_y-78,50,16,togglebuttonstate[11],"WestNorthWest")
550+
551+ replace_toggle = Toggle("Replace",TOGGLEEVENT_REPLACE,10,top_y-115,100,16,togglereplace,"Whether to replace existing files")
552+ toggles = [SW_t,W__t,NW_t,NE_t,E__t,SE_t,N__t,ENEt,ESEt,S__t,WSWt,WNWt,OrigP_t]
553+ set_toggle = Toggle("Set all", TOGGLEEVENT_SET, 110,top_y-115,100,16,togglesetstate,"Set/Unset all directions")
554+ frm_number = Number("Frames", NUMBEREVENT_FRM,210,top_y-115,100,16,numberfrmstate,1,100,"Number of frames used for rendering")
555
556 BL.BGL.glColor3f(1.0,0.0,0.0)
557- BL.BGL.glRasterPos2i(40,top_y-110)
558+ BL.BGL.glRasterPos2i(40,top_y-130)
559 Text("WARNING: save before using this!","small")
560- plrclr_toggle = Toggle("PlayerColors",TOGGLEEVENT_PLRCLR,210,top_y-115,100,16,toggleplrclr,"Render a series with playercolors too")
561+ plrclr_toggle = Toggle("PlayerColors",TOGGLEEVENT_PLRCLR,210,top_y-135,100,16,toggleplrclr,"Render a series with playercolors too")
562
563
564 rnd_button = Button("Render",BUTTONEVENT_RND,10,70,300,21,"Render all frames in all given directions")
565@@ -198,6 +204,7 @@
566 global numberfrmstate, togglesetstate, togglereplace, toggleplrclr#!
567 global path, prefix#!
568 global fileerror
569+ global OrigRotZ
570 if(event == BUTTONEVENT_APL):
571 maincontrol.RotZ = orient + angle*(2*3.14159/360)
572 #+ 0.147534698248
573@@ -245,7 +252,7 @@
574 if deg > 359.5: deg = 0
575 ang_text = "%3.0f" %deg
576 Redraw(1)
577- elif(event >= togglebuttonevents[0] and event <= togglebuttonevents[11]):
578+ elif(event >= togglebuttonevents[0] and event <= togglebuttonevents[12]):
579 togglebuttonstate[event-togglebuttonevents[0]] = toggles[event-togglebuttonevents[0]].val
580 elif(event == TOGGLEEVENT_SET):
581 togglesetstate = set_toggle.val
582@@ -262,12 +269,19 @@
583 path = pth_string.val
584 print path
585 elif(event == BUTTONEVENT_RND):
586+ OrigRotZ = maincontrol.RotZ
587 RenderDirs()
588 if(toggleplrclr):
589- import playercolor
590- playercolor.PlayerColorGroups()
591+ import automask
592+ automask.main()
593 RenderDirs(True)
594
595 def RegisterStandardMenu():
596 Register(DrawMenu, KeyEvents, ButtonEvents)
597+
598+
599+def RegisterBuildingMenu():
600+ global togglebuttonstate
601+ togglebuttonstate = [0,0,0,0,0,0,0,0,0,0,0,0,1]
602+ Register(DrawMenu, KeyEvents, ButtonEvents)
603
604
605=== removed file 'graphics/tools/playercolor.py'
606--- graphics/tools/playercolor.py 2010-03-28 13:08:50 +0000
607+++ graphics/tools/playercolor.py 1970-01-01 00:00:00 +0000
608@@ -1,126 +0,0 @@
609-#automask python script (unstable)
610-#Needs Blender 2.43 or release candidates
611-#tested on linux build
612-
613-#CAUTION: Be sure to have saved/copied your model before
614-#running this. No undo available.
615-
616-#HOWTO: Add your player color objects to a group named
617-#PlayerColor in the 'Object and Links' Panel (F7).
618-#Press Alt-P with mouse cursor over this window.
619-
620-#Note: This Code is awful.
621-#Don't know why, but with any other attempt to relink materials
622-#for more than 300 objects/meshes blender 243 segfaults unevitably.
623-#Under 200 objects it seems to be no problem to change materials
624-#with NMesh.setMaterials/Object.setMaterials.
625-#So if you want to improve this code, use at
626-#least helmsmith-animation for testing.
627-
628-#Nevertheless...
629-
630-import Blender as BL
631-
632-def PlayerColorGroups():
633- objects = BL.Object.Get()
634-
635- #leave edit mode
636- if BL.Window.EditMode():
637- BL.Window.EditMode(0)
638-
639- materials = BL.Material.Get()
640- for material in materials:
641-
642- #delete all material ipos
643- mipo = material.getIpo()
644- if mipo != None:
645- material.clearIpo()
646-
647- #clear all material texture channels
648- for i in [0,1,2,3,4,5,6,7,8,9]:
649- material.clearTexture(i)
650-
651- #change all present materials to shadeless black
652- material.setRGBCol(0.0,0.0,0.0)
653- material.setMode("Shadeless")
654- material.setAlpha(1.0)
655-
656- #define new shadeless materials (black/white)
657- shadelessblack = BL.Material.New()
658- shadelesswhite = BL.Material.New()
659- shadelessblack.setRGBCol(0.0,0.0,0.0)
660- shadelesswhite.setRGBCol(1.0,1.0,1.0)
661- shadelessblack.setMode("Shadeless")
662- shadelesswhite.setMode("Shadeless")
663-
664- #apply shadeless materials to objects with no materials
665- for object in objects:
666- objtype = object.getType()
667- if objtype == "Mesh":
668- nmesh = object.getData()
669- if not nmesh.getMaterials():
670- if not object.getMaterials():
671- nmesh.materials.append( shadelessblack )
672- nmesh.update()
673- else:
674- nmesh.hasVertexColours(0)
675- nmesh.hasFaceUV(0)
676- nmesh.hasVertexUV(0)
677- #nmesh.update()
678-
679- #remove all mesh color/uv layers
680- meshes = BL.Mesh.Get()
681- for mesh in meshes:
682- collayers = mesh.getColorLayerNames()
683- for coll in collayers:
684- mesh.removeColorLayer(coll)
685- mesh.update()
686- uvlayers = mesh.getUVLayerNames()
687- for uvl in uvlayers:
688- mesh.removeUVLayer(uvl)
689- mesh.update()
690-
691- #search for player color objects and make them shadeless white
692- groups = BL.Group.Get()
693-
694- havepcgrp = 0
695- havepcobj = 0
696- for pcgroup in groups:
697- if pcgroup.name == "PlayerColor":
698- havepcgrp = 1
699- break
700-
701- if havepcgrp == 0:
702- print "Please add group 'PlayerColor'"
703- print "Use 'Object and Links' Panel (F7)"
704- else:
705- for obj in list(pcgroup.objects):
706- if obj.getType() == "Mesh":
707- havepcobj = 1
708- nmesh = obj.getData(0,0)
709- if obj.getMaterials():
710- obj.setMaterials([shadelesswhite])
711- #FIXME: it sometimes happens, that faces
712- #must be assigned to lower material indices.
713- #Without that faces are rendered invisible
714- #Should do this automatically here
715- nmesh.setMaterials([shadelesswhite])
716- obj.colbits = (1<<0)+(1<<0)#...
717- nmesh.update()
718- else:
719- print "Warning 'PlayerColor' object must be mesh type"
720- if havepcobj == 0:
721- print "Warning: no 'PlayerColor' object found"
722-
723-#world and render settings
724-#world = BL.World.GetCurrent()
725-#world.setSkytype(0x04)
726-#world.setHor([0.0,0.0,0.0])
727-#scene = BL.Scene.GetCurrent()
728-#context = scene.getRenderingContext()
729-#context.enableKey()
730-#context.enableOversampling(0)
731-#context.enableRGBColor()
732-#context.setImageType(BL.Scene.Render.PNG)
733-
734-#done
735\ No newline at end of file
736
737=== modified file 'graphics/tribes/atlanteans/buildings/armorsmith.blend'
738Binary files graphics/tribes/atlanteans/buildings/armorsmith.blend 2009-05-27 18:04:22 +0000 and graphics/tribes/atlanteans/buildings/armorsmith.blend 2010-04-03 18:34:14 +0000 differ
739=== modified file 'graphics/tribes/atlanteans/buildings/bakery.blend'
740Binary files graphics/tribes/atlanteans/buildings/bakery.blend 2008-10-25 16:11:50 +0000 and graphics/tribes/atlanteans/buildings/bakery.blend 2010-04-03 18:34:14 +0000 differ
741=== modified file 'graphics/tribes/atlanteans/buildings/blackroot_farm.blend'
742Binary files graphics/tribes/atlanteans/buildings/blackroot_farm.blend 2008-10-19 13:22:54 +0000 and graphics/tribes/atlanteans/buildings/blackroot_farm.blend 2010-04-03 18:34:14 +0000 differ
743=== modified file 'graphics/tribes/atlanteans/buildings/burner.blend'
744Binary files graphics/tribes/atlanteans/buildings/burner.blend 2009-05-27 18:04:22 +0000 and graphics/tribes/atlanteans/buildings/burner.blend 2010-04-03 18:34:14 +0000 differ
745=== modified file 'graphics/tribes/atlanteans/buildings/castle.blend'
746Binary files graphics/tribes/atlanteans/buildings/castle.blend 2010-04-01 13:03:07 +0000 and graphics/tribes/atlanteans/buildings/castle.blend 2010-04-03 18:34:14 +0000 differ
747=== modified file 'graphics/tribes/atlanteans/buildings/coalmine.blend'
748Binary files graphics/tribes/atlanteans/buildings/coalmine.blend 2009-05-27 18:04:22 +0000 and graphics/tribes/atlanteans/buildings/coalmine.blend 2010-04-03 18:34:14 +0000 differ
749=== modified file 'graphics/tribes/atlanteans/buildings/crystal_mine.blend'
750Binary files graphics/tribes/atlanteans/buildings/crystal_mine.blend 2009-05-27 18:04:22 +0000 and graphics/tribes/atlanteans/buildings/crystal_mine.blend 2010-04-03 18:34:14 +0000 differ
751=== modified file 'graphics/tribes/atlanteans/buildings/dungeon.blend'
752Binary files graphics/tribes/atlanteans/buildings/dungeon.blend 2008-10-14 17:52:16 +0000 and graphics/tribes/atlanteans/buildings/dungeon.blend 2010-04-03 18:34:14 +0000 differ
753=== modified file 'graphics/tribes/atlanteans/buildings/farm.blend'
754Binary files graphics/tribes/atlanteans/buildings/farm.blend 2008-10-19 13:22:54 +0000 and graphics/tribes/atlanteans/buildings/farm.blend 2010-04-03 18:34:14 +0000 differ
755=== modified file 'graphics/tribes/atlanteans/buildings/fishbreeder.blend'
756Binary files graphics/tribes/atlanteans/buildings/fishbreeder.blend 2008-10-25 16:11:50 +0000 and graphics/tribes/atlanteans/buildings/fishbreeder.blend 2010-04-03 18:34:14 +0000 differ
757=== modified file 'graphics/tribes/atlanteans/buildings/fisher.blend'
758Binary files graphics/tribes/atlanteans/buildings/fisher.blend 2008-10-25 16:11:50 +0000 and graphics/tribes/atlanteans/buildings/fisher.blend 2010-04-03 18:34:14 +0000 differ
759=== modified file 'graphics/tribes/atlanteans/buildings/foresterhut.blend'
760Binary files graphics/tribes/atlanteans/buildings/foresterhut.blend 2008-10-25 16:11:50 +0000 and graphics/tribes/atlanteans/buildings/foresterhut.blend 2010-04-03 18:34:14 +0000 differ
761=== modified file 'graphics/tribes/atlanteans/buildings/goldmine.blend'
762Binary files graphics/tribes/atlanteans/buildings/goldmine.blend 2009-05-27 18:04:22 +0000 and graphics/tribes/atlanteans/buildings/goldmine.blend 2010-04-03 18:34:14 +0000 differ
763=== modified file 'graphics/tribes/atlanteans/buildings/goldweaver.blend'
764Binary files graphics/tribes/atlanteans/buildings/goldweaver.blend 2009-05-27 18:04:22 +0000 and graphics/tribes/atlanteans/buildings/goldweaver.blend 2010-04-03 18:34:14 +0000 differ
765=== modified file 'graphics/tribes/atlanteans/buildings/guardhall.blend'
766Binary files graphics/tribes/atlanteans/buildings/guardhall.blend 2008-10-14 17:52:16 +0000 and graphics/tribes/atlanteans/buildings/guardhall.blend 2010-04-03 18:34:14 +0000 differ
767=== modified file 'graphics/tribes/atlanteans/buildings/guardhouse.blend'
768Binary files graphics/tribes/atlanteans/buildings/guardhouse.blend 2008-10-13 20:26:56 +0000 and graphics/tribes/atlanteans/buildings/guardhouse.blend 2010-04-03 18:34:14 +0000 differ
769=== modified file 'graphics/tribes/atlanteans/buildings/headquarters.blend'
770Binary files graphics/tribes/atlanteans/buildings/headquarters.blend 2008-10-25 16:11:50 +0000 and graphics/tribes/atlanteans/buildings/headquarters.blend 2010-04-03 18:34:14 +0000 differ
771=== modified file 'graphics/tribes/atlanteans/buildings/high_tower.blend'
772Binary files graphics/tribes/atlanteans/buildings/high_tower.blend 2008-10-25 16:11:50 +0000 and graphics/tribes/atlanteans/buildings/high_tower.blend 2010-04-03 18:34:14 +0000 differ
773=== modified file 'graphics/tribes/atlanteans/buildings/hunter.blend'
774Binary files graphics/tribes/atlanteans/buildings/hunter.blend 2008-10-25 16:11:50 +0000 and graphics/tribes/atlanteans/buildings/hunter.blend 2010-04-03 18:34:14 +0000 differ
775=== modified file 'graphics/tribes/atlanteans/buildings/ironmine.blend'
776Binary files graphics/tribes/atlanteans/buildings/ironmine.blend 2009-05-27 18:04:22 +0000 and graphics/tribes/atlanteans/buildings/ironmine.blend 2010-04-03 18:34:14 +0000 differ
777=== modified file 'graphics/tribes/atlanteans/buildings/labyrynth.blend'
778Binary files graphics/tribes/atlanteans/buildings/labyrynth.blend 2008-10-13 20:26:56 +0000 and graphics/tribes/atlanteans/buildings/labyrynth.blend 2010-04-03 18:34:14 +0000 differ
779=== modified file 'graphics/tribes/atlanteans/buildings/lumberjack.blend'
780Binary files graphics/tribes/atlanteans/buildings/lumberjack.blend 2008-10-25 16:11:50 +0000 and graphics/tribes/atlanteans/buildings/lumberjack.blend 2010-04-03 18:34:14 +0000 differ
781=== modified file 'graphics/tribes/atlanteans/buildings/mill.blend'
782Binary files graphics/tribes/atlanteans/buildings/mill.blend 2008-10-19 13:22:54 +0000 and graphics/tribes/atlanteans/buildings/mill.blend 2010-04-03 18:34:14 +0000 differ
783=== modified file 'graphics/tribes/atlanteans/buildings/quarry.blend'
784Binary files graphics/tribes/atlanteans/buildings/quarry.blend 2009-05-27 18:04:22 +0000 and graphics/tribes/atlanteans/buildings/quarry.blend 2010-04-03 18:34:14 +0000 differ
785=== modified file 'graphics/tribes/atlanteans/buildings/sawmill.blend'
786Binary files graphics/tribes/atlanteans/buildings/sawmill.blend 2008-10-19 13:22:54 +0000 and graphics/tribes/atlanteans/buildings/sawmill.blend 2010-04-03 18:34:14 +0000 differ
787=== modified file 'graphics/tribes/atlanteans/buildings/scouts_house/scouts_house.blend'
788Binary files graphics/tribes/atlanteans/buildings/scouts_house/scouts_house.blend 2010-04-03 08:35:20 +0000 and graphics/tribes/atlanteans/buildings/scouts_house/scouts_house.blend 2010-04-03 18:34:14 +0000 differ
789=== modified file 'graphics/tribes/atlanteans/buildings/scouts_house/scouts_house_b_00.blend'
790Binary files graphics/tribes/atlanteans/buildings/scouts_house/scouts_house_b_00.blend 2010-04-03 08:35:20 +0000 and graphics/tribes/atlanteans/buildings/scouts_house/scouts_house_b_00.blend 2010-04-03 18:34:14 +0000 differ
791=== modified file 'graphics/tribes/atlanteans/buildings/scouts_house/scouts_house_b_01.blend'
792Binary files graphics/tribes/atlanteans/buildings/scouts_house/scouts_house_b_01.blend 2010-04-03 08:35:20 +0000 and graphics/tribes/atlanteans/buildings/scouts_house/scouts_house_b_01.blend 2010-04-03 18:34:14 +0000 differ
793=== modified file 'graphics/tribes/atlanteans/buildings/scouts_house/scouts_house_b_02.blend'
794Binary files graphics/tribes/atlanteans/buildings/scouts_house/scouts_house_b_02.blend 2010-04-03 08:35:20 +0000 and graphics/tribes/atlanteans/buildings/scouts_house/scouts_house_b_02.blend 2010-04-03 18:34:14 +0000 differ
795=== modified file 'graphics/tribes/atlanteans/buildings/small_tower.blend'
796Binary files graphics/tribes/atlanteans/buildings/small_tower.blend 2008-10-13 20:26:56 +0000 and graphics/tribes/atlanteans/buildings/small_tower.blend 2010-04-03 18:34:14 +0000 differ
797=== modified file 'graphics/tribes/atlanteans/buildings/smelting_works.blend'
798Binary files graphics/tribes/atlanteans/buildings/smelting_works.blend 2009-05-27 18:04:22 +0000 and graphics/tribes/atlanteans/buildings/smelting_works.blend 2010-04-03 18:34:14 +0000 differ
799=== modified file 'graphics/tribes/atlanteans/buildings/smokery.blend'
800Binary files graphics/tribes/atlanteans/buildings/smokery.blend 2008-10-25 16:11:50 +0000 and graphics/tribes/atlanteans/buildings/smokery.blend 2010-04-03 18:34:14 +0000 differ
801=== modified file 'graphics/tribes/atlanteans/buildings/spider_farm.blend'
802Binary files graphics/tribes/atlanteans/buildings/spider_farm.blend 2008-10-19 13:22:54 +0000 and graphics/tribes/atlanteans/buildings/spider_farm.blend 2010-04-03 18:34:14 +0000 differ
803=== modified file 'graphics/tribes/atlanteans/buildings/toolsmith.blend'
804Binary files graphics/tribes/atlanteans/buildings/toolsmith.blend 2009-05-27 18:04:22 +0000 and graphics/tribes/atlanteans/buildings/toolsmith.blend 2010-04-03 18:34:14 +0000 differ
805=== modified file 'graphics/tribes/atlanteans/buildings/tower.blend'
806Binary files graphics/tribes/atlanteans/buildings/tower.blend 2008-10-25 16:11:50 +0000 and graphics/tribes/atlanteans/buildings/tower.blend 2010-04-03 18:34:14 +0000 differ
807=== modified file 'graphics/tribes/atlanteans/buildings/warehouse.blend'
808Binary files graphics/tribes/atlanteans/buildings/warehouse.blend 2008-10-19 13:22:54 +0000 and graphics/tribes/atlanteans/buildings/warehouse.blend 2010-04-03 18:34:14 +0000 differ
809=== modified file 'graphics/tribes/atlanteans/buildings/weaponsmith.blend'
810Binary files graphics/tribes/atlanteans/buildings/weaponsmith.blend 2009-05-27 18:04:22 +0000 and graphics/tribes/atlanteans/buildings/weaponsmith.blend 2010-04-03 18:34:14 +0000 differ
811=== modified file 'graphics/tribes/atlanteans/buildings/weaving_mill.blend'
812Binary files graphics/tribes/atlanteans/buildings/weaving_mill.blend 2008-10-19 13:22:54 +0000 and graphics/tribes/atlanteans/buildings/weaving_mill.blend 2010-04-03 18:34:14 +0000 differ
813=== modified file 'graphics/tribes/atlanteans/buildings/well.blend'
814Binary files graphics/tribes/atlanteans/buildings/well.blend 2008-10-25 16:11:50 +0000 and graphics/tribes/atlanteans/buildings/well.blend 2010-04-03 18:34:14 +0000 differ
815=== modified file 'graphics/tribes/atlanteans/pics/flag.blend'
816Binary files graphics/tribes/atlanteans/pics/flag.blend 2010-03-29 18:26:08 +0000 and graphics/tribes/atlanteans/pics/flag.blend 2010-04-03 18:34:14 +0000 differ
817=== modified file 'graphics/tribes/barbarians/buildings/helmsmith/helmsmith-animation.blend'
818Binary files graphics/tribes/barbarians/buildings/helmsmith/helmsmith-animation.blend 2007-05-15 20:25:20 +0000 and graphics/tribes/barbarians/buildings/helmsmith/helmsmith-animation.blend 2010-04-03 18:34:14 +0000 differ
819=== modified file 'graphics/tribes/barbarians/pics/flag.blend'
820Binary files graphics/tribes/barbarians/pics/flag.blend 2010-03-29 18:26:08 +0000 and graphics/tribes/barbarians/pics/flag.blend 2010-04-03 18:34:14 +0000 differ
821=== modified file 'graphics/tribes/barbarians/workers/carrier/carrier_idle.blend'
822Binary files graphics/tribes/barbarians/workers/carrier/carrier_idle.blend 2008-03-10 18:55:15 +0000 and graphics/tribes/barbarians/workers/carrier/carrier_idle.blend 2010-04-03 18:34:14 +0000 differ
823=== modified file 'graphics/tribes/barbarians/workers/carrier/carrier_walk.blend'
824Binary files graphics/tribes/barbarians/workers/carrier/carrier_walk.blend 2010-03-28 13:08:50 +0000 and graphics/tribes/barbarians/workers/carrier/carrier_walk.blend 2010-04-03 18:34:14 +0000 differ
825=== modified file 'graphics/tribes/barbarians/workers/carrier/carrier_walkload.blend'
826Binary files graphics/tribes/barbarians/workers/carrier/carrier_walkload.blend 2008-03-10 18:55:15 +0000 and graphics/tribes/barbarians/workers/carrier/carrier_walkload.blend 2010-04-03 18:34:14 +0000 differ
827=== modified file 'graphics/tribes/barbarians/workers/gamekeeper/gamekeeper_releasein.blend'
828Binary files graphics/tribes/barbarians/workers/gamekeeper/gamekeeper_releasein.blend 2008-03-15 20:49:46 +0000 and graphics/tribes/barbarians/workers/gamekeeper/gamekeeper_releasein.blend 2010-04-03 18:34:14 +0000 differ
829=== modified file 'graphics/tribes/barbarians/workers/gamekeeper/gamekeeper_releaseout.blend'
830Binary files graphics/tribes/barbarians/workers/gamekeeper/gamekeeper_releaseout.blend 2008-03-15 20:49:46 +0000 and graphics/tribes/barbarians/workers/gamekeeper/gamekeeper_releaseout.blend 2010-04-03 18:34:14 +0000 differ
831=== modified file 'graphics/tribes/barbarians/workers/gamekeeper/gamekeeper_walk.blend'
832Binary files graphics/tribes/barbarians/workers/gamekeeper/gamekeeper_walk.blend 2008-03-15 20:49:46 +0000 and graphics/tribes/barbarians/workers/gamekeeper/gamekeeper_walk.blend 2010-04-03 18:34:14 +0000 differ
833=== modified file 'graphics/tribes/barbarians/workers/geologist/geologist_hacking.blend'
834Binary files graphics/tribes/barbarians/workers/geologist/geologist_hacking.blend 2008-03-12 19:22:47 +0000 and graphics/tribes/barbarians/workers/geologist/geologist_hacking.blend 2010-04-03 18:34:14 +0000 differ
835=== modified file 'graphics/tribes/barbarians/workers/geologist/geologist_idle.blend'
836Binary files graphics/tribes/barbarians/workers/geologist/geologist_idle.blend 2008-03-12 19:22:47 +0000 and graphics/tribes/barbarians/workers/geologist/geologist_idle.blend 2010-04-03 18:34:14 +0000 differ
837=== modified file 'graphics/tribes/barbarians/workers/geologist/geologist_walk.blend'
838Binary files graphics/tribes/barbarians/workers/geologist/geologist_walk.blend 2008-03-12 19:22:47 +0000 and graphics/tribes/barbarians/workers/geologist/geologist_walk.blend 2010-04-03 18:34:14 +0000 differ
839=== modified file 'graphics/tribes/barbarians/workers/lumberjack/lumberjack_hacking.blend'
840Binary files graphics/tribes/barbarians/workers/lumberjack/lumberjack_hacking.blend 2008-03-12 19:57:43 +0000 and graphics/tribes/barbarians/workers/lumberjack/lumberjack_hacking.blend 2010-04-03 18:34:14 +0000 differ
841=== modified file 'graphics/tribes/barbarians/workers/lumberjack/lumberjack_idle.blend'
842Binary files graphics/tribes/barbarians/workers/lumberjack/lumberjack_idle.blend 2008-03-12 19:57:43 +0000 and graphics/tribes/barbarians/workers/lumberjack/lumberjack_idle.blend 2010-04-03 18:34:14 +0000 differ
843=== modified file 'graphics/tribes/barbarians/workers/lumberjack/lumberjack_walk.blend'
844Binary files graphics/tribes/barbarians/workers/lumberjack/lumberjack_walk.blend 2008-03-12 19:57:43 +0000 and graphics/tribes/barbarians/workers/lumberjack/lumberjack_walk.blend 2010-04-03 18:34:14 +0000 differ
845=== modified file 'graphics/tribes/barbarians/workers/lumberjack/lumberjack_walkload.blend'
846Binary files graphics/tribes/barbarians/workers/lumberjack/lumberjack_walkload.blend 2008-03-12 19:57:43 +0000 and graphics/tribes/barbarians/workers/lumberjack/lumberjack_walkload.blend 2010-04-03 18:34:14 +0000 differ
847=== modified file 'graphics/tribes/barbarians/workers/ranger/ranger_idle.blend'
848Binary files graphics/tribes/barbarians/workers/ranger/ranger_idle.blend 2008-03-14 22:21:47 +0000 and graphics/tribes/barbarians/workers/ranger/ranger_idle.blend 2010-04-03 18:34:14 +0000 differ
849=== modified file 'graphics/tribes/barbarians/workers/ranger/ranger_plant.blend'
850Binary files graphics/tribes/barbarians/workers/ranger/ranger_plant.blend 2008-03-16 11:07:21 +0000 and graphics/tribes/barbarians/workers/ranger/ranger_plant.blend 2010-04-03 18:34:14 +0000 differ
851=== modified file 'graphics/tribes/barbarians/workers/ranger/ranger_walk.blend'
852Binary files graphics/tribes/barbarians/workers/ranger/ranger_walk.blend 2008-03-14 22:21:47 +0000 and graphics/tribes/barbarians/workers/ranger/ranger_walk.blend 2010-04-03 18:34:14 +0000 differ
853=== modified file 'graphics/tribes/barbarians/workers/ranger/ranger_water.blend'
854Binary files graphics/tribes/barbarians/workers/ranger/ranger_water.blend 2008-03-14 22:21:47 +0000 and graphics/tribes/barbarians/workers/ranger/ranger_water.blend 2010-04-03 18:34:14 +0000 differ
855=== modified file 'graphics/tribes/barbarians/workers/stonemason/stonemason_hacking.blend'
856Binary files graphics/tribes/barbarians/workers/stonemason/stonemason_hacking.blend 2008-03-13 21:59:36 +0000 and graphics/tribes/barbarians/workers/stonemason/stonemason_hacking.blend 2010-04-03 18:34:14 +0000 differ
857=== modified file 'graphics/tribes/barbarians/workers/stonemason/stonemason_idle.blend'
858Binary files graphics/tribes/barbarians/workers/stonemason/stonemason_idle.blend 2008-03-13 21:59:36 +0000 and graphics/tribes/barbarians/workers/stonemason/stonemason_idle.blend 2010-04-03 18:34:14 +0000 differ
859=== modified file 'graphics/tribes/barbarians/workers/stonemason/stonemason_walk.blend'
860Binary files graphics/tribes/barbarians/workers/stonemason/stonemason_walk.blend 2008-03-13 21:59:36 +0000 and graphics/tribes/barbarians/workers/stonemason/stonemason_walk.blend 2010-04-03 18:34:14 +0000 differ
861=== modified file 'graphics/tribes/barbarians/workers/stonemason/stonemason_walkload.blend'
862Binary files graphics/tribes/barbarians/workers/stonemason/stonemason_walkload.blend 2008-03-13 21:59:36 +0000 and graphics/tribes/barbarians/workers/stonemason/stonemason_walkload.blend 2010-04-03 18:34:14 +0000 differ
863=== modified file 'graphics/tribes/empire/pics/flag.blend'
864Binary files graphics/tribes/empire/pics/flag.blend 2010-03-29 18:26:08 +0000 and graphics/tribes/empire/pics/flag.blend 2010-04-03 18:34:14 +0000 differ
865=== modified file 'graphics/tribes/empire/workers/carrier/carrier_walkload.blend'
866Binary files graphics/tribes/empire/workers/carrier/carrier_walkload.blend 2008-03-11 01:12:13 +0000 and graphics/tribes/empire/workers/carrier/carrier_walkload.blend 2010-04-03 18:34:14 +0000 differ
867=== modified file 'graphics/tribes/empire/workers/carrier/emp_carrier.blend'
868Binary files graphics/tribes/empire/workers/carrier/emp_carrier.blend 2008-03-11 01:12:13 +0000 and graphics/tribes/empire/workers/carrier/emp_carrier.blend 2010-04-03 18:34:14 +0000 differ
869=== modified file 'graphics/tribes/empire/workers/carrier/emp_carrier_idle.blend'
870Binary files graphics/tribes/empire/workers/carrier/emp_carrier_idle.blend 2008-03-11 01:12:13 +0000 and graphics/tribes/empire/workers/carrier/emp_carrier_idle.blend 2010-04-03 18:34:14 +0000 differ
871=== modified file 'graphics/tribes/empire/workers/geologist/geologist_hacking.blend'
872Binary files graphics/tribes/empire/workers/geologist/geologist_hacking.blend 2008-03-11 01:12:13 +0000 and graphics/tribes/empire/workers/geologist/geologist_hacking.blend 2010-04-03 18:34:14 +0000 differ
873=== modified file 'graphics/tribes/empire/workers/geologist/geologist_idle.blend'
874Binary files graphics/tribes/empire/workers/geologist/geologist_idle.blend 2008-03-11 01:12:13 +0000 and graphics/tribes/empire/workers/geologist/geologist_idle.blend 2010-04-03 18:34:14 +0000 differ
875=== modified file 'graphics/tribes/empire/workers/geologist/geologist_walk.blend'
876Binary files graphics/tribes/empire/workers/geologist/geologist_walk.blend 2008-03-11 01:12:13 +0000 and graphics/tribes/empire/workers/geologist/geologist_walk.blend 2010-04-03 18:34:14 +0000 differ
877=== modified file 'graphics/tribes/empire/workers/templates/man_athletic_trousers.blend'
878Binary files graphics/tribes/empire/workers/templates/man_athletic_trousers.blend 2008-03-08 11:44:35 +0000 and graphics/tribes/empire/workers/templates/man_athletic_trousers.blend 2010-04-03 18:34:14 +0000 differ
879=== modified file 'graphics/worlds/any_world/bobs/europ_animal_blends/badger/badger_idle.blend'
880Binary files graphics/worlds/any_world/bobs/europ_animal_blends/badger/badger_idle.blend 2007-08-06 00:45:37 +0000 and graphics/worlds/any_world/bobs/europ_animal_blends/badger/badger_idle.blend 2010-04-03 18:34:14 +0000 differ
881=== modified file 'graphics/worlds/any_world/bobs/europ_animal_blends/badger/badger_walk.blend'
882Binary files graphics/worlds/any_world/bobs/europ_animal_blends/badger/badger_walk.blend 2007-08-06 00:45:37 +0000 and graphics/worlds/any_world/bobs/europ_animal_blends/badger/badger_walk.blend 2010-04-03 18:34:14 +0000 differ
883=== modified file 'graphics/worlds/any_world/bobs/europ_animal_blends/brownbear/brownbear_idle.blend'
884Binary files graphics/worlds/any_world/bobs/europ_animal_blends/brownbear/brownbear_idle.blend 2007-08-06 00:45:37 +0000 and graphics/worlds/any_world/bobs/europ_animal_blends/brownbear/brownbear_idle.blend 2010-04-03 18:34:14 +0000 differ
885=== modified file 'graphics/worlds/any_world/bobs/europ_animal_blends/brownbear/brownbear_walk.blend'
886Binary files graphics/worlds/any_world/bobs/europ_animal_blends/brownbear/brownbear_walk.blend 2007-08-06 00:45:37 +0000 and graphics/worlds/any_world/bobs/europ_animal_blends/brownbear/brownbear_walk.blend 2010-04-03 18:34:14 +0000 differ
887=== modified file 'graphics/worlds/any_world/bobs/europ_animal_blends/cattle/cattle_idle.blend'
888Binary files graphics/worlds/any_world/bobs/europ_animal_blends/cattle/cattle_idle.blend 2007-08-06 00:45:37 +0000 and graphics/worlds/any_world/bobs/europ_animal_blends/cattle/cattle_idle.blend 2010-04-03 18:34:14 +0000 differ
889=== modified file 'graphics/worlds/any_world/bobs/europ_animal_blends/cattle/cattle_walk.blend'
890Binary files graphics/worlds/any_world/bobs/europ_animal_blends/cattle/cattle_walk.blend 2007-08-06 00:45:37 +0000 and graphics/worlds/any_world/bobs/europ_animal_blends/cattle/cattle_walk.blend 2010-04-03 18:34:14 +0000 differ
891=== modified file 'graphics/worlds/any_world/bobs/europ_animal_blends/chamois/chamois_idle.blend'
892Binary files graphics/worlds/any_world/bobs/europ_animal_blends/chamois/chamois_idle.blend 2007-08-06 00:45:37 +0000 and graphics/worlds/any_world/bobs/europ_animal_blends/chamois/chamois_idle.blend 2010-04-03 18:34:14 +0000 differ
893=== modified file 'graphics/worlds/any_world/bobs/europ_animal_blends/chamois/chamois_walk.blend'
894Binary files graphics/worlds/any_world/bobs/europ_animal_blends/chamois/chamois_walk.blend 2007-08-06 00:45:37 +0000 and graphics/worlds/any_world/bobs/europ_animal_blends/chamois/chamois_walk.blend 2010-04-03 18:34:14 +0000 differ
895=== modified file 'graphics/worlds/any_world/bobs/europ_animal_blends/donkey/donkey_idle.blend'
896Binary files graphics/worlds/any_world/bobs/europ_animal_blends/donkey/donkey_idle.blend 2007-08-06 00:45:37 +0000 and graphics/worlds/any_world/bobs/europ_animal_blends/donkey/donkey_idle.blend 2010-04-03 18:34:14 +0000 differ
897=== modified file 'graphics/worlds/any_world/bobs/europ_animal_blends/donkey/donkey_walk.blend'
898Binary files graphics/worlds/any_world/bobs/europ_animal_blends/donkey/donkey_walk.blend 2007-08-06 00:45:37 +0000 and graphics/worlds/any_world/bobs/europ_animal_blends/donkey/donkey_walk.blend 2010-04-03 18:34:14 +0000 differ
899=== modified file 'graphics/worlds/any_world/bobs/europ_animal_blends/elk/elk_idle.blend'
900Binary files graphics/worlds/any_world/bobs/europ_animal_blends/elk/elk_idle.blend 2007-08-06 00:45:37 +0000 and graphics/worlds/any_world/bobs/europ_animal_blends/elk/elk_idle.blend 2010-04-03 18:34:14 +0000 differ
901=== modified file 'graphics/worlds/any_world/bobs/europ_animal_blends/elk/elk_walk.blend'
902Binary files graphics/worlds/any_world/bobs/europ_animal_blends/elk/elk_walk.blend 2007-08-06 00:45:37 +0000 and graphics/worlds/any_world/bobs/europ_animal_blends/elk/elk_walk.blend 2010-04-03 18:34:14 +0000 differ
903=== modified file 'graphics/worlds/any_world/bobs/europ_animal_blends/fallowdeer/fallowdeer_idle.blend'
904Binary files graphics/worlds/any_world/bobs/europ_animal_blends/fallowdeer/fallowdeer_idle.blend 2007-08-06 00:45:37 +0000 and graphics/worlds/any_world/bobs/europ_animal_blends/fallowdeer/fallowdeer_idle.blend 2010-04-03 18:34:14 +0000 differ
905=== modified file 'graphics/worlds/any_world/bobs/europ_animal_blends/fallowdeer/fallowdeer_walk.blend'
906Binary files graphics/worlds/any_world/bobs/europ_animal_blends/fallowdeer/fallowdeer_walk.blend 2007-08-06 00:45:37 +0000 and graphics/worlds/any_world/bobs/europ_animal_blends/fallowdeer/fallowdeer_walk.blend 2010-04-03 18:34:14 +0000 differ
907=== modified file 'graphics/worlds/any_world/bobs/europ_animal_blends/fox/fox_idle.blend'
908Binary files graphics/worlds/any_world/bobs/europ_animal_blends/fox/fox_idle.blend 2007-08-06 00:45:37 +0000 and graphics/worlds/any_world/bobs/europ_animal_blends/fox/fox_idle.blend 2010-04-03 18:34:14 +0000 differ
909=== modified file 'graphics/worlds/any_world/bobs/europ_animal_blends/fox/fox_walk.blend'
910Binary files graphics/worlds/any_world/bobs/europ_animal_blends/fox/fox_walk.blend 2007-08-06 00:45:37 +0000 and graphics/worlds/any_world/bobs/europ_animal_blends/fox/fox_walk.blend 2010-04-03 18:34:14 +0000 differ
911=== modified file 'graphics/worlds/any_world/bobs/europ_animal_blends/goat/goat_idle.blend'
912Binary files graphics/worlds/any_world/bobs/europ_animal_blends/goat/goat_idle.blend 2007-08-06 00:45:37 +0000 and graphics/worlds/any_world/bobs/europ_animal_blends/goat/goat_idle.blend 2010-04-03 18:34:14 +0000 differ
913=== modified file 'graphics/worlds/any_world/bobs/europ_animal_blends/goat/goat_walk.blend'
914Binary files graphics/worlds/any_world/bobs/europ_animal_blends/goat/goat_walk.blend 2007-08-06 00:45:37 +0000 and graphics/worlds/any_world/bobs/europ_animal_blends/goat/goat_walk.blend 2010-04-03 18:34:14 +0000 differ
915=== modified file 'graphics/worlds/any_world/bobs/europ_animal_blends/lynx/lynx_idle.blend'
916Binary files graphics/worlds/any_world/bobs/europ_animal_blends/lynx/lynx_idle.blend 2007-08-06 00:45:37 +0000 and graphics/worlds/any_world/bobs/europ_animal_blends/lynx/lynx_idle.blend 2010-04-03 18:34:14 +0000 differ
917=== modified file 'graphics/worlds/any_world/bobs/europ_animal_blends/lynx/lynx_walk.blend'
918Binary files graphics/worlds/any_world/bobs/europ_animal_blends/lynx/lynx_walk.blend 2007-08-06 00:45:37 +0000 and graphics/worlds/any_world/bobs/europ_animal_blends/lynx/lynx_walk.blend 2010-04-03 18:34:14 +0000 differ
919=== modified file 'graphics/worlds/any_world/bobs/europ_animal_blends/marten/marten_idle.blend'
920Binary files graphics/worlds/any_world/bobs/europ_animal_blends/marten/marten_idle.blend 2007-08-06 00:45:37 +0000 and graphics/worlds/any_world/bobs/europ_animal_blends/marten/marten_idle.blend 2010-04-03 18:34:14 +0000 differ
921=== modified file 'graphics/worlds/any_world/bobs/europ_animal_blends/marten/marten_walk.blend'
922Binary files graphics/worlds/any_world/bobs/europ_animal_blends/marten/marten_walk.blend 2007-08-06 00:45:37 +0000 and graphics/worlds/any_world/bobs/europ_animal_blends/marten/marten_walk.blend 2010-04-03 18:34:14 +0000 differ
923=== modified file 'graphics/worlds/any_world/bobs/europ_animal_blends/pig/pig_idle.blend'
924Binary files graphics/worlds/any_world/bobs/europ_animal_blends/pig/pig_idle.blend 2007-08-06 00:45:37 +0000 and graphics/worlds/any_world/bobs/europ_animal_blends/pig/pig_idle.blend 2010-04-03 18:34:14 +0000 differ
925=== modified file 'graphics/worlds/any_world/bobs/europ_animal_blends/pig/pig_walk.blend'
926Binary files graphics/worlds/any_world/bobs/europ_animal_blends/pig/pig_walk.blend 2007-08-06 00:45:37 +0000 and graphics/worlds/any_world/bobs/europ_animal_blends/pig/pig_walk.blend 2010-04-03 18:34:14 +0000 differ
927=== modified file 'graphics/worlds/any_world/bobs/europ_animal_blends/reddeer/reddeer_idle.blend'
928Binary files graphics/worlds/any_world/bobs/europ_animal_blends/reddeer/reddeer_idle.blend 2007-08-06 00:45:37 +0000 and graphics/worlds/any_world/bobs/europ_animal_blends/reddeer/reddeer_idle.blend 2010-04-03 18:34:14 +0000 differ
929=== modified file 'graphics/worlds/any_world/bobs/europ_animal_blends/reddeer/reddeer_walk.blend'
930Binary files graphics/worlds/any_world/bobs/europ_animal_blends/reddeer/reddeer_walk.blend 2007-08-06 00:45:37 +0000 and graphics/worlds/any_world/bobs/europ_animal_blends/reddeer/reddeer_walk.blend 2010-04-03 18:34:14 +0000 differ
931=== modified file 'graphics/worlds/any_world/bobs/europ_animal_blends/reindeer/reindeer_idle.blend'
932Binary files graphics/worlds/any_world/bobs/europ_animal_blends/reindeer/reindeer_idle.blend 2007-08-06 00:45:37 +0000 and graphics/worlds/any_world/bobs/europ_animal_blends/reindeer/reindeer_idle.blend 2010-04-03 18:34:14 +0000 differ
933=== modified file 'graphics/worlds/any_world/bobs/europ_animal_blends/reindeer/reindeer_walk.blend'
934Binary files graphics/worlds/any_world/bobs/europ_animal_blends/reindeer/reindeer_walk.blend 2007-08-06 00:45:37 +0000 and graphics/worlds/any_world/bobs/europ_animal_blends/reindeer/reindeer_walk.blend 2010-04-03 18:34:14 +0000 differ
935=== modified file 'graphics/worlds/any_world/bobs/europ_animal_blends/sheep/sheep_idle.blend'
936Binary files graphics/worlds/any_world/bobs/europ_animal_blends/sheep/sheep_idle.blend 2007-08-06 00:45:37 +0000 and graphics/worlds/any_world/bobs/europ_animal_blends/sheep/sheep_idle.blend 2010-04-03 18:34:14 +0000 differ
937=== modified file 'graphics/worlds/any_world/bobs/europ_animal_blends/sheep/sheep_walk.blend'
938Binary files graphics/worlds/any_world/bobs/europ_animal_blends/sheep/sheep_walk.blend 2007-08-06 00:45:37 +0000 and graphics/worlds/any_world/bobs/europ_animal_blends/sheep/sheep_walk.blend 2010-04-03 18:34:14 +0000 differ
939=== modified file 'graphics/worlds/any_world/bobs/europ_animal_blends/wildboar/wildboar_idle.blend'
940Binary files graphics/worlds/any_world/bobs/europ_animal_blends/wildboar/wildboar_idle.blend 2007-08-06 00:45:37 +0000 and graphics/worlds/any_world/bobs/europ_animal_blends/wildboar/wildboar_idle.blend 2010-04-03 18:34:14 +0000 differ
941=== modified file 'graphics/worlds/any_world/bobs/europ_animal_blends/wildboar/wildboar_walk.blend'
942Binary files graphics/worlds/any_world/bobs/europ_animal_blends/wildboar/wildboar_walk.blend 2007-08-06 00:45:37 +0000 and graphics/worlds/any_world/bobs/europ_animal_blends/wildboar/wildboar_walk.blend 2010-04-03 18:34:14 +0000 differ
943=== modified file 'graphics/worlds/any_world/bobs/europ_animal_blends/wildhorse/wildhorse_idle.blend'
944Binary files graphics/worlds/any_world/bobs/europ_animal_blends/wildhorse/wildhorse_idle.blend 2007-08-06 00:45:37 +0000 and graphics/worlds/any_world/bobs/europ_animal_blends/wildhorse/wildhorse_idle.blend 2010-04-03 18:34:14 +0000 differ
945=== modified file 'graphics/worlds/any_world/bobs/europ_animal_blends/wildhorse/wildhorse_walk.blend'
946Binary files graphics/worlds/any_world/bobs/europ_animal_blends/wildhorse/wildhorse_walk.blend 2007-08-06 00:45:37 +0000 and graphics/worlds/any_world/bobs/europ_animal_blends/wildhorse/wildhorse_walk.blend 2010-04-03 18:34:14 +0000 differ
947=== modified file 'graphics/worlds/any_world/bobs/europ_animal_blends/wisent/wisent_idle.blend'
948Binary files graphics/worlds/any_world/bobs/europ_animal_blends/wisent/wisent_idle.blend 2007-08-06 00:45:37 +0000 and graphics/worlds/any_world/bobs/europ_animal_blends/wisent/wisent_idle.blend 2010-04-03 18:34:14 +0000 differ
949=== modified file 'graphics/worlds/any_world/bobs/europ_animal_blends/wisent/wisent_walk.blend'
950Binary files graphics/worlds/any_world/bobs/europ_animal_blends/wisent/wisent_walk.blend 2007-08-06 00:45:37 +0000 and graphics/worlds/any_world/bobs/europ_animal_blends/wisent/wisent_walk.blend 2010-04-03 18:34:14 +0000 differ
951=== modified file 'graphics/worlds/any_world/bobs/europ_animal_blends/wolf/wolf_idle.blend'
952Binary files graphics/worlds/any_world/bobs/europ_animal_blends/wolf/wolf_idle.blend 2007-08-06 00:45:37 +0000 and graphics/worlds/any_world/bobs/europ_animal_blends/wolf/wolf_idle.blend 2010-04-03 18:34:14 +0000 differ
953=== modified file 'graphics/worlds/any_world/bobs/europ_animal_blends/wolf/wolf_walk.blend'
954Binary files graphics/worlds/any_world/bobs/europ_animal_blends/wolf/wolf_walk.blend 2007-08-06 00:45:37 +0000 and graphics/worlds/any_world/bobs/europ_animal_blends/wolf/wolf_walk.blend 2010-04-03 18:34:14 +0000 differ

Subscribers

People subscribed via source and target branches

to status/vote changes: