Changeset 548
- Timestamp:
- 05/20/08 12:40:51 (8 months ago)
- Files:
-
- trunk/run/defend.cfg (modified) (1 diff)
- trunk/src/defend/Graphics.d (modified) (1 diff)
- trunk/src/defend/objects/Core.d (modified) (4 diffs)
- trunk/src/gen/rend/Renderer.d (modified) (1 diff)
- trunk/src/gen/rend/opengl/Shader.d (modified) (2 diffs)
- trunk/src/gen/scene/ParticleSystem.d (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/run/defend.cfg
r544 r548 38 38 39 39 // object's team colors glow 40 objects_glow = 140 objects_glow = 0 trunk/src/defend/Graphics.d
r547 r548 2 2 3 3 import tango.io.Stdout; 4 import tango.math.Math; 4 5 5 6 import gen.core.TaskManager; trunk/src/defend/objects/Core.d
r543 r548 1663 1663 { 1664 1664 private: 1665 // Object type loaders and skeletons1665 // Object type loaders 1666 1666 alias ObjectTypeInfo delegate() ObjectTypeLoader; 1667 1667 ObjectTypeLoader[object_type_t] objectTypeLoaders; 1668 1668 ObjectTypeInfo[object_type_t] objectTypeSkeletons; 1669 1669 1670 // Technology loaders and skeletons1670 // Technology loaders 1671 1671 alias Technology delegate() TechLoader; 1672 1672 TechLoader[tech_t] techLoaders; 1673 Technology[tech_t] techSkeletons;1674 1673 1675 1674 // Civilisations … … 1691 1690 } 1692 1691 1693 // Create object type and technology skeletons with the loaders1694 final void loadSkeletons(GameObjectManager from, object_type_t[] types,1695 tech_t[] techs)1696 {1697 // Object types1698 foreach(t; types)1699 {1700 if(!(t in objectTypeSkeletons))1701 {1702 //synchronized(Stdout) Stdout(t).newline;1703 1704 with(objectTypeSkeletons[t] = objectTypeLoaders[t]())1705 {1706 gameObjects = from;1707 objectType = t;1708 }1709 }1710 }1711 1712 // Technologies1713 foreach(t; techs)1714 {1715 if(!(t in techSkeletons))1716 {1717 with(techSkeletons[t] = techLoaders[t]())1718 {1719 gameObjects = from;1720 techType = t;1721 }1722 }1723 }1724 }1725 1726 // Dispose all skeletons1727 final void unload()1728 {1729 // Object types1730 {1731 object_type_t[] todo;1732 1733 foreach(key, val; objectTypeSkeletons)1734 todo ~= key;1735 1736 foreach(key; todo)1737 {1738 auto object = objectTypeSkeletons[key];1739 delete object;1740 1741 objectTypeSkeletons.remove(key);1742 }1743 }1744 1745 // Technologies1746 {1747 tech_t[] todo;1748 1749 foreach(key, val; techSkeletons)1750 todo ~= key;1751 1752 foreach(key; todo)1753 {1754 auto object = techSkeletons[key];1755 delete object;1756 1757 techSkeletons.remove(key);1758 }1759 }1760 }1761 1762 1692 // Load a civilisation 1763 1693 final Civ loadCiv(GameObjectManager from, player_id_t player, char[] type) … … 1766 1696 auto ti = civTypeList[type]; 1767 1697 1768 // First, load all needed skeletons1769 loadSkeletons(from, ti.objectTypes, ti.techs);1770 1771 1698 auto result = new Civ; 1772 1699 result.typeInfo = ti; 1773 1700 result.owner = player; 1774 1701 1775 // C opy the object type skeletons1702 // Create object types 1776 1703 foreach(t; ti.objectTypes) 1777 1704 { 1778 with(result.objectTypes[t] = objectType Skeletons[t].dup)1705 with(result.objectTypes[t] = objectTypeLoaders[t]()) 1779 1706 { 1780 1707 owner = player; 1781 1782 assert(gameObjects is from);1708 gameObjects = from; 1709 objectType = t; 1783 1710 } 1784 1711 } 1785 1712 1786 // C opy the technology skeletons1713 // Create technologies 1787 1714 foreach(t; ti.techs) 1788 1715 { 1789 with(result.techs[t] = tech Skeletons[t].dup)1716 with(result.techs[t] = techLoaders[t]()) 1790 1717 { 1791 1718 owner = player; 1792 1793 assert(gameObjects is from);1719 gameObjects = from; 1720 techType = t; 1794 1721 } 1795 1722 } … … 1824 1751 1825 1752 civTypeList[ti.name] = ti; 1753 } 1754 1755 // Unload 1756 void unload() 1757 { 1758 1826 1759 } 1827 1760 } trunk/src/gen/rend/Renderer.d
r546 r548 174 174 175 175 void setUniform(char[] name, int value); 176 void setUniform(char[] name, vec2 value); 176 177 void setUniform(char[] name, vec3 value); 178 void setUniform(char[] name, vec4 value); 177 179 void setUniform(char[] name, mat4 value); 178 180 } trunk/src/gen/rend/opengl/Shader.d
r544 r548 220 220 } 221 221 222 override void setUniform(char[] name, vec2 value) 223 { 224 glUniform2fARB(uniformHandle(name), value.tuple); 225 } 226 222 227 override void setUniform(char[] name, vec3 value) 223 228 { … … 225 230 } 226 231 232 override void setUniform(char[] name, vec4 value) 233 { 234 glUniform4fARB(uniformHandle(name), value.tuple); 235 } 236 227 237 override void setUniform(char[] name, mat4 value) 228 238 { trunk/src/gen/scene/ParticleSystem.d
r541 r548 27 27 mixin MLinkedList!(Particle); 28 28 29 vec3 position ;30 vec3 velocity ;31 vec3 acceleration ;32 vec4 color ;33 float age ;34 float size ;29 vec3 position = vec3.zero; 30 vec3 velocity = vec3.zero; 31 vec3 acceleration = vec3.zero; 32 vec4 color = vec4.zero; 33 float age = 0; 34 float size = 0; 35 35 bool alive; 36 36 }
