Compare commits

..

325 Commits

Author SHA1 Message Date
Faerbit
955eee5a60 Linearization of depth buffer. Didn't change graphics in any way. 2015-01-19 00:40:28 +01:00
Steffen
d26722595e Added the option to define initial position constraints in the Level.xml file. 2015-01-17 14:07:12 +01:00
Steffen
10017bb855 Updated scripts and added scripts for opening the door in Level1 2015-01-17 13:37:09 +01:00
Steffen
04df8bd22f Created a moveObject function in the Level class. 2015-01-17 13:30:33 +01:00
Steffen
f496532126 Removed the lua state from the physics. 2015-01-17 13:11:43 +01:00
Steffen
b897dc5457 Added new composition 2015-01-17 12:38:27 +01:00
Steffen
147ae17789 Added ignoreHeightmap option to compositions in Compositions.xml. 2015-01-17 12:24:54 +01:00
Steffen
02a9cd7559 Added to TARGET_LINK_LIBRARIES, now compiles on my home pc. 2015-01-17 12:12:27 +01:00
Steffen Fündgens
cba7d170da Merge branch 'master' of github.com:Faerbit/swp 2015-01-16 16:52:11 +01:00
Steffen Fündgens
66f892bc15 started working on an actual trigger for Level1 2015-01-16 16:52:04 +01:00
Steffen Fündgens
ed6e257b69 moved the triggered/not triggered information to lua 2015-01-16 16:51:36 +01:00
sfroitzheim
ec29499416 Fixed a few bugs like duplicate marble(bridge will be fixed at monday) 2015-01-16 16:47:55 +01:00
sfroitzheim
f39fd522ce Merge branch 'master' of https://github.com/Faerbit/swp 2015-01-16 16:38:24 +01:00
sfroitzheim
a83e6155b3 Additional changes with the heightmap 2015-01-16 16:37:00 +01:00
Jasper
c7cc43a399 Merge branch 'master' of github.com:Faerbit/swp 2015-01-16 16:19:53 +01:00
Jasper
a0c73056c6 Added position Constraint structure, an add/remove function for them, and added their handeling to the update function 2015-01-16 16:17:26 +01:00
Jasper
ed16b4aab7 Fixed block so that it doesnt BLOW EVERYTHING UP! 2015-01-16 15:40:07 +01:00
Steffen Fündgens
2c0d4424a2 changed heightmap scaling 2015-01-16 14:02:36 +01:00
Faerbit
5df5d5b974 Removing the rest of the binary files from lua. 2015-01-15 17:39:20 +01:00
Faerbit
e80a22ebb6 Adding libreadline for lua to ubuntu docker image. 2015-01-15 17:34:41 +01:00
Faerbit
eec5ce85c1 Now also compiling lua from source before everything else. 2015-01-15 17:26:37 +01:00
Faerbit
f1b54a258f Removing lua binaries because they shouldn't be tracked. 2015-01-15 17:17:14 +01:00
Faerbit
e54e59e495 Adding lua Makefiles. 2015-01-15 17:15:53 +01:00
sfroitzheim
4e29a44505 Improved level heightmap (still not finished though) 2015-01-15 15:09:42 +01:00
Steffen Fündgens
1288c62ce9 Triggers now adapt if the object they want to do something with gets deleted or changes its index. 2015-01-13 18:18:13 +01:00
Steffen Fündgens
c6d4e1d916 Added and used a new trigger without recompiling, scripting really works. :) 2015-01-13 17:52:31 +01:00
Steffen Fündgens
b483cb2eb9 Now passing the Lua State to the physics, so that Lua can directly access physics functions. 2015-01-13 17:50:15 +01:00
Steffen Fündgens
4df1b8e3cb Lua script works now, worked around the bug by saving the name as a std::string. 2015-01-13 17:21:15 +01:00
Steffen Fündgens
46f163d748 Moved triggering to lua, got a strange bug with the const char* holding the name of the lua script. 2015-01-13 13:52:22 +01:00
Steffen Fündgens
e35899523f Integrated Lua into our project. Triggers are now able to call a Lua Script. Havent figured out how to let the Script do anything usefull yet. 2015-01-09 16:51:28 +01:00
Steffen Fündgens
aee4d4a8ff Moved all dampning parameters (except for the camera) to Compositions.xml. 2015-01-06 13:31:53 +01:00
Steffen Fündgens
cc4842a628 Moved friction and player strength to Level.xml. 2015-01-06 13:14:30 +01:00
Steffen Fündgens
a5de8e733e Added the option to give a trigger a target composition. The position the trigger activates at is the old manually set position + the position of the target composition. 2014-12-19 16:15:29 +01:00
Steffen Fündgens
55ba919f7e Ignoring blender backup files. 2014-12-19 15:22:34 +01:00
Steffen Fündgens
bbdc6be85d Also increased strength of the player ball. 2014-12-19 15:21:38 +01:00
Steffen Fündgens
831b0ebbb6 Tweaked ball physics. 2014-12-19 15:20:49 +01:00
Steffen Fündgens
2d4e590308 Fixed bug with created too many faces. 2014-12-19 15:20:05 +01:00
Steffen Fündgens
9deaf22bca Triangulated block. 2014-12-19 15:14:33 +01:00
Steffen Fündgens
1998e2abc9 Triangulated faces of the torch and added it to the Level again. 2014-12-19 15:09:00 +01:00
Steffen Fündgens
965e865d92 Removing useless mtl file. 2014-12-19 15:07:43 +01:00
Steffen Fündgens
4f677b427c Merge branch 'master' of github.com:Faerbit/swp 2014-12-19 13:36:05 +01:00
Steffen Fündgens
9f3b11c274 Changed the default objectNum for triggers from 1 to 0. Moved blocks up so they dont spawn in the heightmap. 2014-12-19 13:35:17 +01:00
Steffen Fündgens
749f8cb2dc added comments to Compositions.xml and adjusted marble size. 2014-12-19 13:33:59 +01:00
Faerbit
46a32b8617 Calulating fogEnd by farPlane. 2014-12-19 13:27:05 +01:00
Faerbit
5f87600bfb Fixed crashing if no lights are present. 2014-12-19 13:09:25 +01:00
Steffen Fündgens
cb3ccb3668 Moved triggers into compositions. 2014-12-16 13:46:49 +01:00
Fabian Klemp
d91d5e2028 Moved trigger functions to trigger class. 2014-12-16 12:40:30 +01:00
Fabian Klemp
bab84f01c1 Fixed triggers. Now deletes a truly random object. 2014-12-16 12:19:48 +01:00
Fabian Klemp
9497e99b58 Initialized pseudo random generator. 2014-12-16 12:17:30 +01:00
Faerbit
8a40b1705f Added slides. 2014-12-16 00:23:35 +01:00
Faerbit
70aab2a58f Made trigger more presentation friendly. 2014-12-15 23:36:22 +01:00
Faerbit
13c9893a47 Disabled point light shadows, because they look very wrong. 2014-12-15 22:59:13 +01:00
Faerbit
4fe9cc2bf8 Made level more presentation friendly. 2014-12-15 22:58:48 +01:00
Faerbit
8da25e5beb Removing debug output. 2014-12-15 22:03:04 +01:00
Faerbit
5ad46dd5e9 Revert "Not using pointlight shadows."
This reverts commit e00cb787c8.
2014-12-15 22:00:23 +01:00
Jasper
ebb7045753 Merge branch 'master' of github.com:Faerbit/swp
Conflicts:
	level.cc
2014-12-15 19:13:25 +01:00
Jasper
c993bd8f77 Tried to adjust box. 2014-12-15 19:11:28 +01:00
Steffen Fündgens
689a5f3d1c Adding *.db files to gitignore. 2014-12-15 19:00:40 +01:00
Steffen Fündgens
124ae53f59 Fixing texture file name of marble. 2014-12-15 19:00:07 +01:00
Steffen Fündgens
6d6f798d12 Changed to Lvl1. 2014-12-15 18:58:32 +01:00
Steffen Fündgens
2a1119da79 Implemented simple triggers. 2014-12-15 18:43:10 +01:00
Steffen Fündgens
e00cb787c8 Not using pointlight shadows. 2014-12-15 16:48:42 +01:00
Steffen Fündgens
23abffb3ee Merge branch 'master' of github.com:Faerbit/swp 2014-12-15 16:34:54 +01:00
Steffen Fündgens
b43f37f0a0 Doubled heightmap scale. 2014-12-15 16:34:44 +01:00
Fabian Klemp
2e75aff5af Adding torch blenderfile. 2014-12-15 16:27:04 +01:00
Jasper
9964b9be34 Merge branch 'master' of github.com:Faerbit/swp 2014-12-15 16:04:36 +01:00
Jasper
e49e4c2177 Composition scales addapted
Physics added trimeshshapes
2014-12-15 16:02:04 +01:00
Faerbit
15f91a19b9 Merge branch 'master' of github.com:Faerbit/swp 2014-12-15 15:59:12 +01:00
Faerbit
05cac9c520 Point light shadows for the first point light does something. Seems pretty broken. 2014-12-15 15:58:55 +01:00
sfroitzheim
0eacb96e81 Version 1.1 of the heightmap 2014-12-15 15:45:56 +01:00
sfroitzheim
6b3db436dc Added Heightmap prototype(could be garbage) 2014-12-15 15:13:29 +01:00
Faerbit
df182abd06 Reducing OpenGL version number to 3.2 again. 2014-12-15 15:10:19 +01:00
Steffen Fündgens
db1de34bce Merge branch 'master' of github.com:Faerbit/swp 2014-12-15 14:59:09 +01:00
Steffen Fündgens
66cf9ef8d6 Implemented half the loading of triggers. 2014-12-15 14:59:03 +01:00
Faerbit
91567fca78 Merge branch 'master' of github.com:Faerbit/swp 2014-12-15 14:57:50 +01:00
sfroitzheim
fdeb783055 Merge branch 'master' of https://github.com/Faerbit/swp 2014-12-15 14:25:33 +01:00
sfroitzheim
121f357d23 Added a simple wall to models/textures 2014-12-15 14:24:11 +01:00
Steffen Fündgens
81bead5a97 Fixed the trigger skeleton 2014-12-15 13:39:24 +01:00
Steffen Fündgens
2e472f8921 Merge branch 'master' of github.com:Faerbit/swp 2014-12-15 13:36:13 +01:00
Steffen Fündgens
b744d5b440 Startet implementing a trigger skeleton. 2014-12-15 13:36:04 +01:00
Faerbit
ca5618bce2 Now using OpenGL 4.0. 2014-12-15 13:31:31 +01:00
sfroitzheim
9c92954bc0 Fixed Poles of Marble 2014-12-15 13:28:05 +01:00
Faerbit
acf7325553 MVPs are only needed for directional shadows and not for point light shadows (forgot one thing. 2014-12-15 13:23:35 +01:00
Faerbit
7dae5a5e8c Merge branch 'master' of github.com:Faerbit/swp 2014-12-15 13:16:36 +01:00
Faerbit
f306730920 MVPs are only needed for directional shadows and not for point light shadows. 2014-12-15 13:16:27 +01:00
Steffen Fündgens
ad24191000 Merge branch 'master' of github.com:Faerbit/swp 2014-12-15 13:08:47 +01:00
Steffen Fündgens
56be22a460 Moved mass from objectType to singular objects. Now loading physics from xml, but with a dummy-box instead of meshes. 2014-12-15 13:08:35 +01:00
Faerbit
7a95ddf6bb Removing commented code. 2014-12-15 12:55:48 +01:00
Faerbit
4d36c9fb97 Moved calculation of shadowMVP to the CPU side. 2014-12-15 12:41:30 +01:00
Faerbit
6ff8f33017 Fixed a parenthesis. 2014-12-15 11:53:31 +01:00
Faerbit
55cc68a333 Moving MVP calculation to the CPU side. 2014-12-15 11:45:31 +01:00
Faerbit
c2cf71e0e6 Replacing buildFrustum with standard glm call. 2014-12-15 11:22:32 +01:00
Faerbit
cec0043caf Implemented cube map depth rendering from lighting positions. 2014-12-15 02:09:33 +01:00
Faerbit
ed347725e6 Limited light sources to 32 instead of 128. 2014-12-15 01:16:43 +01:00
Faerbit
b2241a671e Made tinyxml source files not executable. 2014-12-15 01:15:08 +01:00
Faerbit
d45ed9060f Made getLights return a pointer to avoid copying around large amounts of light data every frame. 2014-12-15 01:12:51 +01:00
Faerbit
01212ba007 Init graphics with the level instead of passing it to the render function everytime. 2014-12-15 01:05:46 +01:00
Faerbit
b5f7e73c4c Removing torches for better testing. 2014-12-15 01:03:48 +01:00
Steffen Fündgens
4ddc21d3c9 Debugging. Had to comment out the loading of physics because it crashed the programm. 2014-12-12 18:38:12 +01:00
Steffen Fündgens
3504a2d209 Added skeleton for trigger loading. Added comments to identify closing brackets. 2014-12-12 18:02:31 +01:00
Steffen Fündgens
85c6132c3e Added indexing of the created objects for use in triggers. Added some comments to the loading. 2014-12-12 17:47:33 +01:00
Steffen Fündgens
c406bd4b62 Converter now adds a Dummy-Trigger to the xml. Copy and customize it in the Levelx.xml to create actual triggers. 2014-12-12 17:18:31 +01:00
Steffen Fündgens
caea9b7181 Implemented loading of physical objects. Compositions.xml holds mostly Dummy-Values for those. 2014-12-12 16:52:05 +01:00
Steffen Fündgens
f8d9ff0919 Adjusted the name of the marbles texture in Compositions.xml... 2014-12-12 16:28:34 +01:00
Steffen Fündgens
71a05e5b1e Merge branch 'master' of github.com:Faerbit/swp 2014-12-12 16:25:18 +01:00
Steffen Fündgens
d67b7b5b23 Implemented loading of gloabal lighting. Added physics parameters to Compositions.xml. 2014-12-12 16:24:47 +01:00
Steffen Fündgens
a1981ecbca Changed fogColor to fogColour. Moved some global Parameters to the xml. 2014-12-12 15:41:17 +01:00
sfroitzheim
a05095c9dd Triangulated Faces 2014-12-12 15:16:56 +01:00
sfroitzheim
20f66d996f Fixed wrong texture name 2014-12-12 15:09:51 +01:00
sfroitzheim
cc64a524fc Additional Marbletexture optimizing 2014-12-12 15:05:53 +01:00
sfroitzheim
b5e5289511 Improved marbletexture and added Blenderfile 2014-12-12 14:58:12 +01:00
Steffen Fündgens
7cb146dbbb Changed errorChecking in the converter. 2014-12-12 12:31:24 +01:00
Faerbit
bd1cedcc23 Removing stencil buffer from depthTextures. 2014-12-12 02:19:41 +01:00
Steffen Fündgens
28839b4d3a changed error checking syntax to make code more compact 2014-12-08 15:48:46 +01:00
Steffen Fündgens
2790bddd11 Added loading of lights, adjusted Compositions.xml and Level0.png to test it. 2014-12-08 15:19:50 +01:00
Steffen Fündgens
030f2f3bdd Finished loading of graphical objects, please check if my interpretation of the rotation is corect(copied from entity.cc). No physics loaded yet. 2014-12-08 14:54:27 +01:00
Steffen Fündgens
cf4cbd92fa Converting unsigned ints to regular ints again, undid that while merging. 2014-12-08 14:24:26 +01:00
Steffen Fündgens
68202bdef2 merging 2014-12-08 14:19:23 +01:00
Steffen Fündgens
b0b43cc2ee Added error checking for all XML Queries, fixed bugs and continued to implement loading from xml. 2014-12-08 14:10:08 +01:00
Faerbit
b51cc256bd Reexporting column, because it had no normals. 2014-12-08 13:43:47 +01:00
Faerbit
3f90032bf0 Converting unsinged ints to regular ints, because tinyxml cannot query for unsigned ones and thus negates the purpose of using unsigned ones. This also causes compiler errors. 2014-12-08 13:33:38 +01:00
Faerbit
1d82412576 One exclamation mark is enough. 2014-12-08 13:28:50 +01:00
Steffen Fündgens
4ab04faf68 Implemented more of the loading from xml 2014-12-05 17:14:43 +01:00
Steffen Fündgens
f4529d1430 Added objectData to Compositions.xml. It contains texture data as of now. 2014-12-05 16:55:17 +01:00
Steffen Fündgens
a6c65efcee Changed model and texture names to not start with capital letters. 2014-12-05 16:36:31 +01:00
Steffen Fündgens
b5deb6b9e7 Merge branch 'master' of github.com:Faerbit/swp 2014-12-05 16:19:06 +01:00
Steffen Fündgens
da197f063f Fixed the filesytem for the converter. 2014-12-05 16:18:48 +01:00
sfroitzheim
4805a4a3ce Merge branch 'master' of https://github.com/Faerbit/swp 2014-12-05 15:01:16 +01:00
Steffen Fündgens
e79128a1a5 Added Level0.png. 2014-12-05 15:00:46 +01:00
sfroitzheim
3268881a13 Merge branch 'master' of https://github.com/Faerbit/swp 2014-12-05 14:51:23 +01:00
sfroitzheim
c899c4e67e Fixed some display bugs with the column. 2014-12-05 14:49:23 +01:00
Steffen Fündgens
41584ef993 Merge branch 'master' of github.com:Faerbit/swp 2014-12-05 14:45:57 +01:00
Steffen Fündgens
24edf1aca9 Implemented error checking for XML. Fixed loading of OBJ-Files. 2014-12-05 14:45:44 +01:00
sfroitzheim
73d5e5fd52 Added a movable Block that will be used to be pushed on switches. 2014-12-05 14:39:51 +01:00
sfroitzheim
d4168fb002 Changed Columntexture to something better. 2014-12-05 14:39:08 +01:00
Steffen Fündgens
5e44f9680e integrating tinyxml into level, adding lights to compositions 2014-12-05 12:47:02 +01:00
Steffen Fündgens
7e7754ca64 Merge branch 'master' of github.com:Faerbit/swp 2014-12-05 12:13:45 +01:00
Faerbit
b9b7a6e7b4 Put some code in a function. 2014-12-05 00:57:17 +01:00
Faerbit
8eb0f6719a Now generating Mipmaps for textures. 2014-12-04 18:58:16 +01:00
Faerbit
9e4cc5e4f7 Setting wrap mode of depthTextures to CLAMP_TO_EDGE to remove seams. 2014-12-04 17:39:35 +01:00
Faerbit
1c687f5759 Implemented cascaded shadow mapping. 2014-12-04 17:19:58 +01:00
Faerbit
0cb741dbc3 Implemented early bailing. 2014-12-04 15:08:08 +01:00
Steffen Fündgens
0e06ae9fd3 changed filePath to levelNum 2014-12-04 15:07:31 +01:00
Faerbit
e005c97439 Implemented poisson sampling. 2014-12-04 14:53:07 +01:00
Faerbit
b38e24c3db Disable culling because it seems to give slightly worse FPS. 2014-12-04 14:46:39 +01:00
Faerbit
a8ac3c064a Improving bias on slopes. 2014-12-04 13:26:06 +01:00
Faerbit
3b0881f9c1 Adding culling. 2014-12-04 13:23:25 +01:00
Faerbit
049819c47a Changing shadow map sampler from sampler2D to sampler2Dshadow and removing now useless colour texture. 2014-12-04 13:21:20 +01:00
Faerbit
fe0535036f Changing directional light vector to match origin of the sun on the skysphere texture. 2014-12-04 12:19:39 +01:00
Faerbit
588b499f93 Making framebuffer private again. (Was public for debugging. 2014-12-04 01:22:23 +01:00
Faerbit
f559eced68 Implemented basic shadows for sun light. Also fixed bug with far plane always staying the same. 2014-12-04 01:13:59 +01:00
Faerbit
08716abfe8 Always automatically update docker container. 2014-12-03 11:17:24 +01:00
Faerbit
7a76519edb Exiting converter if no input file is given. 2014-12-03 11:09:37 +01:00
Steffen Fündgens
581e1cd111 adjusting converter to work with black and white image backgrounds 2014-12-02 13:37:31 +01:00
Steffen Fündgens
965c3f96f9 still merging... 2014-12-02 13:19:19 +01:00
Steffen Fündgens
4adc1198b8 Merged master and converter 2014-12-02 13:17:33 +01:00
Steffen Fündgens
b6c694b350 Compositions.xml makes sense now 2014-12-02 13:13:20 +01:00
Faerbit
f38ced6603 Moving shader management completely into graphics. 2014-12-01 17:49:59 +01:00
Faerbit
64aeae8143 Removing spammy comments. 2014-12-01 17:44:58 +01:00
Faerbit
8b21495faa Adding namespacing. 2014-12-01 17:40:39 +01:00
Faerbit
be1abf584f Removing useless includes. 2014-12-01 17:40:06 +01:00
Steffen Fündgens
315d5aec04 implemented all methods of the converter class, needs testing 2014-12-01 14:09:55 +01:00
Faerbit
ed889ebd76 Reexporting Block.obj, because normals were missing. 2014-12-01 13:55:47 +01:00
Faerbit
777d33699e Removing backup blender files. 2014-12-01 13:54:10 +01:00
Faerbit
02641d7f1c Adding OBJ-file load messages for easier debugging. 2014-12-01 13:53:01 +01:00
Faerbit
c96d081e3d Do not build GLFW examples and tests. 2014-12-01 13:16:04 +01:00
Faerbit
e1d14c1884 Removing useless includes. 2014-12-01 12:58:04 +01:00
Faerbit
117e3715b4 Updating glfw to version 3.0.4. 2014-12-01 12:53:19 +01:00
Faerbit
27080179e4 Revert "Updating glfw." Code was not ready for release.
This reverts commit 81234ca22a.
2014-12-01 12:44:08 +01:00
Faerbit
043205455f Moving application class to it's own file. 2014-12-01 12:41:19 +01:00
Faerbit
4daf4c8ccf Let member function use it own class and not the global variable. 2014-12-01 12:33:00 +01:00
Faerbit
81234ca22a Updating glfw. 2014-12-01 12:32:04 +01:00
Faerbit
8317188314 Removing big textures as they are not needed. 2014-11-29 02:06:46 +01:00
Faerbit
139945614b Merge branch 'master' of github.com:Faerbit/swp 2014-11-29 01:37:38 +01:00
Faerbit
f3f870c2d1 Removing useless files. 2014-11-29 01:36:59 +01:00
Jasper
edb17a9e67 Merge branch 'master' of github.com:Faerbit/swp 2014-11-28 17:07:54 +01:00
Steffen Fündgens
9f1a931b0b added example Compositions.xml, implemented most of newComposition() method 2014-11-28 17:05:49 +01:00
Jasper
91de258030 Reduced memory usage of trianglemesh 2014-11-28 17:01:56 +01:00
Faerbit
c5abdba83e Added skydome blender file. 2014-11-28 16:49:28 +01:00
Faerbit
869e1ed415 Moved Blenderfiles out of Levels because of packaging. 2014-11-28 16:47:35 +01:00
Jasper
59bb4a91a7 Merge branch 'master' of github.com:Faerbit/swp 2014-11-28 16:46:44 +01:00
Jasper
ad61969176 Added basic Triangle Mesh, pending reading out of .obj and then testing. 2014-11-28 16:46:35 +01:00
sfroitzheim
414da9ba7e Added switch models and textures in 2 seperate parts (switchInner is the movable object - size may needs to be changed in the future) 2014-11-28 16:38:55 +01:00
sfroitzheim
150a556c22 Added all blender files (except marble, as I don't have the newest and smoothed version) 2014-11-28 16:31:50 +01:00
sfroitzheim
00cdbe4c5e Fixed origin of block. 2014-11-28 15:28:03 +01:00
Jasper
594f336204 Added a constraint for distances, as such a constraint did not exist in bullet.Why, IDK. 2014-11-28 13:52:03 +01:00
Jasper
9d39bec46f Multiple objects now working, for exact implimentation check level.cc and comment in physics.hh. Additionally multiple comments have been added to physics.hh to support the use of these functions 2014-11-28 12:06:17 +01:00
Faerbit
d58147a935 You can render objects with multiple shaders now. 2014-11-28 00:17:56 +01:00
Faerbit
4881367004 Adding run.sh script 2014-11-27 23:58:33 +01:00
Faerbit
6a05ec47dd Changing paramter order. 2014-11-27 22:02:25 +01:00
Faerbit
6bb0974c67 Specifying upload path. 2014-11-27 21:53:22 +01:00
Faerbit
6a82bf122c Fixing script not in PATH. 2014-11-27 21:45:19 +01:00
Faerbit
c63382ba29 Fixing stupid mistake. 2014-11-27 21:38:10 +01:00
Faerbit
215b37f15e Changing file hoster once again to dropbox. 2014-11-27 21:37:09 +01:00
Faerbit
fab8665424 Adding module to plowshare. 2014-11-27 13:32:51 +01:00
Faerbit
b9b2f5769e Fixing yaml formatting. 2014-11-27 13:25:18 +01:00
Faerbit
50c08d79ec Changing how plowshare is installed. 2014-11-27 13:24:39 +01:00
Faerbit
60ff3452ca Adding -y to apt-get. 2014-11-27 13:20:18 +01:00
Faerbit
65eba6a97a Changing upload target to mediafire and upload tool to plowshare because megacmd sucks. 2014-11-27 13:19:02 +01:00
Faerbit
b57b559748 Reverting to upload instead of sync, because sync looks really broken. 2014-11-27 12:55:41 +01:00
Faerbit
ca4ccaef10 Syncing files instead of forcing them to mega. 2014-11-27 12:36:30 +01:00
Faerbit
6f44ea1416 Always uploading Windows build. 2014-11-27 12:09:45 +01:00
Faerbit
cc6818cd65 Adding zip. 2014-11-27 05:40:53 +01:00
Faerbit
2a99eb16d5 Should fix weird bug with CMake. 2014-11-27 05:35:45 +01:00
Faerbit
6af0dcc427 Adding missing paramter. 2014-11-27 05:31:54 +01:00
Faerbit
1dc99cdf39 Upgrading docker image to newest version. 2014-11-27 05:31:17 +01:00
Faerbit
79e8f777b3 Trying compilation on circle with docker. 2014-11-27 05:27:19 +01:00
Faerbit
76745a1da8 Adding dockerfile. 2014-11-27 05:18:40 +01:00
Faerbit
90630c7ab6 Fixing another syntax error. 2014-11-27 00:41:21 +01:00
Faerbit
afdaa05d27 Fixing syntax. 2014-11-27 00:40:46 +01:00
Faerbit
3621592e4c Added spaces. 2014-11-27 00:32:44 +01:00
Faerbit
a49c023305 Check if windows build exists before trying to do anything with it. 2014-11-27 00:23:51 +01:00
Faerbit
c6a330f35a Do not suppress output of apt-get anymore. 2014-11-27 00:16:17 +01:00
Faerbit
bdee3a0740 Only copy linux builds to artifacts. 2014-11-27 00:14:56 +01:00
Faerbit
6ef713107e Changing root path. 2014-11-26 23:57:33 +01:00
Faerbit
98d0e955e8 Try building linux first. 2014-11-26 23:49:40 +01:00
Faerbit
6b80e179f4 Another try at cross compilation on circle. 2014-11-26 23:46:21 +01:00
Faerbit
b3c285b4c2 Another try at cross compilation on circle. 2014-11-26 23:44:09 +01:00
Faerbit
e2dd7724ac Trying without C++ 11. 2014-11-26 23:29:41 +01:00
Faerbit
4335eeb00e Adding binutils. 2014-11-26 23:09:04 +01:00
Faerbit
8d6483877b Changing dependencies. 2014-11-26 23:06:51 +01:00
Faerbit
99280607e1 Adding 64 bit compiler. 2014-11-26 23:05:01 +01:00
Faerbit
d31e50cfa8 Enabling error message. 2014-11-26 23:02:55 +01:00
Faerbit
24c149b656 Another try at cross compilation on circle. 2014-11-26 23:02:01 +01:00
Faerbit
fe4563e1d0 Forgot one windows thing. 2014-11-26 01:58:58 +01:00
Faerbit
ae18362112 Removing travis.yml because it is useless. 2014-11-26 01:54:00 +01:00
Faerbit
45ccc55786 Deactivating Windows build for now. 2014-11-26 01:53:37 +01:00
Faerbit
35012faeec Another try at cross compilation on circle. 2014-11-26 01:45:24 +01:00
Faerbit
f17a9d4374 Another try at cross compilation on circle. 2014-11-26 01:39:45 +01:00
Faerbit
cdfc6fa94a Another try at cross compilation on circle. 2014-11-26 00:56:16 +01:00
Faerbit
c6c9c83eb7 Testing out cross compilation on circle. 2014-11-26 00:43:52 +01:00
Faerbit
1af78cb6e5 Replaced cmake wrapper with own options. 2014-11-26 00:39:54 +01:00
Faerbit
3504e10102 Made Mega upload optional. 2014-11-26 00:39:26 +01:00
Faerbit
28c2347594 Do not recreate zip file everytime. 2014-11-26 00:39:03 +01:00
Faerbit
e4734ae34a Another try at Mega deployment. 2014-11-25 22:08:51 +01:00
Faerbit
ef80d0124a Another try at Mega deployment. 2014-11-25 22:07:28 +01:00
Faerbit
79440e2edd Limiting circle builds to master branch. 2014-11-25 22:06:55 +01:00
Faerbit
96c3ea4aac Another try at Mega deployment. 2014-11-25 22:03:32 +01:00
Faerbit
3c2ce439e5 Another try at Circle Artifacts. 2014-11-25 21:54:53 +01:00
Faerbit
bed712f669 Trying Circle Artifacts. 2014-11-25 21:53:00 +01:00
Faerbit
b6c8c7ed57 Configuring mega upload. 2014-11-25 21:46:37 +01:00
Faerbit
dd1705b023 Another try at mega deployment. 2014-11-25 21:33:28 +01:00
Faerbit
d524787cb7 Trying out deployment to Mega. 2014-11-25 21:30:57 +01:00
Faerbit
e5c30e464f Speeding up build on circle. 2014-11-25 21:21:13 +01:00
Faerbit
6b00de67f5 Fixing typo. 2014-11-25 21:11:05 +01:00
Faerbit
6a593eb319 Adding a few dependencies to circle.yml. 2014-11-25 21:10:18 +01:00
Faerbit
a5694e0e8c Adding circle.yml to test Circle CI. 2014-11-25 21:01:11 +01:00
Faerbit
2de9c38ce7 Changed how windows focus is handled. 2014-11-25 16:01:13 +01:00
Faerbit
7431d0d63e Changed fog functions a little bit more. Looks nice enough. 2014-11-25 13:54:00 +01:00
Steffen Fündgens
6b904894c6 skeleton runs now, only xml read/write missing 2014-11-25 13:51:25 +01:00
Faerbit
7736e7850f Removing global variables from physics, because they are not needed. 2014-11-25 13:38:28 +01:00
Faerbit
4161ae0ec4 Changed fog function from exp to linear. 2014-11-25 13:24:02 +01:00
Faerbit
b0ed3c467f Ignoring another error in bullet. 2014-11-24 20:51:17 +01:00
Faerbit
78de14907a More convenience. 2014-11-24 19:54:13 +01:00
Faerbit
2bf6eb667c Added support for ninja build system and fixed uploading to Mega. 2014-11-24 15:59:59 +01:00
Faerbit
8245e0782e Added package script. 2014-11-24 15:12:18 +01:00
Steffen Fündgens
7bf1d8eed4 converter now takes the Level to convert as input 2014-11-24 13:21:52 +01:00
Steffen Fündgens
9b5426a6af added tinyxml2 for xml conversion 2014-11-24 13:03:55 +01:00
Faerbit
823da599f3 Starting another travis try. 2014-11-24 02:29:40 +01:00
Faerbit
71cb8300bd Enabling cross compiling if supported by the current system. 2014-11-24 02:10:25 +01:00
Faerbit
1cc47fa4ab Changed build script a bit. 2014-11-24 01:53:29 +01:00
Faerbit
97aeb6c965 Changing vector of objects to vector of pointer of objects for clearer construnction. 2014-11-23 00:59:54 +01:00
Faerbit
ed44f71b8c Replacing skybox attribute with skydome. 2014-11-23 00:57:16 +01:00
Faerbit
3a9a04d4d6 Changed skybox to skydome. 2014-11-22 00:39:58 +01:00
Jasper
59796882e4 Merge branch 'master' of https://github.com/Faerbit/swp 2014-11-21 16:22:50 +01:00
Jasper
3d936df227 Put Box In Level 2014-11-21 16:22:36 +01:00
Steffen Fündgens
3be8d78e1a now ignoring files with ~ 2014-11-21 16:09:45 +01:00
Steffen Fündgens
0105a74b5a Now ignoreing files with ~. 2014-11-21 16:08:03 +01:00
Steffen Fündgens
c65a745603 Modifying CMakes files to get convert to compile. 2014-11-21 16:07:13 +01:00
Steffen Fündgens
86c11e339e created skeletal implementation of png to xml converter 2014-11-21 15:43:27 +01:00
Jasper
fa60d52676 Modified adders in physics to no longer accept float x,y,z but entity/object instead. 2014-11-21 12:56:30 +01:00
Jasper
3c0deb232f added box in physics 2014-11-21 12:50:11 +01:00
Jasper
263f59f000 Normalized body movement (still has float strength to change magnitude) 2014-11-21 12:31:29 +01:00
Faerbit
1006f1cbc9 Improved fog a little bit. 2014-11-21 02:46:02 +01:00
Faerbit
c47ed4646d Added skybox and refined fog a bit. Fog still needs a lot of work. 2014-11-21 02:38:03 +01:00
Faerbit
b74e56fe7d Fixing typo to allow cross compilation. 2014-11-20 23:25:52 +01:00
Faerbit
3a677c31da Removing travis.yml again because it doesn't work. 2014-11-20 21:19:07 +01:00
Faerbit
788110aaf1 Fixing sed command. 2014-11-20 21:16:51 +01:00
Faerbit
6f59b1fb59 Now using standard Makefiles instead of Ninja. 2014-11-20 21:15:02 +01:00
Faerbit
7bda59920b Fixing installation of ninja again. 2014-11-20 21:08:29 +01:00
Faerbit
4af197d74b Fixing installation of ninja. 2014-11-20 21:05:15 +01:00
Faerbit
15a540e3c9 Adding .travis.yml for CI. 2014-11-20 21:02:58 +01:00
Faerbit
eadc819f80 Removing useless files. 2014-11-20 20:42:40 +01:00
Faerbit
b12b917a44 Implemented simple fog. 2014-11-19 01:58:48 +01:00
Faerbit
faf548d3ee Now using built-in exp function. 2014-11-19 01:58:25 +01:00
Faerbit
7d0cf9fca2 Added getCameraPosition to Level because it is used very often. 2014-11-19 01:57:38 +01:00
Faerbit
49dfdff413 Changing a few lighting paramters for testing. 2014-11-19 00:59:48 +01:00
Faerbit
a8b6463674 Changing how the intensity is calculated. 2014-11-19 00:59:33 +01:00
Faerbit
9576a40af6 Moving far plane a bit further. 2014-11-19 00:59:02 +01:00
Faerbit
8968750015 Clamping diffuse color for more realistic lighting. 2014-11-19 00:46:51 +01:00
Faerbit
715301552a Removing angular(Velocity) from object class as it is not needed there. 2014-11-18 19:57:58 +01:00
Faerbit
2638b43b44 Resized large textures to one third of their size. 2014-11-18 19:39:44 +01:00
Steffen Fündgens
5a92765518 changed terrain normals to consider 8 vertices, looks the same 2014-11-18 13:09:55 +01:00
Faerbit
6a8182ab8d Reexported objects and enabled smooth shading. 2014-11-17 22:03:28 +01:00
Jasper
c54d6cf874 Merge branch 'master' of renault.informatik.rwth-aachen.de:/data/git-repository/students/swpp-ws-14-15/swpp-ws-14-15-c
Conflicts:
	terrain.cc
	terrain.hh
2014-11-17 18:59:00 +01:00
Jasper
95627d31ae Merge branch 'master' of https://github.com/Faerbit/swp 2014-11-17 18:54:44 +01:00
Jasper
10f51db60f fixed terrain offset 2014-11-17 18:54:19 +01:00
Fabian Klemp
8a9d026aa5 Removing useless stuff. 2014-11-17 18:40:54 +01:00
sfroitzheim
c403814cd6 Merge branch 'master' of https://github.com/Faerbit/swp 2014-11-17 18:31:48 +01:00
sfroitzheim
c58e4d01b1 Changing marble model. 2014-11-17 18:31:22 +01:00
Fabian Klemp
9611c9ef08 Changing sand texture to a seamless sand texture. 2014-11-17 18:18:57 +01:00
Fabian Klemp
5533d4e4ba Removing update of the light at the center of the marble. 2014-11-17 18:18:15 +01:00
Fabian Klemp
9fc515ec24 Removing light at the center of the marble. 2014-11-17 18:16:27 +01:00
Fabian Klemp
ca3928e232 Added directional lighting. 2014-11-17 17:51:15 +01:00
Fabian Klemp
39b1ee85b0 Added emtpy constructor. 2014-11-17 17:50:06 +01:00
Fabian Klemp
94b12ae614 Removed rotation paramter from Light constructor as it is not used. 2014-11-17 16:54:17 +01:00
Fabian Klemp
6f89c406f1 Merge branch 'master' of github.com:Faerbit/swp 2014-11-17 16:31:04 +01:00
Fabian Klemp
d11a2820d6 Changing a few spawning values. 2014-11-17 16:31:01 +01:00
Jasper
d4e38b7a41 Merge branch 'master' of https://github.com/Faerbit/swp 2014-11-17 16:29:10 +01:00
Jasper
dbce8c229f getting the sizes juuuuuuuust right 2014-11-17 16:28:31 +01:00
Fabian Klemp
c22ae2c244 Merge branch 'master' of github.com:Faerbit/swp 2014-11-17 16:16:13 +01:00
Fabian Klemp
3086f98ecd Added alpha shading. 2014-11-17 16:15:56 +01:00
Jasper
bcb594c4cf ich bin dumb 2014-11-17 16:14:01 +01:00
Jasper
429223a08e merged level.cc 2014-11-17 16:11:39 +01:00
Jasper
abe9513aa3 further improving physics and interaction 2014-11-17 16:07:40 +01:00
sfroitzheim
8f64f75b67 Merge branch 'master' of https://github.com/Faerbit/swp 2014-11-17 15:44:31 +01:00
Fabian Klemp
29f24d6f05 Adding column and block ruins. 2014-11-17 15:29:38 +01:00
Fabian Klemp
f6b2bd776a Added light in the middle of the marble. 2014-11-17 15:19:36 +01:00
Fabian Klemp
6f7486b3f8 Fixed normals. 2014-11-17 15:19:19 +01:00
Fabian Klemp
4dc7897f8c Removed middle Ring. 2014-11-17 15:04:59 +01:00
Fabian Klemp
48691338ba Basic Marble Model with Textures added. 2014-11-17 14:38:35 +01:00
Fabian Klemp
0b7f8e95d3 Adding torch. 2014-11-17 14:23:23 +01:00
Jasper
a77ed38625 Merge branch 'master' of https://github.com/Faerbit/swp 2014-11-17 13:36:35 +01:00
Steffen Fündgens
0c4184477b Merge branch 'master' of github.com:Faerbit/swp 2014-11-17 13:36:09 +01:00
Steffen Fündgens
29f4cf6279 Reorganizing file structure. 2014-11-17 13:36:05 +01:00
351 changed files with 38986 additions and 59047 deletions

3
.gitignore vendored
View File

@ -7,6 +7,3 @@ CMakeLists.txt.user
*.zip
*.db
*.blend1
*.swp
*.pyc
*.o

Binary file not shown.

BIN
Blenderfiles/torch.blend Normal file

Binary file not shown.

View File

@ -3,7 +3,7 @@ CMAKE_MINIMUM_REQUIRED (VERSION 2.6)
add_subdirectory(converter)
# project/binary name:
PROJECT(saxum)
PROJECT(MarbleRaceGroupC)
# ACGL setup
SET(ACGL_OPENGL_SUPPORT CORE_32)
@ -53,28 +53,21 @@ ADD_DEFINITIONS(-DNO_SPACE_NAVIGATOR_SUPPORT)
#
# Lets the binary get written to a shared folder (which can be ignored by git).
# Will also set the run directory for QTCreator:
SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS} -DSAXUM_DEBUG -g")
SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS} -DSAXUM_DEBUG -g")
SET(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS} -DNDEBUG")
SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS} -DNDEBUG")
set(dir ${CMAKE_CURRENT_SOURCE_DIR}/binaries)
set(EXECUTABLE_OUTPUT_PATH ${dir} CACHE PATH "Build directory" FORCE)
# source and header files
FILE(GLOB SOURCE_FILES "${CMAKE_SOURCE_DIR}/game/*.cc")
FILE(GLOB SOURCE_FILES "${CMAKE_SOURCE_DIR}/*.cc")
SET(SOURCE_FILES ${SOURCE_FILES} ${SOURCE_FILES_SHARED})
FILE(GLOB HEADER_FILES "${CMAKE_SOURCE_DIR}/game/*.hh")
FILE(GLOB HEADER_FILES "${CMAKE_SOURCE_DIR}/*.hh")
SET(HEADER_FILES ${HEADER_FILES} ${HEADER_FILES_SHARED})
# tinyxml
# shader files
FILE(GLOB_RECURSE SHADER_FILES "${CMAKE_SOURCE_DIR}/Shader/*.*")
FILE(GLOB HEADER_FILES_TINYXML "${CMAKE_SOURCE_DIR}/extern/tinyxml/*.hh")
SET(HEADER_FILES ${HEADER_FILES} ${HEADER_FILES_TINYXML})
FILE(GLOB SOURCE_FILES_TINYXML "${CMAKE_SOURCE_DIR}/extern/tinyxml/*.cc")
SET(SOURCE_FILES ${SOURCE_FILES} ${SOURCE_FILES_TINYXML})
INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/extern/tinyxml)
# Readme
FILE(GLOB_RECURSE README_FILES "${CMAKE_SOURCE_DIR}/../Readme.md")
#
#
###############################################################################
@ -83,6 +76,7 @@ INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/extern/tinyxml)
#
# all we need for ACGL:
#
ADD_DEFINITIONS(-DACGL_ERROR_LEVEL_EC3)
INCLUDE(${CMAKE_SOURCE_DIR}/extern/acgl/CMakeListsStaticInclude.txt)
#
#
@ -93,11 +87,6 @@ INCLUDE(${CMAKE_SOURCE_DIR}/extern/acgl/CMakeListsStaticInclude.txt)
# GLFW (and some other linker flags)
#
OPTION(GLFW_BUILD_DOCS OFF)
OPTION(GLFW_BUILD_TESTS OFF)
OPTION(GLFW_BUILD_EXAMPLES OFF)
OPTION(GLFW_INSTALL OFF)
FILE(GLOB_RECURSE HEADER_FILES_GLFW "${CMAKE_SOURCE_DIR}/extern/glfw/include/*.h")
INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/extern/glfw/include)
SET(HEADER_FILES ${HEADER_FILES} ${HEADER_FILES_GLFW})
@ -157,5 +146,5 @@ SET(HEADER_FILES ${HEADER_FILES} ${HEADER_FILES_LUA_BRIDGE})
SET (LIBRARIES ${LIBRARIES} ${CMAKE_SOURCE_DIR}/extern/lua/src/liblua.a)
ADD_EXECUTABLE(saxum ${SOURCE_FILES} ${HEADER_FILES})
TARGET_LINK_LIBRARIES(saxum ${LIBRARIES} ${CMAKE_DL_LIBS})
ADD_EXECUTABLE(MarbleRaceGroupC ${SOURCE_FILES} ${HEADER_FILES} ${SHADER_FILES} ${README_FILES})
TARGET_LINK_LIBRARIES(MarbleRaceGroupC ${LIBRARIES} ${CMAKE_DL_LIBS})

View File

@ -1,471 +0,0 @@
All code except the one in extern is subject to the following license:
The MIT License (MIT)
Copyright (c) 2014-2015 Fabian Klemp, Steffen Fündgens, Jasper Manousek, Simon
Froitzheim
Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in
the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
of the Software, and to permit persons to whom the Software is furnished to do
so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
-------------------------------------------------------------------------------------
The code in extern contains the following libraries with their respective
licenses:
-------------------------------------------------------------------------------------
ACGL: ACGL - Aachen Computer Graphics Library
Intended to speed up graphics/OpenGL prototyping. Developed by Lars Krecklau
and Robert Menzel with help from Andreas Neu, Janis Born, Kersten Schuster, Ole
Untzelmann, based on prior work from Lars Krecklau.
Included third-party software:
* Includes lodepng by Lode Vandevenne, unchanged except for the include path in
* lodepng.cpp. lodepng is provided as-is, see license text in the lodepng
* source code. Includes OpenGL loader code created by a modified glLoadGen by
* Jason McKesson. Includes GLM by Christophe Riccio. Includes data type
* definitions from libspnav header originally by John Tsiombikas (see
* mini_spnav.h for details). Includes RGBE/Radiance image import by Bruce
* Walter (code provided 'as-is') minimally adjusted to reduce compiler
* warnings.
Additional documentation:
http://www.graphics.rwth-aachen.de/redmine/projects/acgl/wiki
License:
ACGL is distributed under the terms of the MIT license stated below.
Copyright (C) 2011-2012 Computer Graphics Group RWTH Aachen University
Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in
the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
of the Software, and to permit persons to whom the Software is furnished to do
so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
-------------------------------------------------------------------------------------
GLM License:
The MIT License
Copyright (c) 2005 - 2013 G-Truc Creation
Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in
the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
of the Software, and to permit persons to whom the Software is furnished to do
so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
-------------------------------------------------------------------------------------
Linux Joystick License:
Copyright (C) 2008 Andreas Volz
Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the “Software”), to deal in
the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
of the Software, and to permit persons to whom the Software is furnished to do
so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies of the Software and its Copyright notices. In addition publicly
documented acknowledgment must be given that this software has been used if no
source code of this software is made available publicly. This includes
acknowledgments in either Copyright notices, Manuals, Publicity and Marketing
documents or any documentation provided with any product containing this
software. This License does not apply to any software that links to the
libraries provided by this software (statically or dynamically), but only to
the software provided.
THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-------------------------------------------------------------------------------------
TinyXML2 License:
Original code by Lee Thomason (www.grinninglizard.com)
This software is provided 'as-is', without any express or implied
warranty. In no event will the authors be held liable for any
damages arising from the use of this software.
Permission is granted to anyone to use this software for any
purpose, including commercial applications, and to alter it and
redistribute it freely, subject to the following restrictions:
1. The origin of this software must not be misrepresented; you must
not claim that you wrote the original software. If you use this
software in a product, an acknowledgment in the product documentation
would be appreciated but is not required.
2. Altered source versions must be plainly marked as such, and
must not be misrepresented as being the original software.
3. This notice may not be removed or altered from any source
distribution.
-------------------------------------------------------------------------------------
Bullet Physics License:
Bullet Continuous Collision Detection and Physics Library Copyright (c)
2003-2011 Erwin Coumans http://bulletphysics.org
This software is provided 'as-is', without any express or implied warranty. In
no event will the authors be held liable for any damages arising from the use
of this software. Permission is granted to anyone to use this software for any
purpose, including commercial applications, and to alter it and redistribute it
freely, subject to the following restrictions:
1. The origin of this software must not be misrepresented; you must not claim
that you wrote the original software. If you use this software in a product, an
acknowledgment in the product documentation would be appreciated but is not
required. 2. Altered source versions must be plainly marked as such, and must
not be misrepresented as being the original software. 3. This notice may not
be removed or altered from any source distribution.
All files in the extern/bullet/src folder are under this Zlib license. Files in the
Extras and Demos folder may have a different license, see the respective files.
-------------------------------------------------------------------------------------
GLFW License:
Copyright (c) 2002-2006 Marcus Geelnard
Copyright (c) 2006-2010 Camilla Berglund <elmindreda@elmindreda.org>
This software is provided 'as-is', without any express or implied
warranty. In no event will the authors be held liable for any damages
arising from the use of this software.
Permission is granted to anyone to use this software for any purpose,
including commercial applications, and to alter it and redistribute it
freely, subject to the following restrictions:
1. The origin of this software must not be misrepresented; you must not
claim that you wrote the original software. If you use this software
in a product, an acknowledgment in the product documentation would
be appreciated but is not required.
2. Altered source versions must be plainly marked as such, and must not
be misrepresented as being the original software.
3. This notice may not be removed or altered from any source
distribution.
-------------------------------------------------------------------------------------
Lua License:
Copyright © 19942015 Lua.org, PUC-Rio.
Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in
the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
of the Software, and to permit persons to whom the Software is furnished to do
so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
-------------------------------------------------------------------------------------
LuaBridge License:
https://github.com/vinniefalco/LuaBridge
Copyright 2012, Vinnie Falco <vinnie.falco@gmail.com>
Copyright 2007, Nathan Reed
License: The MIT License (http://www.opensource.org/licenses/mit-license.php)
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
-------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------
Licenses for Models and Textures:
-------------------------------------------------------------------------------------
data/textures/sand.png is from
http://opengameart.org/node/18616
Created by Christian Femmer aka Duion.
It is licensed CC-BY 3.0,
see https://creativecommons.org/licenses/by/3.0/ for full license text.
data/textures/hintTexture2.png is based on this.
-------------------------------------------------------------------------------------
data/textures/nightskydome.png was generated with:
http://wwwtyro.github.io/procedural.js/space/ Source code here:
https://github.com/wwwtyro/procedural.js
Seed: NTc3MDMzNjg3ODQ4NQ
-------------------------------------------------------------------------------------
data/textures/skydomeNew.png was modified and originally taken from:
http://www.tutorialsforblender3d.com/Textures/Skys/Sky_Dome_1.html
The author states that the images were created with "Terragen(tm) Classic for
Windows" and according to their license, the textures are free for personal
non-commercial use.
-------------------------------------------------------------------------------------
All textures in data/textures/cgtextures are subject to the following license:
This document is a license agreement ("License") by CGTextures between the user
("You") and CGTextures. Use of the photographs on the CGTextures website is
conditional upon the your agreement to the terms and conditions of purchase set
out below. If you do not agree to these terms, then you must not accept the
terms hereof or purchase, download, access or otherwise use any products from
CGTextures.
CGTextures may revise and update this Agreement at anytime and without notice.
Your continued use of the website after any such changes are posted will
constitute your acceptance of these changes.
LICENSE
CGTextures offers photographs of materials ("Textures") on its website
(www.cgtextures.com) for game developers, special effects artists, graphic
designers and other professions. No payment or royalties are required to use
these Textures. The use of Textures is non-exclusive, royalty free, and you
have the right to modify them for the uses permitted under the clause
Conditions of Use. Most Textures on the CGTextures website are photographed by
CGTextures. A small part is photographed by third party contributors
("Contributors"). CGTextures has separate agreements with these Contributors in
which they grant CGTextures permission to add their Textures to the website.
All terms and conditions in this License apply to both groups of Textures. All
Textures and materials remain in ownership of CGTextures or the Contributor and
the Textures and materials are licensed to you, not sold.
The license granted for the use of the textures gives you no lawful right to
submit, use or otherwise make available the textures in Second Life or
otherwise to Linden Research, Inc. Use of the textures in such manner will be
an infringement of the intellectual property rights if CGTextures and
CGTextures reserves its right to take action to prevent any such infringement.
INTELLECTUAL PROPERTY
All materials including the organization and presentation of these materials on
the CGTextures website are the property of CGTextures or its Contributors and
are protected by intellectual property laws. Some images contain graphic
materials like wallpaper patterns, logos, names or signs. The use of these kind
of images is at your own discretion. The rights for the photo lie with
CGTextures and the photo has been taken in a public space, but using the
patterns, logos or name in your work might not be allowed.
CONDITIONS OF USE
Use of the Textures is only allowed under the following conditions:
- Private or commercial use
- Use in 2D or 3D computer graphics, movies and printed media
- Incorporation in computer games, 3D models
- Selling 3D models bundled with modified versions of the textures, when the
texture is customized for the 3D model
It is NOT permitted to:
- Sell or distribute any of these textures in an unmodified form, or where the
derived product you are selling or distributing is a Texture or a collection
of Textures. IN OTHER WORDS: Do not sell or distribute any of these textures
(modified or not) by itself or in a texture pack, material, clipart, website
theme or scrapbooking pack!
- Bundle the images with software such as paint programs, 3D programs,
photo-kiosk software.
- Reselling or redistributing the images at 'print on demand' services (mugs,
t-shirts, mouse mats, etc)
- Use the textures in graphic design themes or templates sold to multiple
customers on digital market places (this includes templates of websites and
business cards and e-cards).
- Selling or redistributing skins for laptops, phones and other devices,
created with images from CGTextures.
- Stockpile images with the goal of making a local texture library.
- Using a special program (spider, leecher) or script to automatically download
all Textures on the CGTextures website. Users who try to mass download will
be banned from the website automatically.
- Interfere with the security or otherwise abuse, disrupt, place excessive
loads on, or attempt to gain unauthorized access to the CGTextures website or
any system resources or networks connected to this website.
- Release the Textures or derivative products under Open Source Licences
RESALE OR REDISTRIBUTION OF 3D MODELS TEXTURED WITH IMAGES FROM CGTEXTURES
When selling or redistributing a 3D model bundled with textures from CGTextures
please add the following text in the documentation accompanying the model:
"One or more textures on this 3D model have been created with images from
CGTextures.com. These images may not be redistributed by default, please visit
www.cgtextures.com for more information."
STOCKPILING IMAGES
CGTextures is meant as a 'download when you need it' resource. Downloading
complete categories with the goal of making a local copy of the texture
collection is not allowed.
PRIVACY
CGTextures respects the privacy of the personal information of the individuals
with whom we interact. CGTextures does not disclose personal information of our
members or those individuals who visit our website. No newsletters or offers
will be sent to you without your prior consent. Any information submitted by
the buyer will be used solely for the purpose of completing the transaction,
delivering the product and addressing any customer service issues.
We use third-party advertising companies (Google Adsense) to serve ads when you
visit our website. These companies may use information (not including
personally identifying information such as your name, address, email address,
or telephone number) about your visits to this and other websites in order to
provide advertisements about goods and services of interest to you. For more
information about this subject (including on how to "Opt-Out" on advertising
cookies) please visit this link: Google Advertsing and Privacy page
LIMITATION OF LIABILITY
You assume all responsibility and risk for the use of the CGTextures website,
the Textures, materials and information. CGTextures does not represent or
warrant that the site or any content available for downloading through the site
will be free of viruses or similar contaminations of destructive features.
In no event shall CGTextures or any of its affiliates, employees or
Contributors be liable for any incidental, indirect, punitive, exemplary or
consequential damages whatsoever, including damages for loss of profits,
interruption, loss of business information, loss of data, or any other
pecuniary loss in connection with any claim, loss, action, suit, damage or
other proceeding arising under or out of this License, including without
limitation your use of, reliance upon, access to or exploitation of the
CGTextures website, the materials or any part thereof, or any rights granted to
you hereunder, even if we have been advised of the possibility of such damaged,
wheter the action is based on contract, tort (including negligence),
infringement of intellectual property rights or otherwise.
INDEMNIFICATION
You agree to indemnify and hold CGTextures harmless against all claims or
liability asserted against CGTextures arising out of or in connection with any
breach by you or anyone acting on your behalf of any of this License
GENERAL
This License shall be governed by and construed in accordance with the laws of
The Netherlands, without regards to conflict of laws provisions thereto. The
parties consent to the exclusive jurisdiction of the courts of, and venue and
situs in The Netherlands.
TERMINATION
CGTextures reserves the right to terminate the license of the use of the
materials on CGTextures if the user is found in breach of this License and does
not remedy that breach within three (3) days of receiving notice from
CGTextures.
EMAIL
Feel free to email any questions regarding this license or any other questions
about CGTextures to support@cgtextures.com Correspondence can be in English or
Dutch.
ADDRESS
CGTextures.com Krommedijk 231 3312LE Dordrecht The Netherlands
-------------------------------------------------------------------------------------
The logo in logo/ and also contained in the loading
screen(data/textures/loadingscreen.png and
data/textures/loadingscreenContinue.png) is subject to the following license:
Created by Fabian Klemp and Jeremy Theocharis in 2015.
Licensed by CC BY 4.0.
(see https://creativecommons.org/licenses/by/4.0/ for full license text)
-------------------------------------------------------------------------------------
All other models and textures contained in data/textures and data/geometry and
also the corresponding GIMP files in GIMPfiles and the Blender files in
Blenderfiles are subject to the following license:
Created by Simon Froitzheim, Fabian Klemp, Steffen Fündgens and Jasper Manousek in 2014 and 2015.
Licensed by CC BY 4.0.
(see https://creativecommons.org/licenses/by/4.0/ for full license text)

View File

@ -1,54 +1,54 @@
# Blender v2.72 (sub 0) OBJ File: ''
# Blender v2.72 (sub 0) OBJ File: 'SimpleWall.blend'
# www.blender.org
o Wall_Cube.001
v 0.537791 3.045326 -3.045326
v 0.537791 -3.045326 -3.045326
v 0.537791 -3.045326 3.045326
v -0.537791 3.045326 -3.045326
v 0.537791 -3.045326 -3.045326
v -0.537791 -3.045326 -3.045326
v -0.537791 3.045326 3.045326
v -0.537791 -3.045326 3.045326
v 0.537791 3.045326 3.045326
v 0.537791 3.045326 -3.045326
v -0.537791 3.045326 -3.045326
v -0.537791 3.045326 3.045326
vt 1.002363 0.998329
vt 0.005637 -0.001671
vt 1.002363 -0.001671
vt 0.005637 -0.001671
vt 0.394169 0.995358
vt 0.605831 -0.004642
vt 0.394169 -0.004642
vt 0.605831 -0.004642
vt -0.003002 0.995358
vt 0.996752 -0.004642
vt -0.003002 -0.004642
vt 0.996752 -0.004642
vt 0.605361 0.992386
vt 0.392389 -0.007614
vt 0.605361 -0.007614
vt 0.392389 -0.007614
vt 0.001396 0.906027
vt 0.998604 0.093973
vt 0.001923 0.094175
vt 0.998604 0.093973
vt 1.000000 0.097080
vt 0.000000 0.902920
vt 1.000000 0.902920
vt 0.000000 0.902920
vt 0.005637 0.998329
vt 0.605831 0.995358
vt 0.996752 0.995358
vt 0.392389 0.992386
vt 0.998077 0.905824
vt 0.000000 0.097080
vn -1.000000 0.000000 0.000000
vn 0.000000 0.000000 1.000000
vn 1.000000 0.000000 0.000000
vn 0.000000 0.000000 -1.000000
vn -1.000000 0.000000 0.000000
vn 0.000000 -0.000000 1.000000
vn 0.000000 -1.000000 -0.000000
vn 0.000000 1.000000 0.000000
vn 0.000000 -1.000000 0.000000
s off
f 1/1/1 3/2/1 2/3/1
f 4/4/2 2/5/2 5/6/2
f 6/7/3 5/8/3 7/9/3
f 8/10/4 7/11/4 3/12/4
f 2/13/5 7/14/5 5/15/5
f 4/16/6 8/17/6 1/18/6
f 8/19/1 3/2/1 1/1/1
f 1/20/2 2/5/2 4/4/2
f 4/21/3 5/8/3 6/7/3
f 6/22/4 7/11/4 8/10/4
f 3/23/5 7/14/5 2/13/5
f 6/24/6 8/17/6 4/16/6
f 6/1/1 2/2/1 1/3/1
f 7/4/2 3/5/2 2/6/2
f 8/7/3 4/8/3 3/9/3
f 5/10/4 1/11/4 4/12/4
f 2/13/5 3/14/5 4/15/5
f 7/16/6 6/17/6 5/18/6
f 5/19/1 6/1/1 1/3/1
f 6/20/2 7/4/2 2/6/2
f 7/21/3 8/7/3 3/9/3
f 8/22/4 5/10/4 4/12/4
f 1/23/5 2/13/5 4/15/5
f 8/24/6 7/16/6 5/18/6

739
Levels/Geometry/block.obj Normal file
View File

@ -0,0 +1,739 @@
# Blender v2.72 (sub 0) OBJ File: ''
# www.blender.org
mtllib block.mtl
o Block_Cube
v 1.977493 -0.678752 -1.000000
v 1.977493 -0.678752 -1.000000
v -1.970033 -0.678752 -1.000001
v 2.003582 -0.652663 -0.973911
v 2.003582 1.295159 -0.973911
v 2.003581 1.295159 0.973912
v 0.003582 -0.678752 1.000000
v -1.970034 -0.678752 0.999999
v -1.970034 -0.678752 0.999999
v 1.977494 1.321248 -0.999999
v -1.970034 1.321248 -1.000000
v -1.970034 1.321248 0.999999
v -1.996123 1.295159 0.973910
v -1.996123 1.295159 -0.973912
v -1.996122 -0.652663 -0.973912
v 1.977492 1.321248 1.000001
v 1.977492 1.321248 1.000001
v 0.003582 1.321248 -1.000000
v 1.977494 1.321248 -0.999999
v 1.977493 -0.678752 1.000000
v 0.003582 -0.678752 -1.000000
v -1.970033 -0.678752 -1.000001
v -1.970034 1.321248 -1.000000
v 1.977493 -0.678752 1.000000
v -1.970034 1.321248 0.999999
v 1.981206 -0.678487 -0.998011
v 1.984843 -0.674549 -0.998943
v 1.984843 -0.677695 -0.995797
v 1.988331 -0.672154 -0.997642
v 1.988331 -0.676394 -0.993402
v 1.991598 -0.669629 -0.995858
v 1.991598 -0.674611 -0.990877
v 1.994578 -0.667024 -0.993628
v 1.994578 -0.672380 -0.988272
v 1.997210 -0.664392 -0.990996
v 1.997210 -0.669748 -0.985640
v 1.999440 -0.661786 -0.988016
v 1.999440 -0.666768 -0.983034
v 2.001224 -0.659261 -0.984749
v 2.001224 -0.663501 -0.980509
v 2.002525 -0.656867 -0.981261
v 2.002525 -0.660013 -0.978115
v 2.003316 -0.654652 -0.977624
v 2.003316 -0.656376 -0.975900
v 2.003316 -0.654652 0.977624
v 2.003316 -0.656376 0.975900
v 2.003582 -0.652663 0.973911
v 2.002525 -0.656867 0.981261
v 2.002525 -0.660013 0.978115
v 2.001224 -0.659261 0.984749
v 2.001224 -0.663501 0.980509
v 1.999440 -0.661786 0.988016
v 1.999440 -0.666768 0.983034
v 1.997210 -0.669748 0.985640
v 1.994578 -0.672380 0.988272
v 1.997210 -0.664392 0.990996
v 1.991598 -0.669629 0.995859
v 1.991598 -0.674611 0.990877
v 1.988331 -0.672154 0.997642
v 1.988331 -0.676394 0.993402
v 1.984843 -0.674549 0.998943
v 1.984843 -0.677695 0.995797
v 1.981206 -0.676763 0.999735
v 1.981206 -0.678487 0.998011
v 1.981206 1.319259 -0.999734
v 1.984844 1.320191 -0.995796
v 1.984843 1.317045 -0.998943
v 1.988331 1.318890 -0.993402
v 1.988331 1.314650 -0.997642
v 1.991598 1.312125 -0.995858
v 1.994578 1.314876 -0.988271
v 1.994578 1.309520 -0.993627
v 1.997210 1.306888 -0.990995
v 1.999441 1.304282 -0.988015
v 1.997210 1.312244 -0.985639
v 2.001225 1.301757 -0.984748
v 1.999441 1.309264 -0.983034
v 2.002526 1.299363 -0.981261
v 2.001225 1.305997 -0.980508
v 2.003317 1.297148 -0.977623
v 2.002526 1.302509 -0.978114
v 2.003317 1.298872 -0.975900
v 2.003315 1.298872 0.975901
v 2.003315 1.297148 0.977625
v 2.002524 1.302509 0.978115
v 2.002524 1.299363 0.981262
v 2.001224 1.305997 0.980510
v 2.001224 1.301757 0.984750
v 1.999439 1.304282 0.988017
v 1.997209 1.312244 0.985640
v 1.997209 1.306888 0.990996
v 1.994577 1.314876 0.988272
v 1.994577 1.309520 0.993628
v 1.991597 1.312125 0.995859
v 1.988330 1.318890 0.993403
v 1.988330 1.314650 0.997643
v 1.984842 1.317045 0.998944
v 1.984842 1.320191 0.995797
v 1.981205 1.320983 0.998011
v 1.981205 1.319259 0.999735
v -1.973747 -0.678487 0.998010
v -1.977384 -0.674549 0.998943
v -1.977384 -0.677696 0.995796
v -1.980871 -0.676395 0.993402
v -1.984138 -0.669629 0.995858
v -1.984138 -0.674611 0.990876
v -1.987118 -0.667024 0.993627
v -1.987118 -0.672380 0.988271
v -1.989750 -0.664392 0.990995
v -1.989750 -0.669748 0.985639
v -1.991981 -0.666768 0.983034
v -1.993765 -0.659261 0.984748
v -1.993765 -0.663501 0.980508
v -1.995066 -0.656867 0.981261
v -1.995066 -0.660014 0.978114
v -1.995857 -0.654653 0.977624
v -1.996123 -0.652663 0.973911
v -1.995857 -0.656376 0.975900
v -1.995857 -0.654653 -0.977625
v -1.995857 -0.656376 -0.975901
v -1.995065 -0.660014 -0.978115
v -1.993765 -0.659261 -0.984750
v -1.993765 -0.663501 -0.980510
v -1.991981 -0.661787 -0.988017
v -1.991981 -0.666768 -0.983035
v -1.989750 -0.669748 -0.985640
v -1.987118 -0.672380 -0.988273
v -1.989750 -0.664392 -0.990997
v -1.984138 -0.674611 -0.990878
v -1.987118 -0.667024 -0.993629
v -1.980871 -0.672155 -0.997643
v -1.980871 -0.676395 -0.993403
v -1.977383 -0.677696 -0.995798
v -1.977383 -0.674549 -0.998944
v -1.973746 -0.676763 -0.999735
v -1.973746 -0.678487 -0.998012
v -1.973747 1.319259 0.999734
v -1.977384 1.317044 0.998942
v -1.973747 1.320982 0.998010
v -1.980872 1.314650 0.997642
v -1.977384 1.320191 0.995796
v -1.984139 1.312125 0.995858
v -1.980872 1.318890 0.993402
v -1.987119 1.309519 0.993627
v -1.984139 1.317106 0.990876
v -1.989751 1.306887 0.990995
v -1.987119 1.314876 0.988271
v -1.991982 1.309264 0.983034
v -1.991982 1.304282 0.988015
v -1.993766 1.301757 0.984748
v -1.995066 1.299362 0.981260
v -1.993766 1.305997 0.980508
v -1.995857 1.297148 0.977623
v -1.995066 1.302509 0.978114
v -1.995857 1.298872 0.975900
v -1.995857 1.298872 -0.975901
v -1.995857 1.297148 -0.977625
v -1.995066 1.302509 -0.978115
v -1.995066 1.299362 -0.981262
v -1.993765 1.305997 -0.980509
v -1.993765 1.301757 -0.984749
v -1.991981 1.304282 -0.988016
v -1.989750 1.312244 -0.985640
v -1.989750 1.306887 -0.990996
v -1.987118 1.314876 -0.988272
v -1.987118 1.309519 -0.993628
v -1.984138 1.312125 -0.995859
v -1.980871 1.318890 -0.993403
v -1.980871 1.314650 -0.997643
v -1.977384 1.317044 -0.998944
v -1.977384 1.320191 -0.995797
v -1.973747 1.320982 -0.998011
v -1.973747 1.319259 -0.999735
v 1.994578 -0.667024 0.993628
v 1.991597 1.317107 0.990878
v 1.991598 1.317107 -0.990876
v 1.999439 1.309264 0.983035
v -1.973747 -0.676763 0.999734
v -1.980871 -0.672155 0.997642
v -1.991981 -0.661787 0.988015
v -1.995065 -0.656867 -0.981262
v -1.984138 -0.669629 -0.995859
v -1.984138 1.317106 -0.990877
v -1.989751 1.312244 0.985639
v -1.991981 1.309264 -0.983035
v 0.003582 -0.678752 -1.000000
v 0.003582 -0.678752 1.000000
v 0.003581 1.321248 1.000000
v 0.003581 1.321248 1.000000
v 0.003582 1.321248 -1.000000
v 1.981206 -0.676763 -0.999734
v 1.981206 1.320983 -0.998010
vt 0.839733 0.000000
vt -0.537296 -0.000000
vt 0.839733 0.013044
vt 0.839733 0.986956
vt 0.160267 0.986956
vt 0.848833 0.000000
vt 0.160370 0.000000
vt 0.974265 0.996942
vt -0.001961 0.996942
vt -0.001961 -0.003057
vt 1.537399 -0.000000
vt 0.151167 0.000000
vt 0.839733 -1.000000
vt 0.947629 -0.000000
vt 0.003341 -0.000000
vt 0.003341 1.000000
vt 0.839732 1.000000
vt -0.537296 1.000000
vt 0.841028 0.000133
vt 0.842297 0.002102
vt 0.842297 0.000528
vt 0.848011 0.003299
vt 0.846532 0.001179
vt 0.847367 0.000528
vt 0.847389 0.004562
vt 0.845651 0.002071
vt 0.846610 0.005864
vt 0.844742 0.003186
vt 0.845692 0.007180
vt 0.843824 0.004502
vt 0.844653 0.008483
vt 0.842915 0.005992
vt 0.843513 0.009746
vt 0.842034 0.007626
vt 0.842297 0.010943
vt 0.841199 0.009369
vt 0.841028 0.012050
vt 0.840427 0.011188
vt 0.158972 0.012050
vt 0.159573 0.011188
vt 0.160267 0.013044
vt 0.157703 0.010943
vt 0.158801 0.009369
vt 0.156487 0.009746
vt 0.157966 0.007626
vt 0.155347 0.008483
vt 0.157085 0.005992
vt 0.156176 0.004502
vt 0.155258 0.003186
vt 0.154308 0.007180
vt 0.152611 0.004562
vt 0.154349 0.002071
vt 0.151989 0.003299
vt 0.153468 0.001179
vt 0.151535 0.002102
vt 0.152633 0.000528
vt 0.841028 0.000995
vt 0.841028 0.999005
vt 0.842297 0.999472
vt 0.842297 0.997898
vt 0.846532 0.998821
vt 0.848011 0.996701
vt 0.848464 0.997898
vt 0.847388 0.995438
vt 0.844742 0.996814
vt 0.846610 0.994136
vt 0.845692 0.992820
vt 0.844653 0.991517
vt 0.843824 0.995498
vt 0.843513 0.990254
vt 0.842915 0.994008
vt 0.842296 0.989057
vt 0.842034 0.992374
vt 0.841028 0.987950
vt 0.841199 0.990631
vt 0.840426 0.988812
vt 0.159573 0.988812
vt 0.158972 0.987950
vt 0.158801 0.990631
vt 0.157703 0.989057
vt 0.157966 0.992374
vt 0.156487 0.990254
vt 0.155347 0.991517
vt 0.156176 0.995498
vt 0.154307 0.992820
vt 0.155258 0.996814
vt 0.153389 0.994136
vt 0.152611 0.995438
vt 0.153468 0.998821
vt 0.151989 0.996701
vt 0.151535 0.997898
vt 0.841028 0.999867
vt 0.841028 1.000132
vt 0.841028 1.000994
vt 0.159075 0.000995
vt 0.157807 0.000529
vt 0.157807 0.002102
vt 0.153390 0.005864
vt 0.157807 0.997899
vt 0.157807 0.999472
vt 0.159075 0.999868
vt 0.159075 -0.000994
vt 0.159075 -0.000132
vt 0.159075 0.999005
vt 0.160370 1.000000
vt 0.152633 0.999472
vt 0.154349 0.997929
vt 0.157085 0.994008
vt 0.846610 0.007180
vt 0.845692 0.005864
vt 0.845692 0.994136
vt 0.844653 0.004562
vt 0.844653 0.995438
vt 0.843513 0.003299
vt 0.843513 0.996701
vt 0.846611 0.992820
vt 0.153493 0.992820
vt 0.154411 0.994136
vt 0.154411 0.005864
vt 0.155450 0.995439
vt 0.155450 0.004562
vt 0.156590 0.996702
vt 0.156590 0.003299
vt 0.160370 2.000000
vt 0.159075 1.999005
vt 0.159075 1.000994
vt 0.153493 0.007180
vt 0.003734 0.000000
vt 0.003734 1.000000
vt -0.546397 0.013044
vt 0.848833 0.013044
vt 1.546500 0.013044
vt 0.151270 0.013045
vt 0.974264 -0.003058
vt -0.546397 -0.013044
vt 0.848834 -0.013044
vt -0.537296 -1.000000
vt 0.947629 1.000000
vt 0.151167 1.000000
vt 0.848465 0.002102
vt 0.847367 0.999472
vt 0.845651 0.997929
vt 0.159075 0.000133
vt 0.927508 1.000000
vt 0.927508 0.000000
usemtl None
s off
f 1/1 2/1 3/2
f 4/3 5/4 6/5
f 7/6 8/7 9/7
f 10/8 11/9 12/10
f 13/5 14/4 15/3
f 12/7 16/11 17/11
f 18/12 19/1 10/1
f 20/13 17/1 16/1
f 21/12 22/2 3/2
f 2/14 3/15 23/16
f 11/2 10/1 19/1
f 24/1 9/2 7/12
f 16/17 12/18 25/18
f 26/19 1/1 2/1
f 27/20 28/21 26/19
f 29/22 30/23 28/24
f 31/25 32/26 30/23
f 33/27 34/28 32/26
f 35/29 36/30 34/28
f 37/31 38/32 36/30
f 39/33 40/34 38/32
f 41/35 42/36 40/34
f 42/36 41/35 43/37
f 4/3 44/38 43/37
f 45/39 46/40 47/41
f 48/42 49/43 46/40
f 50/44 51/45 49/43
f 52/46 53/47 51/45
f 54/48 53/47 52/46
f 55/49 54/48 56/50
f 57/51 58/52 55/49
f 59/53 60/54 58/52
f 61/55 62/56 60/54
f 62/20 61/21 63/19
f 64/57 63/19 20/1
f 65/58 19/17 10/17
f 66/59 67/60 65/58
f 68/61 69/62 67/63
f 70/64 69/62 68/61
f 71/65 72/66 70/64
f 73/67 72/66 71/65
f 74/68 73/67 75/69
f 76/70 74/68 77/71
f 78/72 76/70 79/73
f 80/74 78/72 81/75
f 5/4 80/74 82/76
f 83/77 84/78 6/5
f 85/79 86/80 84/78
f 87/81 88/82 86/80
f 89/83 88/82 87/81
f 90/84 91/85 89/83
f 92/86 93/87 91/85
f 94/88 93/87 92/86
f 95/89 96/90 94/88
f 97/91 96/90 95/89
f 97/60 98/59 99/92
f 100/93 99/94 16/17
f 101/95 8/7 9/7
f 102/96 103/97 101/95
f 104/54 103/56 102/55
f 105/51 106/52 104/54
f 107/98 108/49 106/52
f 109/50 110/48 108/49
f 111/47 110/48 109/50
f 112/44 113/45 111/47
f 114/42 115/43 113/45
f 115/43 114/42 116/39
f 117/41 118/40 116/39
f 119/37 120/38 15/3
f 121/36 120/38 119/37
f 122/33 123/34 121/36
f 124/31 125/32 123/34
f 126/30 125/32 124/31
f 127/28 126/30 128/29
f 129/26 127/28 130/27
f 131/22 132/23 129/26
f 133/24 132/23 131/22
f 133/99 134/100 135/101
f 136/102 135/103 3/7
f 137/104 25/105 12/105
f 138/99 137/104 139/101
f 140/90 138/91 141/106
f 142/88 140/90 143/89
f 144/87 142/88 145/107
f 146/85 144/87 147/86
f 148/108 149/83 146/85
f 150/82 149/83 148/108
f 151/80 150/82 152/81
f 153/78 151/80 154/79
f 13/5 153/78 155/77
f 156/76 157/74 14/4
f 158/75 159/72 157/74
f 160/73 161/70 159/72
f 162/68 161/70 160/73
f 163/69 164/67 162/68
f 165/65 166/66 164/67
f 167/64 166/66 165/65
f 168/61 169/62 167/64
f 170/63 169/62 168/61
f 170/99 171/100 172/101
f 173/103 172/102 11/7
f 47/41 46/40 44/38
f 46/40 49/43 42/36
f 49/43 51/45 40/34
f 40/34 51/45 53/47
f 53/47 54/48 36/30
f 54/109 55/110 34/111
f 55/110 58/112 32/113
f 58/112 60/114 30/115
f 30/115 60/114 62/20
f 28/60 62/20 64/57
f 24/1 1/17 64/57
f 2/1 19/17 65/58
f 65/58 67/60 27/20
f 67/60 69/115 29/114
f 69/115 70/113 31/112
f 31/112 70/113 72/111
f 33/110 72/111 73/116
f 35/29 73/67 74/68
f 37/31 74/68 76/70
f 76/70 78/72 41/35
f 78/72 80/74 43/37
f 80/74 5/4 4/3
f 6/5 84/78 45/39
f 45/39 84/78 86/80
f 86/80 88/82 50/44
f 88/82 89/83 52/46
f 89/83 91/85 56/50
f 91/116 93/111 174/110
f 93/111 94/113 57/112
f 57/112 94/113 96/115
f 96/115 97/60 61/20
f 97/60 100/58 63/57
f 63/57 100/58 17/17
f 10/17 16/1 99/57
f 99/57 98/20 66/60
f 98/20 95/114 68/115
f 95/114 175/112 176/113
f 175/112 92/110 71/111
f 71/111 92/110 90/109
f 90/84 177/108 77/71
f 177/108 87/81 79/73
f 87/81 85/79 81/75
f 85/79 83/77 82/76
f 83/77 6/5 5/4
f 15/3 120/38 118/40
f 120/38 121/36 115/43
f 121/36 123/34 113/45
f 123/34 125/32 111/47
f 125/32 126/30 110/48
f 126/117 127/118 108/119
f 127/118 129/120 106/121
f 129/120 132/122 104/123
f 104/123 132/122 133/99
f 133/99 136/104 101/95
f 136/104 22/105 8/7
f 25/124 137/125 178/126
f 137/104 138/99 102/97
f 138/99 140/122 179/123
f 179/123 140/122 142/120
f 142/120 144/118 107/119
f 144/118 146/117 109/127
f 109/50 146/85 149/83
f 180/46 149/83 150/82
f 112/44 150/82 151/80
f 151/80 153/78 116/39
f 153/78 13/5 117/41
f 15/3 14/4 157/74
f 157/74 159/72 181/35
f 181/35 159/72 161/70
f 161/70 162/68 124/31
f 162/68 164/67 128/29
f 164/117 166/118 130/119
f 166/118 167/120 182/121
f 167/120 169/122 131/123
f 131/123 169/122 170/99
f 170/99 173/104 135/95
f 173/104 23/105 3/7
f 11/105 172/104 139/95
f 172/104 171/99 141/97
f 141/97 171/99 168/122
f 143/123 168/122 183/120
f 183/120 165/118 147/119
f 165/118 163/117 184/127
f 163/69 185/71 148/108
f 185/71 160/73 152/81
f 152/81 160/73 158/75
f 158/75 156/76 155/77
f 156/76 14/4 13/5
f 8/128 22/129 3/129
f 186/12 1/1 21/12
f 3/2 15/130 22/2
f 21/12 1/1 22/2
f 1/1 4/131 2/1
f 22/2 1/1 3/2
f 47/41 4/3 6/5
f 20/11 47/132 24/11
f 8/7 117/133 9/7
f 9/7 20/11 24/11
f 24/11 187/6 7/6
f 16/134 10/8 12/10
f 117/41 13/5 15/3
f 16/11 6/132 17/11
f 17/11 188/6 189/6
f 25/7 13/133 12/7
f 17/11 189/6 25/7
f 17/11 25/7 12/7
f 11/2 14/135 23/2
f 19/1 5/136 10/1
f 10/1 11/2 23/2
f 23/2 190/12 18/12
f 12/2 25/2 9/137
f 10/1 23/2 18/12
f 20/13 16/1 9/137
f 10/138 19/138 2/14
f 16/1 12/2 9/137
f 3/2 1/1 21/12
f 19/1 18/12 190/12
f 2/14 23/16 10/138
f 190/12 23/2 11/2
f 190/12 11/2 19/1
f 25/18 189/139 188/139
f 188/139 17/17 16/17
f 191/57 26/19 2/1
f 16/17 25/18 188/139
f 191/57 27/20 26/19
f 27/140 29/22 28/24
f 29/22 31/25 30/23
f 31/25 33/27 32/26
f 33/27 35/29 34/28
f 35/29 37/31 36/30
f 37/31 39/33 38/32
f 39/33 41/35 40/34
f 44/38 42/36 43/37
f 45/39 48/42 46/40
f 48/42 50/44 49/43
f 50/44 52/46 51/45
f 56/50 54/48 52/46
f 174/98 55/49 56/50
f 174/98 57/51 55/49
f 57/51 59/53 58/52
f 59/53 61/55 60/54
f 64/57 62/20 63/19
f 24/1 64/57 20/1
f 192/92 65/58 10/17
f 192/92 66/59 65/58
f 66/141 68/61 67/63
f 176/142 70/64 68/61
f 176/142 71/65 70/64
f 75/69 73/67 71/65
f 77/71 74/68 75/69
f 79/73 76/70 77/71
f 81/75 78/72 79/73
f 82/76 80/74 81/75
f 83/77 85/79 84/78
f 85/79 87/81 86/80
f 177/108 89/83 87/81
f 177/108 90/84 89/83
f 90/84 92/86 91/85
f 175/107 94/88 92/86
f 175/107 95/89 94/88
f 98/106 97/91 95/89
f 100/58 97/60 99/92
f 17/17 100/93 16/17
f 178/143 101/95 9/7
f 178/143 102/96 101/95
f 179/53 104/54 102/55
f 179/53 105/51 104/54
f 105/51 107/98 106/52
f 107/98 109/50 108/49
f 180/46 111/47 109/50
f 180/46 112/44 111/47
f 112/44 114/42 113/45
f 118/40 115/43 116/39
f 181/35 121/36 119/37
f 181/35 122/33 121/36
f 122/33 124/31 123/34
f 128/29 126/30 124/31
f 130/27 127/28 128/29
f 182/25 129/26 130/27
f 182/25 131/22 129/26
f 134/140 133/24 131/22
f 136/104 133/99 135/101
f 22/7 136/102 3/7
f 139/101 137/104 12/105
f 141/100 138/99 139/101
f 143/89 140/90 141/106
f 145/107 142/88 143/89
f 147/86 144/87 145/107
f 184/84 146/85 147/86
f 184/84 148/108 146/85
f 152/81 150/82 148/108
f 154/79 151/80 152/81
f 155/77 153/78 154/79
f 156/76 158/75 157/74
f 158/75 160/73 159/72
f 185/71 162/68 160/73
f 185/71 163/69 162/68
f 163/69 165/65 164/67
f 183/142 167/64 165/65
f 183/142 168/61 167/64
f 171/141 170/63 168/61
f 173/104 170/99 172/101
f 23/7 173/103 11/7
f 4/3 47/41 44/38
f 44/38 46/40 42/36
f 42/36 49/43 40/34
f 38/32 40/34 53/47
f 38/32 53/47 36/30
f 36/116 54/109 34/111
f 34/111 55/110 32/113
f 32/113 58/112 30/115
f 28/60 30/115 62/20
f 26/58 28/60 64/57
f 64/57 1/17 26/58
f 191/57 2/1 65/58
f 191/57 65/58 27/20
f 27/20 67/60 29/114
f 29/114 69/115 31/112
f 33/110 31/112 72/111
f 35/109 33/110 73/116
f 37/31 35/29 74/68
f 39/33 37/31 76/70
f 39/33 76/70 41/35
f 41/35 78/72 43/37
f 43/37 80/74 4/3
f 47/41 6/5 45/39
f 48/42 45/39 86/80
f 48/42 86/80 50/44
f 50/44 88/82 52/46
f 52/46 89/83 56/50
f 56/109 91/116 174/110
f 174/110 93/111 57/112
f 59/114 57/112 96/115
f 59/114 96/115 61/20
f 61/20 97/60 63/57
f 20/1 63/57 17/17
f 192/58 10/17 99/57
f 192/58 99/57 66/60
f 66/60 98/20 68/115
f 68/115 95/114 176/113
f 176/113 175/112 71/111
f 75/116 71/111 90/109
f 75/69 90/84 77/71
f 77/71 177/108 79/73
f 79/73 87/81 81/75
f 81/75 85/79 82/76
f 82/76 83/77 5/4
f 117/41 15/3 118/40
f 118/40 120/38 115/43
f 115/43 121/36 113/45
f 113/45 123/34 111/47
f 111/47 125/32 110/48
f 110/127 126/117 108/119
f 108/119 127/118 106/121
f 106/121 129/120 104/123
f 103/97 104/123 133/99
f 103/97 133/99 101/95
f 101/95 136/104 8/7
f 9/105 25/124 178/126
f 178/95 137/104 102/97
f 102/97 138/99 179/123
f 105/121 179/123 142/120
f 105/121 142/120 107/119
f 107/119 144/118 109/127
f 180/46 109/50 149/83
f 112/44 180/46 150/82
f 114/42 112/44 151/80
f 114/42 151/80 116/39
f 116/39 153/78 117/41
f 119/37 15/3 157/74
f 119/37 157/74 181/35
f 122/33 181/35 161/70
f 122/33 161/70 124/31
f 124/31 162/68 128/29
f 128/127 164/117 130/119
f 130/119 166/118 182/121
f 182/121 167/120 131/123
f 134/97 131/123 170/99
f 134/97 170/99 135/95
f 135/95 173/104 3/7
f 12/7 11/105 139/95
f 139/95 172/104 141/97
f 143/123 141/97 168/122
f 145/121 143/123 183/120
f 145/121 183/120 147/119
f 147/119 165/118 184/127
f 184/84 163/69 148/108
f 148/108 185/71 152/81
f 154/79 152/81 158/75
f 154/79 158/75 155/77
f 155/77 156/76 13/5
f 1/144 24/145 20/145
f 20/145 9/128 8/128
f 3/129 1/144 20/145
f 20/145 8/128 3/129

1255
Levels/Geometry/skydome.obj Normal file

File diff suppressed because it is too large Load Diff

View File

@ -1,4 +1,4 @@
# Blender v2.73 (sub 0) OBJ File: 'switch_inner.blend'
# Blender v2.72 (sub 0) OBJ File: 'switch_inner.blend'
# www.blender.org
o switch_Cube
v 0.952094 -0.488588 -1.000000

358
Levels/Geometry/torch.obj Normal file
View File

@ -0,0 +1,358 @@
# Blender v2.71 (sub 0) OBJ File: 'torch.blend'
# www.blender.org
o Cylinder
v 0.000000 -1.000000 -0.087051
v -0.000000 1.000000 -0.191513
v 0.016983 -1.000000 -0.085379
v 0.037362 1.000000 -0.187833
v 0.033313 -1.000000 -0.080425
v 0.073289 1.000000 -0.176935
v 0.048363 -1.000000 -0.072380
v 0.106399 1.000000 -0.159237
v 0.061555 -1.000000 -0.061555
v 0.135420 1.000000 -0.135420
v 0.072380 -1.000000 -0.048363
v 0.159237 1.000000 -0.106399
v 0.080425 -1.000000 -0.033313
v 0.176935 1.000000 -0.073289
v 0.085379 -1.000000 -0.016983
v 0.187833 1.000000 -0.037362
v 0.087051 -1.000000 -0.000000
v 0.191513 1.000000 0.000000
v 0.085379 -1.000000 0.016983
v 0.187833 1.000000 0.037362
v 0.080425 -1.000000 0.033313
v 0.176935 1.000000 0.073289
v 0.072380 -1.000000 0.048363
v 0.159237 1.000000 0.106399
v 0.061555 -1.000000 0.061555
v 0.135420 1.000000 0.135420
v 0.048363 -1.000000 0.072380
v 0.106399 1.000000 0.159237
v 0.033313 -1.000000 0.080425
v 0.073289 1.000000 0.176935
v 0.016983 -1.000000 0.085379
v 0.037362 1.000000 0.187833
v -0.000000 -1.000000 0.087051
v -0.000000 1.000000 0.191513
v -0.016983 -1.000000 0.085379
v -0.037362 1.000000 0.187833
v -0.033313 -1.000000 0.080425
v -0.073289 1.000000 0.176935
v -0.048363 -1.000000 0.072380
v -0.106399 1.000000 0.159237
v -0.061555 -1.000000 0.061555
v -0.135420 1.000000 0.135420
v -0.072381 -1.000000 0.048363
v -0.159237 1.000000 0.106399
v -0.080425 -1.000000 0.033313
v -0.176935 1.000000 0.073289
v -0.085379 -1.000000 0.016983
v -0.187833 1.000000 0.037362
v -0.087051 -1.000000 -0.000000
v -0.191513 1.000000 -0.000000
v -0.085379 -1.000000 -0.016983
v -0.187833 1.000000 -0.037362
v -0.080425 -1.000000 -0.033313
v -0.176935 1.000000 -0.073289
v -0.072380 -1.000000 -0.048363
v -0.159237 1.000000 -0.106399
v -0.061554 -1.000000 -0.061555
v -0.135420 1.000000 -0.135420
v -0.048363 -1.000000 -0.072381
v -0.106399 1.000000 -0.159237
v -0.033313 -1.000000 -0.080425
v -0.073289 1.000000 -0.176935
v -0.016983 -1.000000 -0.085379
v -0.037362 1.000000 -0.187833
vt 0.355490 0.133897
vt 0.388961 0.169345
vt 0.188374 0.340465
vt 0.418692 0.207984
vt 0.201889 0.358028
vt 0.444379 0.249421
vt 0.213565 0.376862
vt 0.465761 0.293235
vt 0.482621 0.338980
vt 0.230950 0.417570
vt 0.494787 0.386190
vt 0.236481 0.439028
vt 0.502136 0.434385
vt 0.239822 0.460935
vt 0.504593 0.483075
vt 0.502132 0.531764
vt 0.239822 0.505197
vt 0.494779 0.579957
vt 0.236481 0.527103
vt 0.482609 0.627165
vt 0.465746 0.672906
vt 0.223286 0.569353
vt 0.444361 0.716715
vt 0.213567 0.589266
vt 0.418672 0.758148
vt 0.388940 0.796782
vt 0.188377 0.625660
vt 0.355468 0.832224
vt 0.173163 0.641770
vt 0.318596 0.864115
vt 0.278700 0.892129
vt 0.138269 0.669000
vt 0.236185 0.915982
vt 0.118944 0.679843
vt 0.191483 0.935431
vt 0.098625 0.688683
vt 0.145050 0.950278
vt 0.077519 0.695432
vt 0.097357 0.960373
vt 0.055840 0.700021
vt 0.048890 0.965612
vt 0.033810 0.702402
vt 0.000142 0.965943
vt 0.011651 0.702553
vt 0.000142 0.000142
vt 0.048895 0.000476
vt 0.033797 0.263708
vt 0.097366 0.005719
vt 0.055829 0.266091
vt 0.145063 0.015817
vt 0.077509 0.270681
vt 0.191499 0.030670
vt 0.098617 0.277432
vt 0.236203 0.050124
vt 0.118937 0.286274
vt 0.278720 0.073982
vt 0.138263 0.297119
vt 0.514387 0.175443
vt 0.533044 0.130402
vt 0.990347 0.319823
vt 0.318618 0.102002
vt 0.173159 0.324353
vt 0.156399 0.309855
vt 0.704754 0.679615
vt 0.545660 0.695284
vt 0.689084 0.520522
vt 0.223285 0.396777
vt 0.240940 0.483066
vt 0.230950 0.548561
vt 0.201891 0.608099
vt 0.156403 0.656266
vt 0.011637 0.263556
vt 0.776743 0.495124
vt 0.727992 0.495124
vt 0.594601 0.439872
vt 0.680177 0.009653
vt 0.727992 0.000142
vt 0.776744 0.000142
vt 0.533043 0.364864
vt 0.514387 0.319824
vt 0.504876 0.272009
vt 0.504876 0.223258
vt 0.560128 0.405399
vt 0.560129 0.089866
vt 0.594602 0.055394
vt 0.869598 0.466956
vt 0.910133 0.439871
vt 0.971691 0.364863
vt 0.824559 0.009653
vt 0.869599 0.028309
vt 0.910135 0.055395
vt 0.944607 0.089867
vt 0.971691 0.130402
vt 0.990347 0.175442
vt 0.999858 0.223257
vt 0.999858 0.272009
vt 0.944606 0.405398
vt 0.824557 0.485613
vt 0.680177 0.485613
vt 0.635136 0.466957
vt 0.635137 0.028309
vt 0.529991 0.536192
vt 0.545660 0.520522
vt 0.564085 0.508211
vt 0.584558 0.499731
vt 0.606292 0.495408
vt 0.650186 0.499730
vt 0.670659 0.508211
vt 0.628452 0.495407
vt 0.704753 0.536191
vt 0.717065 0.554616
vt 0.729868 0.596823
vt 0.725545 0.575089
vt 0.725545 0.640717
vt 0.729868 0.618983
vt 0.717065 0.661190
vt 0.689084 0.695284
vt 0.670659 0.707596
vt 0.628452 0.720399
vt 0.606292 0.720399
vt 0.584558 0.716076
vt 0.564085 0.707595
vt 0.529990 0.679615
vt 0.517679 0.661190
vt 0.509199 0.640717
vt 0.504876 0.596824
vt 0.650185 0.716076
vt 0.509199 0.575090
vt 0.517679 0.554617
vt 0.504876 0.618983
vn 0.097900 -0.051900 -0.993800
vn 0.289900 -0.051900 -0.955700
vn 0.470800 -0.051900 -0.880700
vn 0.633500 -0.051900 -0.772000
vn 0.772000 -0.051900 -0.633500
vn 0.880700 -0.051900 -0.470800
vn 0.955700 -0.051900 -0.289900
vn 0.993800 -0.051900 -0.097900
vn 0.993800 -0.051900 0.097900
vn 0.955700 -0.051900 0.289900
vn 0.880700 -0.051900 0.470800
vn 0.772000 -0.051900 0.633500
vn 0.633500 -0.051900 0.772000
vn 0.470800 -0.051900 0.880700
vn 0.289900 -0.051900 0.955700
vn 0.097900 -0.051900 0.993800
vn -0.097900 -0.051900 0.993800
vn -0.289900 -0.051900 0.955600
vn -0.470800 -0.051900 0.880700
vn -0.633500 -0.051900 0.772000
vn -0.772000 -0.051900 0.633500
vn -0.880700 -0.051900 0.470800
vn -0.955700 -0.051900 0.289900
vn -0.993800 -0.051900 0.097900
vn -0.993800 -0.051900 -0.097900
vn -0.955600 -0.051900 -0.289900
vn -0.880700 -0.051900 -0.470800
vn -0.772000 -0.051900 -0.633500
vn -0.633500 -0.051900 -0.772000
vn -0.470800 -0.051900 -0.880700
vn 0.000000 1.000000 0.000000
vn -0.097900 -0.051900 -0.993800
vn -0.289900 -0.051900 -0.955700
vn 0.000000 -1.000000 0.000000
vn -0.955700 -0.051900 -0.289900
vn 0.000000 -1.000000 -0.000100
s off
f 2/1/1 4/2/1 3/3/1
f 4/2/2 6/4/2 5/5/2
f 6/4/3 8/6/3 7/7/3
f 7/7/4 8/6/4 10/8/4
f 10/8/5 12/9/5 11/10/5
f 12/9/6 14/11/6 13/12/6
f 14/11/7 16/13/7 15/14/7
f 15/14/8 16/13/8 18/15/8
f 18/15/9 20/16/9 19/17/9
f 19/17/10 20/16/10 22/18/10
f 21/19/11 22/18/11 24/20/11
f 24/20/12 26/21/12 25/22/12
f 26/21/13 28/23/13 27/24/13
f 27/24/14 28/23/14 30/25/14
f 30/25/15 32/26/15 31/27/15
f 32/26/16 34/28/16 33/29/16
f 33/29/17 34/28/17 36/30/17
f 36/30/18 38/31/18 37/32/18
f 38/31/19 40/33/19 39/34/19
f 40/33/20 42/35/20 41/36/20
f 42/35/21 44/37/21 43/38/21
f 44/37/22 46/39/22 45/40/22
f 46/39/23 48/41/23 47/42/23
f 48/41/24 50/43/24 49/44/24
f 50/45/25 52/46/25 51/47/25
f 52/46/26 54/48/26 53/49/26
f 54/48/27 56/50/27 55/51/27
f 56/50/28 58/52/28 57/53/28
f 58/52/29 60/54/29 59/55/29
f 60/54/30 62/56/30 61/57/30
f 54/58/31 52/59/31 22/60/31
f 64/61/32 2/1/32 1/62/32
f 62/56/33 64/61/33 63/63/33
f 31/64/34 47/65/34 15/66/34
f 1/62/1 2/1/1 3/3/1
f 3/3/2 4/2/2 5/5/2
f 5/5/3 6/4/3 7/7/3
f 9/67/4 7/7/4 10/8/4
f 9/67/5 10/8/5 11/10/5
f 11/10/6 12/9/6 13/12/6
f 13/12/7 14/11/7 15/14/7
f 17/68/8 15/14/8 18/15/8
f 17/68/9 18/15/9 19/17/9
f 21/19/10 19/17/10 22/18/10
f 23/69/11 21/19/11 24/20/11
f 23/69/12 24/20/12 25/22/12
f 25/22/13 26/21/13 27/24/13
f 29/70/14 27/24/14 30/25/14
f 29/70/15 30/25/15 31/27/15
f 31/27/16 32/26/16 33/29/16
f 35/71/17 33/29/17 36/30/17
f 35/71/18 36/30/18 37/32/18
f 37/32/19 38/31/19 39/34/19
f 39/34/20 40/33/20 41/36/20
f 41/36/21 42/35/21 43/38/21
f 43/38/22 44/37/22 45/40/22
f 45/40/23 46/39/23 47/42/23
f 47/42/24 48/41/24 49/44/24
f 49/72/25 50/45/25 51/47/25
f 51/47/35 52/46/35 53/49/35
f 53/49/27 54/48/27 55/51/27
f 55/51/28 56/50/28 57/53/28
f 57/53/29 58/52/29 59/55/29
f 59/55/30 60/54/30 61/57/30
f 10/73/31 8/74/31 2/75/31
f 44/76/31 42/77/31 40/78/31
f 62/79/31 60/80/31 58/81/31
f 56/82/31 22/60/31 64/83/31
f 50/84/31 48/85/31 52/59/31
f 2/75/31 14/86/31 10/73/31
f 16/87/31 22/60/31 20/88/31
f 38/89/31 44/76/31 40/78/31
f 38/89/31 36/90/31 34/91/31
f 34/91/31 32/92/31 30/93/31
f 30/93/31 28/94/31 26/95/31
f 26/95/31 24/96/31 22/60/31
f 18/97/31 16/87/31 20/88/31
f 14/86/31 22/60/31 16/87/31
f 14/86/31 12/98/31 10/73/31
f 6/99/31 4/100/31 8/74/31
f 22/60/31 38/89/31 34/91/31
f 56/82/31 54/58/31 22/60/31
f 46/101/31 44/76/31 48/85/31
f 44/76/31 38/89/31 48/85/31
f 30/93/31 22/60/31 34/91/31
f 30/93/31 26/95/31 22/60/31
f 52/59/31 48/85/31 38/89/31
f 56/82/31 64/83/31 58/81/31
f 64/83/31 62/79/31 58/81/31
f 61/57/33 62/56/33 63/63/33
f 52/59/31 38/89/31 22/60/31
f 8/74/31 4/100/31 2/75/31
f 63/63/32 64/61/32 1/62/32
f 2/75/31 22/60/31 14/86/31
f 22/60/31 2/75/31 64/83/31
f 63/102/34 1/103/34 3/104/34
f 3/104/34 5/105/34 7/106/34
f 11/107/34 13/108/34 9/109/34
f 15/66/34 7/106/34 13/108/34
f 15/66/34 17/110/34 19/111/34
f 23/112/34 15/66/34 21/113/34
f 27/114/34 31/64/34 25/115/34
f 27/114/36 29/116/36 31/64/36
f 31/64/34 33/117/34 35/118/34
f 39/119/34 41/120/34 43/121/34
f 43/121/34 45/122/34 47/65/34
f 47/65/34 49/123/34 51/124/34
f 53/125/34 57/126/34 63/102/34
f 35/118/34 37/127/34 31/64/34
f 59/128/34 61/129/34 63/102/34
f 63/102/34 3/104/34 7/106/34
f 13/108/34 7/106/34 9/109/34
f 31/64/34 23/112/34 25/115/34
f 37/127/34 39/119/34 43/121/34
f 37/127/34 47/65/34 31/64/34
f 47/65/34 37/127/34 43/121/34
f 53/125/34 55/130/34 57/126/34
f 15/66/34 19/111/34 21/113/34
f 63/102/34 7/106/34 15/66/34
f 15/66/34 23/112/34 31/64/34
f 47/65/34 51/124/34 53/125/34
f 53/125/34 63/102/34 15/66/34
f 57/126/34 59/128/34 63/102/34
f 47/65/34 53/125/34 15/66/34

Binary file not shown.

After

Width:  |  Height:  |  Size: 158 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

View File

View File

@ -0,0 +1,266 @@
<!-- Marble -->
<composition>
<typeID>20</typeID>
<ignoreHeightmap>false</ignoreHeightmap>
<object>
<modelPath>marbleSmooth.obj</modelPath>
<xOffset>0.0</xOffset>
<yOffset>0.0</yOffset>
<zOffset>0.0</zOffset>
<scale>1.0</scale>
<mass>8.0</mass>
</object>
</composition>
<!-- Block -->
<composition>
<typeID>40</typeID>
<ignoreHeightmap>false</ignoreHeightmap>
<object>
<modelPath>block.obj</modelPath>
<xOffset>0.0</xOffset>
<yOffset>1.0</yOffset>
<zOffset>0.0</zOffset>
<scale>1.5</scale>
<mass>25.0</mass>
</object>
</composition>
<!-- Column -->
<composition>
<typeID>60</typeID>
<ignoreHeightmap>false</ignoreHeightmap>
<object>
<modelPath>column.obj</modelPath>
<xOffset>0.0</xOffset>
<yOffset>0.0</yOffset>
<zOffset>0.0</zOffset>
<scale>1.0</scale>
<mass>0.0</mass>
</object>
</composition>
<!-- Torch with Lightsource -->
<composition>
<typeID>80</typeID>
<ignoreHeightmap>false</ignoreHeightmap>
<object>
<modelPath>torch.obj</modelPath>
<xOffset>0.0</xOffset>
<yOffset>0.0</yOffset>
<zOffset>0.0</zOffset>
<scale>1.0</scale>
<mass>0.0</mass>
</object>
<light>
<xOffset>0.0</xOffset>
<yOffset>3</yOffset>
<zOffset>0.0</zOffset>
<rColour>1.0</rColour>
<gColour>1.0</gColour>
<bColour>1.0</bColour>
<intensity>4.0</intensity>
</light>
</composition>
<!-- Lightsource -->
<composition>
<typeID>85</typeID>
<ignoreHeightmap>false</ignoreHeightmap>
<light>
<xOffset>0.0</xOffset>
<yOffset>1.0</yOffset>
<zOffset>0.0</zOffset>
<rColour>1.0</rColour>
<gColour>1.0</gColour>
<bColour>1.0</bColour>
<intensity>4.0</intensity>
</light>
</composition>
<!-- Block on 2 Pillars -->
<composition>
<typeID>100</typeID>
<ignoreHeightmap>false</ignoreHeightmap>
<object>
<modelPath>column.obj</modelPath>
<xOffset>0.0</xOffset>
<yOffset>0.0</yOffset>
<zOffset>0.0</zOffset>
<scale>1.5</scale>
<mass>0.0</mass>
</object>
<object>
<modelPath>column.obj</modelPath>
<xOffset>2.0</xOffset>
<yOffset>0.0</yOffset>
<zOffset>0.0</zOffset>
<scale>1.5</scale>
<mass>0.0</mass>
</object>
<object>
<modelPath>block.obj</modelPath>
<xOffset>1.0</xOffset>
<yOffset>3.0</yOffset>
<zOffset>0.0</zOffset>
<scale>1.5</scale>
<mass>0.0</mass>
</object>
</composition>
<!-- Switch -->
<composition>
<typeID>120</typeID>
<ignoreHeightmap>false</ignoreHeightmap>
<object>
<modelPath>switch_inner.obj</modelPath>
<xOffset>0.0</xOffset>
<yOffset>0.0</yOffset>
<zOffset>0.0</zOffset>
<scale>1.0</scale>
<mass>1.0</mass>
</object>
<object>
<modelPath>switch_outer.obj</modelPath>
<xOffset>0.0</xOffset>
<yOffset>0.0</yOffset>
<zOffset>0.0</zOffset>
<scale>1.0</scale>
<mass>0.0</mass>
</object>
</composition>
<!-- Bridge Block -->
<composition>
<typeID>140</typeID>
<ignoreHeightmap>true</ignoreHeightmap>
<object>
<modelPath>block.obj</modelPath>
<xOffset>0.0</xOffset>
<yOffset>20.0</yOffset>
<zOffset>0.0</zOffset>
<scale>1.5</scale>
<mass>0.0</mass>
</object>
</composition>
<!-- Bridge Block on Pillar-->
<composition>
<typeID>160</typeID>
<ignoreHeightmap>true</ignoreHeightmap>
<object>
<modelPath>block.obj</modelPath>
<xOffset>0.0</xOffset>
<yOffset>20.0</yOffset>
<zOffset>0.0</zOffset>
<scale>1.5</scale>
<mass>0.0</mass>
</object>
<object>
<modelPath>column.obj</modelPath>
<xOffset>0.0</xOffset>
<yOffset>18.0</yOffset>
<zOffset>0.0</zOffset>
<scale>1.5</scale>
<mass>0.0</mass>
</object>
<object>
<modelPath>column.obj</modelPath>
<xOffset>0.0</xOffset>
<yOffset>15.0</yOffset>
<zOffset>0.0</zOffset>
<scale>1.5</scale>
<mass>0.0</mass>
</object>
<object>
<modelPath>column.obj</modelPath>
<xOffset>0.0</xOffset>
<yOffset>12.0</yOffset>
<zOffset>0.0</zOffset>
<scale>1.5</scale>
<mass>0.0</mass>
</object>
</composition>
<objectData>
<modelPath>marbleSmooth.obj</modelPath>
<texturePath>Marbletexture.png</texturePath>
<ambientFactor>0.1</ambientFactor>
<diffuseFactor>0.5</diffuseFactor>
<specularFactor>0.5</specularFactor>
<shininess>3.0</shininess>
<physicType>Player</physicType>
<radius>1.5</radius>
<dampningL>0.2 </dampningL>
<dampningA>0.7</dampningA>
</objectData>
<objectData>
<modelPath>block.obj</modelPath>
<texturePath>blockTexture_small.png</texturePath>
<ambientFactor>0.1</ambientFactor>
<diffuseFactor>0.6</diffuseFactor>
<specularFactor>0.4</specularFactor>
<shininess>2.0</shininess>
<physicType>Box</physicType>
<width>5.0</width>
<height>3</height>
<length>1.8</length>
<dampningL>0.8</dampningL>
<dampningA>0.9</dampningA>
</objectData>
<objectData>
<modelPath>column.obj</modelPath>
<texturePath>columnTexture2.png</texturePath>
<ambientFactor>0.1</ambientFactor>
<diffuseFactor>0.6</diffuseFactor>
<specularFactor>0.4</specularFactor>
<shininess>2.0</shininess>
<physicType>TriangleMesh</physicType>
<dampningL>1.0</dampningL>
<dampningA>1.0</dampningA>
</objectData>
<objectData>
<modelPath>torch.obj</modelPath>
<texturePath>torchTexture.png</texturePath>
<ambientFactor>0.1</ambientFactor>
<diffuseFactor>0.3</diffuseFactor>
<specularFactor>0.7</specularFactor>
<shininess>10.0</shininess>
<physicType>TriangleMesh</physicType>
<dampningL>1.0</dampningL>
<dampningA>1.0</dampningA>
</objectData>
<objectData>
<modelPath>switch_inner.obj</modelPath>
<texturePath>switchTextureInner.png</texturePath>
<ambientFactor>0.1</ambientFactor>
<diffuseFactor>0.6</diffuseFactor>
<specularFactor>0.4</specularFactor>
<shininess>2.0</shininess>
<physicType>Box</physicType>
<width>0.5</width>
<height>0.5</height>
<length>0.5</length>
<dampningL>1.0</dampningL>
<dampningA>1.0</dampningA>
</objectData>
<objectData>
<modelPath>switch_outer.obj</modelPath>
<texturePath>switchTextureOuter.png</texturePath>
<ambientFactor>0.1</ambientFactor>
<diffuseFactor>0.6</diffuseFactor>
<specularFactor>0.4</specularFactor>
<shininess>2.0</shininess>
<physicType>TriangleMesh</physicType>
<dampningL>1.0</dampningL>
<dampningA>1.0</dampningA>
</objectData>

Binary file not shown.

After

Width:  |  Height:  |  Size: 104 B

Binary file not shown.

View File

@ -0,0 +1,67 @@
<composition>
<scale>1.0</scale>
<xRot>0.0</xRot>
<yRot>0.0</yRot>
<zRot>0.0</zRot>
<manualPos>false</manualPos>
<xPos>-0.500000</xPos>
<yOffset>0.0</yOffset>
<zPos>1.500000</zPos>
<idGreen>1</idGreen>
<idBlue>5</idBlue>
<typeID>99</typeID>
</composition>
<composition>
<scale>1.0</scale>
<xRot>0.0</xRot>
<yRot>0.0</yRot>
<zRot>0.0</zRot>
<manualPos>false</manualPos>
<xPos>-2.500000</xPos>
<yOffset>0.0</yOffset>
<zPos>-1.500000</zPos>
<idGreen>1</idGreen>
<idBlue>3</idBlue>
<typeID>99</typeID>
</composition>
<ambientLight>
<rColour>1.0</rColour>
<gColour>1.0</gColour>
<bColour>1.0</bColour>
</ambientLight>
<fogColour>
<rColour>0.10</rColour>
<gColour>0.14</gColour>
<bColour>0.14</bColour>
<alpha>1.0</alpha>
</fogColour>
<directionalLight>
<xOffset>-1.0</xOffset>
<yOffset>1.5</yOffset>
<zOffset>1.0</zOffset>
<rColour>1.0</rColour>
<gColour>1.0</gColour>
<bColour>0.9</bColour>
<intensity>0.2</intensity>
</directionalLight>
<skydome>
<texture>skydome.png</texture>
</skydome>
<trigger>
<name>-</name>
<xPosition>0.0</xPosition>
<yPosition>0.0</yPosition>
<zPosition>0.0</zPosition>
<distance>1.0</distance>
<isBiggerThan>false</isBiggerThan>
<idGreen>0</idGreen>
<idBlue>0</idBlue>
<objectNum>1</objectNum>
<functionPointer>-</functionPointer>
</trigger>

Binary file not shown.

After

Width:  |  Height:  |  Size: 684 B

Binary file not shown.

File diff suppressed because it is too large Load Diff

View File

Before

Width:  |  Height:  |  Size: 9.5 MiB

After

Width:  |  Height:  |  Size: 9.5 MiB

View File

Before

Width:  |  Height:  |  Size: 3.5 MiB

After

Width:  |  Height:  |  Size: 3.5 MiB

View File

Before

Width:  |  Height:  |  Size: 1.6 MiB

After

Width:  |  Height:  |  Size: 1.6 MiB

View File

Before

Width:  |  Height:  |  Size: 721 KiB

After

Width:  |  Height:  |  Size: 721 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 MiB

View File

Before

Width:  |  Height:  |  Size: 3.1 MiB

After

Width:  |  Height:  |  Size: 3.1 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 MiB

BIN
Levels/Textures/skydome.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 650 KiB

View File

Before

Width:  |  Height:  |  Size: 2.5 MiB

After

Width:  |  Height:  |  Size: 2.5 MiB

View File

Before

Width:  |  Height:  |  Size: 2.8 MiB

After

Width:  |  Height:  |  Size: 2.8 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 100 KiB

BIN
Levels/heightmapLvl0.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

BIN
Levels/heightmapLvl02.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

BIN
Levels/heightmapLvl1.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 48 KiB

BIN
Levels/heightmapLvl1.xcf Normal file

Binary file not shown.

View File

@ -0,0 +1,16 @@
if(triggeredSCRIPTNAME == nil) then
triggeredSCRIPTNAME = false
end
function trigger(objectToChange)
if(triggeredSCRIPTNAME == false) then
if(not level) then
print("No level found in Lua!")
return
end
--enter the scripts code here and replace all occurences of SCRIPTNAME with the name of the script.
triggeredSCRIPTNAME = true
print("SCRIPTNAME")
end
end

View File

@ -0,0 +1,14 @@
if(triggeredDeleteObject == nil) then
triggeredDeleteObject = false
end
function trigger(objectToChange)
if(triggeredDeleteObject == false) then
if(not level) then
print("No level found in Lua!")
return
end
level:deleteObject(objectToChange)
triggeredDeleteObject = true
print("deleteObject")
end
end

View File

@ -0,0 +1,16 @@
if(triggeredDeleteRandomObject == nil) then
triggeredDeleteRandomObject = false
end
function trigger(objectToChange)
if(triggeredDeleteRandomObject == false) then
if(not level) then
print("No level found in Lua!")
return
end
a = level:getObjectCount()
rand = math.random(0, a - 1)
level:deleteObject(rand)
triggeredDeleteRandomObject = true
print("deleteRandomObject")
end
end

View File

@ -0,0 +1,28 @@
if(triggeredOpenDoor1 == nil) then
triggeredOpenDoor1 = false
end
function trigger(objectToChange)
if(triggeredOpenDoor1 == false) then
if(not level) then
print("No level found in Lua!")
return
end
if(not openDoorCounter) then
openDoorCounter = 0
end
openDoorCounter = openDoorCounter + 1
if (openDoorCounter == 3) then
local strength = 1
local xPos = 0
local yPos = 0
local zPos = 0
level:moveObject(objectToChange, strength, xPos, yPos, zPos)
print("Opening the door")
end
triggeredOpenDoor1undo = false
triggeredOpenDoor1 = true
print("openDoor1")
end
end

View File

@ -0,0 +1,19 @@
if(triggeredOpenDoor1undo == nil) then
triggeredOpenDoor1undo = false
end
function trigger(objectToChange)
if(triggeredOpenDoor1undo == false) then
if(not level) then
print("No level found in Lua!")
return
end
if(triggeredOpenDoor1) then
openDoorCounter = openDoorCounter - 1
triggeredOpenDoor1 = false
end
triggeredOpenDoor1undo = true
print("openDoor1undo")
end
end

View File

@ -0,0 +1,28 @@
if(triggeredOpenDoor2 == nil) then
triggeredOpenDoor2 = false
end
function trigger(objectToChange)
if(triggeredOpenDoor2 == false) then
if(not level) then
print("No level found in Lua!")
return
end
if(not openDoorCounter) then
openDoorCounter = 0
end
openDoorCounter = openDoorCounter + 1
if (openDoorCounter == 3) then
local strength = 1
local xPos = 0
local yPos = 0
local zPos = 0
level:moveObject(objectToChange, strength, xPos, yPos, zPos)
print("Opening the door")
end
triggeredOpenDoor2undo = false
triggeredOpenDoor2 = true
print("openDoor2")
end
end

View File

@ -0,0 +1,19 @@
if(triggeredOpenDoor2undo == nil) then
triggeredOpenDoor2undo = false
end
function trigger(objectToChange)
if(triggeredOpenDoor2undo == false) then
if(not level) then
print("No level found in Lua!")
return
end
if(triggeredOpenDoor2) then
openDoorCounter = openDoorCounter - 1
triggeredOpenDoor2 = false
end
triggeredOpenDoor2undo = true
print("openDoor2undo")
end
end

View File

@ -0,0 +1,28 @@
if(triggeredOpenDoor3 == nil) then
triggeredOpenDoor3 = false
end
function trigger(objectToChange)
if(triggeredOpenDoor3 == false) then
if(not level) then
print("No level found in Lua!")
return
end
if(not openDoorCounter) then
openDoorCounter = 0
end
openDoorCounter = openDoorCounter + 1
if (openDoorCounter == 3) then
local strength = 1
local xPos = 0
local yPos = 0
local zPos = 0
level:moveObject(objectToChange, strength, xPos, yPos, zPos)
print("Opening the door")
end
triggeredOpenDoor3undo = false
triggeredOpenDoor3 = true
print("openDoor3")
end
end

View File

@ -0,0 +1,19 @@
if(triggeredOpenDoor3undo == nil) then
triggeredOpenDoor3undo = false
end
function trigger(objectToChange)
if(triggeredOpenDoor3undo == false) then
if(not level) then
print("No level found in Lua!")
return
end
if(triggeredOpenDoor3) then
openDoorCounter = openDoorCounter - 1
triggeredOpenDoor3 = false
end
triggeredOpenDoor3undo = true
print("openDoor3undo")
end
end

View File

@ -1,24 +1,6 @@
![Saxum Logo](https://github.com/Faerbit/Saxum/blob/master/logo/saxum_logo_small.png)
#Marble Race Game
This is a Marble Puzzle/Exploration Game developed in the practical course
at the institute for Computer Graphics and Multimedia at the RWTH Aachen.
##Downloads
See [release page](https://github.com/Faerbit/Saxum/releases) for downloads.
##Controls
You can control the camera by moving the mouse. You can zoom with the mouse wheel.
The marble is controlled via the W,A,S and D keys.
To exit the game press escape.
The controls are also listed listed on the loading screen.
This will be a Marble Race Game developed for the Softwarepraktikum at the RWTH Aachen.
##Building
Currently only tested on Linux. To build execute build.sh. Resulting binary will be in binaries.
You can also use the run.sh script to directly start the binary after building it.
## OS X support
In theory this should also compile on OS X. Since I do not own a Mac it is impossible for me to test this.
If you get it compiling, please get in touch with me afterwards.
##Modding
In theory the game is highly moddable. For modding some knowledge in XML and Lua is required. If you're interested in this, please get in touch with me, so I can explain the workflow to you.

7
Shader/depth.fsh Normal file
View File

@ -0,0 +1,7 @@
#version 150
out float fragmentDepth;
void main() {
fragmentDepth = gl_FragCoord.z;
}

144
Shader/phong.fsh Normal file
View File

@ -0,0 +1,144 @@
#version 150
in vec3 vNormal;
in vec2 vTexCoord;
in vec4 fragPosition;
in vec4 shadowCoord_near;
in vec4 shadowCoord_middle;
in vec4 shadowCoord_far;
out vec4 oColor;
uniform sampler2D uTexture;
uniform sampler2DShadow shadowMap_near;
uniform sampler2DShadow shadowMap_middle;
uniform sampler2DShadow shadowMap_far;
uniform samplerCubeShadow shadowMap_cube;
uniform vec3 ambientColor;
uniform float ambientFactor;
uniform float diffuseFactor;
uniform float specularFactor;
uniform vec3 camera;
uniform float shininess;
uniform int lightCount;
uniform vec3 directionalLightVector;
uniform vec3 directionalColor;
uniform float directionalIntensity;
uniform vec3 lightSources[32];
uniform vec3 lightColors[32];
uniform float lightIntensities[32];
uniform float farPlane;
uniform vec4 fogColor;
uniform vec3 cameraCenter;
vec2 poissonDisk[16] = vec2[](
vec2( -0.94201624, -0.39906216 ),
vec2( 0.94558609, -0.76890725 ),
vec2( -0.094184101, -0.92938870 ),
vec2( 0.34495938, 0.29387760 ),
vec2( -0.91588581, 0.45771432 ),
vec2( -0.81544232, -0.87912464 ),
vec2( -0.38277543, 0.27676845 ),
vec2( 0.97484398, 0.75648379 ),
vec2( 0.44323325, -0.97511554 ),
vec2( 0.53742981, -0.47373420 ),
vec2( -0.26496911, -0.41893023 ),
vec2( 0.79197514, 0.19090188 ),
vec2( -0.24188840, 0.99706507 ),
vec2( -0.81409955, 0.91437590 ),
vec2( 0.19984126, 0.78641367 ),
vec2( 0.14383161, -0.14100790 )
);
float sampleDirectionalShadow(sampler2DShadow shadowMap, vec4 shadowCoord) {
float nearPlane = 0.1;
float visibility = 1.0;
float bias = 0.001*tan(acos(clamp(dot(vNormal, -directionalLightVector), 0.0, 1.0)));
bias = clamp(bias, 0.0, 0.01);
/*for (int i=0; i<4; i++) {
visibility -= directionalIntensity/16*(1.0-texture(shadowMap, vec3(shadowCoord.xy + poissonDisk[i]/700.0, (2.0 * nearPlane)/(farPlane+ nearPlane - shadowCoord.z * (farPlane - nearPlane))- bias)));
}
if (visibility == 1.0-(directionalIntensity/16)*4)
{
visibility = 1.0-directionalIntensity;
}
else if (visibility != 1.0) {
for (int i=0; i<12; i++) {
visibility -= directionalIntensity/16*(1.0-texture(shadowMap, vec3(shadowCoord.xy + poissonDisk[i]/700.0, (2.0 * nearPlane)/(farPlane+ nearPlane - shadowCoord.z * (farPlane - nearPlane))- bias)));
}
}*/
visibility = texture(shadowMap, vec3(shadowCoord.xy, (shadowCoord.z - bias)/shadowCoord.w));
return (2.0 * nearPlane) / (farPlane + nearPlane - visibility * (farPlane - nearPlane));
}
float samplePointShadow(samplerCubeShadow shadowMap, vec3 lightDirection) {
float bias = 0.005;
return texture(shadowMap, vec4(lightDirection.xyz , length(lightDirection) - bias));
}
float distanceToBorder(vec2 vector) {
float xDistance = min(vector.x, 1.0-vector.x);
float yDistance = min(vector.y, 1.0-vector.y);
return min(xDistance, yDistance);
}
void main()
{
vec3 ambientColor = ambientFactor * ambientColor;
vec3 diffuseColor = vec3(0.0, 0.0, 0.0);
vec3 specularColor = vec3(0.0, 0.0, 0.0);
// direction lighting
if(length(directionalLightVector)>0.0f) {
vec3 directionalVector = normalize(directionalLightVector);
diffuseColor += clamp(dot(normalize(vNormal), directionalVector)
*diffuseFactor*directionalIntensity*directionalColor, 0.0, 1.0);
vec3 cameraVector = normalize(camera - vec3(fragPosition));
specularColor += clamp(pow((dot((cameraVector+directionalVector),normalize(vNormal))/(length(cameraVector+directionalVector)*length(normalize(vNormal)))),shininess), 0.0, 1.0)
*specularFactor*directionalIntensity*directionalColor;
}
// point lights
float visibility = 1.0;
for(int i = 0; i<lightCount; i++) {
vec3 lightDirection = vec3(fragPosition) - lightSources[i];
float distance = length(lightDirection);
// only take lights into account with meaningful contribution
if (distance > 0.001f) {
vec3 lightVector = normalize(lightSources[i]-vec3(fragPosition));
float intensity = clamp(exp(-(1/lightIntensities[i])*distance), 0.0, 1.0);
diffuseColor += clamp(dot(normalize(vNormal), lightVector)
*diffuseFactor*intensity*lightColors[i], 0.0, 1.0);
vec3 cameraVector = normalize(camera - vec3(fragPosition));
specularColor += clamp(pow((dot((cameraVector+lightVector),normalize(vNormal))/(length(cameraVector+lightVector)*length(normalize(vNormal)))),shininess), 0.0, 1.0)
*specularFactor*intensity*lightColors[i];
visibility = samplePointShadow(shadowMap_cube, lightDirection);
}
}
// shadows
if (distanceToBorder(shadowCoord_middle.xy) <= 0.5 && distanceToBorder(shadowCoord_middle.xy) > 0.0) {
if (distanceToBorder(shadowCoord_near.xy) <= 0.5 && distanceToBorder(shadowCoord_near.xy) > 0.0) {
visibility *= sampleDirectionalShadow(shadowMap_near, shadowCoord_near);
}
else {
visibility *= sampleDirectionalShadow(shadowMap_middle, shadowCoord_middle);
}
}
else {
visibility *= sampleDirectionalShadow(shadowMap_far, shadowCoord_far);
}
specularColor *= visibility;
diffuseColor *= visibility;
vec3 finalColor = specularColor + diffuseColor + ambientColor;
float distanceCameraCenter = distance(cameraCenter, vec3(fragPosition));
float fogFactor = clamp((1.0 - ((farPlane - 35.0) -distanceCameraCenter)/30.0), 0.0, 1.0);
fogFactor *= clamp((1.0-((fragPosition.y-8.0)/30.0)), 0.0, 1.0);
vec4 texture = texture(uTexture, vTexCoord).rgba;
oColor = vec4(finalColor, 1.0f)*texture;
oColor = mix(oColor, fogColor, fogFactor);
}

View File

@ -11,21 +11,17 @@ in vec2 aTexCoord;
out vec3 vNormal;
out vec2 vTexCoord;
out vec4 fragPosition;
out vec4 shadowCoord0;
out vec4 shadowCoord1;
out vec4 shadowCoord2;
out vec4 shadowCoord3;
out vec4 shadowCoord4;
out vec4 shadowCoord_near;
out vec4 shadowCoord_middle;
out vec4 shadowCoord_far;
void main()
{
fragPosition = modelMatrix * vec4(aPosition, 1.0);
vNormal = inverse(transpose(mat3(modelMatrix))) * aNormal;
vTexCoord = aTexCoord;
shadowCoord0 = shadowMVPs[0] * vec4(aPosition, 1.0);
shadowCoord1 = shadowMVPs[1] * vec4(aPosition, 1.0);
shadowCoord2 = shadowMVPs[2] * vec4(aPosition, 1.0);
shadowCoord3 = shadowMVPs[3] * vec4(aPosition, 1.0);
shadowCoord4 = shadowMVPs[4] * vec4(aPosition, 1.0);
shadowCoord_near = shadowMVPs[0] * vec4(aPosition, 1.0);
shadowCoord_middle = shadowMVPs[1] * vec4(aPosition, 1.0);
shadowCoord_far = shadowMVPs[2] * vec4(aPosition, 1.0);
gl_Position = modelViewProjectionMatrix * vec4(aPosition, 1.0);
}

73
application.cc Normal file
View File

@ -0,0 +1,73 @@
#include "application.hh"
Application::Application() {
graphics = Graphics(glm::uvec2(1024, 786), 0.1f, 150.0f);
}
void Application::init()
{
// init random generator
std::srand(std::time(NULL));
// choose Level TODO: Choose this in a menu
this->level = Level("1");
// Don't change this!
ignoredMouseUpdates = 0;
cameraLock = true;
// set Skybox size
level.setSkydomeSize((graphics.getFarPlane())-31.0f);
// define where shaders and textures can be found:
ACGL::Base::Settings::the()->setResourcePath("../");
ACGL::Base::Settings::the()->setShaderPath("Shader/");
ACGL::Base::Settings::the()->setTexturePath("Levels/Textures/");
ACGL::Base::Settings::the()->setGeometryPath("Levels/Geometry/");
// load Level
level.load();
graphics.init(&level);
// just in case: check for errors
openGLCriticalError();
}
Graphics* Application::getGraphics() {
return &graphics;
}
Level* Application::getLevel() {
return &level;
}
void Application::setFocused(bool focused) {
this->focused = focused;
}
bool Application::isFocused() {
return focused;
}
void Application::setCameraLock(bool locked) {
// Prevent camera jumping huge distances
if (!locked) {
ignoreNextMouseUpdate();
}
cameraLock = locked;
}
void Application::ignoreNextMouseUpdate() {
ignoredMouseUpdates++;
}
void Application::ignoredOneMouseUpdate() {
ignoredMouseUpdates--;
}
int Application::getIgnoredMouseUpdates() {
return ignoredMouseUpdates;
}
bool Application::isLocked() {
return cameraLock;
}

29
application.hh Normal file
View File

@ -0,0 +1,29 @@
#ifndef APPLICATION_HH_INCLUDED
#define APPLICATION_HH_INCLUDED
#include "physics.hh"
#include "graphics.hh"
#include "level.hh"
class Application {
public:
Application();
Graphics* getGraphics();
Level* getLevel();
void init();
void setFocused(bool focused);
bool isFocused();
void setCameraLock(bool locked);
bool isLocked();
void ignoreNextMouseUpdate();
int getIgnoredMouseUpdates();
void ignoredOneMouseUpdate();
private:
int ignoredMouseUpdates;
bool focused;
bool cameraLock;
Graphics graphics;
Level level;
};
#endif

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -5,7 +5,6 @@ then
rm -rf build
rm -rf binaries
rm -rf extern/bullet/build
cd extern/lua; make clean; cd ../..
exit
fi
@ -16,13 +15,6 @@ then
cmake="cmake -DCMAKE_SYSTEM_NAME='Windows' -DCMAKE_FIND_ROOT_PATH='/usr/bin:/usr/x86_64-w64-mingw32' -DCMAKE_CXX_COMPILER='x86_64-w64-mingw32-g++' -DCMAKE_C_COMPILER='x86_64-w64-mingw32-gcc'"
fi
buildType=$2
if [[ $2 == "" ]]
then
buildType="Debug"
fi
currentDir=$(pwd)
threads=$(($(nproc)+1))
@ -31,7 +23,7 @@ threads=$(($(nproc)+1))
cd extern/lua/
if [[ $1 == "windows" ]]
then
make CC=x86_64-w64-mingw32-gcc mingw
make mingw
else
make linux
fi
@ -45,10 +37,10 @@ mkdir -p build
cd build
if hash ninja 2>/dev/null
then
$cmake -DBUILD_DEMOS=0 -DBUILD_EXTRAS=0 -DCMAKE_BUILD_TYPE=$buildType -DBUILD_SHARED_LIBS=0 -GNinja ..
$cmake -DBUILD_DEMOS=0 -DBUILD_EXTRAS=0 -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=0 -GNinja ..
ninja
else
$cmake -DBUILD_DEMOS=0 -DBUILD_EXTRAS=0 -DCMAKE_BUILD_TYPE=$buildType -DBUILD_SHARED_LIBS=0 ..
$cmake -DBUILD_DEMOS=0 -DBUILD_EXTRAS=0 -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=0 ..
make -j$threads
fi
@ -60,9 +52,9 @@ mkdir -p build
cd build
if hash ninja 2>/dev/null
then
$cmake -DGLFW_BUILD_EXAMPLES=0 -DGLFW_BUILD_TESTS=0 -DCMAKE_BUILD_TYPE=$buildType -DBUILD_SHARED_LIBS=0 -GNinja ..
$cmake -DGLFW_BUILD_EXAMPLES=0 -DGLFW_BUILD_TESTS=0 -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=0 -GNinja ..
ninja
else
$cmake -DGLFW_BUILD_EXAMPLES=0 -DGLFW_BUILD_TESTS=0 -DCMAKE_BUILD_TYPE=$buildType -DBUILD_SHARED_LIBS=0 ..
$cmake -DGLFW_BUILD_EXAMPLES=0 -DGLFW_BUILD_TESTS=0 -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=0 ..
make -j$threads
fi

View File

@ -3,11 +3,11 @@
Camera::Camera(glm::vec2 rotation, float distance) {
this->rotation = rotation;
this->distance = distance;
this->setIsPhysicsCamera(true);
}
Camera::Camera() {
Camera(glm::vec2(0.0f, 0.0f), 5.0f);
rotation = glm::vec2(0.0f, 0.0f);
distance = 1.0f;
}
Camera::~Camera() {
@ -31,16 +31,8 @@ void Camera::setRotation(glm::vec2 rotation) {
updatePosition();
}
bool Camera::getIsPhysicsCamera()
{
return usePhysicsCamera;
}
void Camera::setIsPhysicsCamera(bool val)
{
usePhysicsCamera = val;
}
void Camera::updateRotation(glm::vec2 rotation) {
this->rotation += rotation;
if((this->rotation.x + rotation.x) >= 1.57f) {
this->rotation.x = 1.57;
this->rotation.y += rotation.y;
@ -56,11 +48,11 @@ void Camera::updateRotation(glm::vec2 rotation) {
}
void Camera:: updateDistance(float distance) {
if (this->distance + distance <= 2.5f) {
this->distance = 2.5f;
if (this->distance + distance <= 1.0f) {
this->distance = 1.0f;
}
else if (this->distance + distance >= 15.0f) {
this->distance = 15.f;
else if (this->distance + distance >= 30.0f) {
this->distance = 30.f;
}
else {
this->distance += distance;
@ -68,27 +60,6 @@ void Camera:: updateDistance(float distance) {
updatePosition();
}
void Camera::setPosition(glm::vec3 pos)
{
position = pos;
}
glm::vec3 Camera::getPosition()
{
return position;
}
void Camera::setDirection(glm::vec3 dir)
{
direction = dir;
}
glm::vec3 Camera::getDirection()
{
return direction;
}
void Camera::updatePosition() {
glm::vec4 cameraVector = glm::vec4(0.0f, 0.0f, distance, 0.0f);
// rotate vector

View File

@ -15,20 +15,11 @@ class Camera {
void setRotation(glm::vec2 rotation);
void updateRotation(glm::vec2 rotation); //adds to current rotation
glm::vec3 getVector();
void setPosition(glm::vec3 pos);
glm::vec3 getPosition();
void setDirection(glm::vec3 dir);
glm::vec3 getDirection();
bool getIsPhysicsCamera();
void setIsPhysicsCamera(bool val);
private:
void updatePosition();
float distance;
glm::vec2 rotation;
glm::vec3 vector;
glm::vec3 position;
glm::vec3 direction;
bool usePhysicsCamera;
};
#endif

View File

@ -19,14 +19,13 @@ database:
test:
override:
- docker run -v ~/Saxum:/saxum/saxum -w=/saxum/saxum -u=$(id -u) faerbit/saxum ./package.sh linux
- docker run -v ~/Saxum:/saxum/saxum -w=/saxum/saxum -u=$(id -u) faerbit/saxum ./package.sh windows
- if [ -f Saxum_Windows.zip ]; then cp Saxum_Windows.zip $CIRCLE_ARTIFACTS; fi
- if [ -f Saxum_Linux.zip ]; then cp Saxum_Linux.zip $CIRCLE_ARTIFACTS; fi
- docker run -v ~/swp:/swp/swp -w=/swp/swp -u=$(id -u) faerbit/swp ./package.sh linux
- docker run -v ~/swp:/swp/swp -w=/swp/swp -u=$(id -u) faerbit/swp ./package.sh windows
- cp MarbleGame_Windows.zip MarbleGame_Linux.zip $CIRCLE_ARTIFACTS
deployment:
master:
branch: master
commands:
- if [ -f Saxum_Windows.zip ]; then ./dropbox_uploader.sh -p upload Saxum_Windows.zip /; fi
- if [ -f Saxum_Linux.zip ]; then ./dropbox_uploader.sh -p upload Saxum_Linux.zip /; fi
- ./dropbox_uploader.sh -p upload MarbleGame_Windows.zip /
- ./dropbox_uploader.sh -p upload MarbleGame_Linux.zip /

View File

@ -32,28 +32,13 @@ ADD_DEFINITIONS(-Wall)
ENDIF(MSVC)
ADD_DEFINITIONS(-DNO_SPACE_NAVIGATOR_SUPPORT)
# for lodepng
SET(ACGL_BASE_DIR "${CMAKE_SOURCE_DIR}/extern/acgl")
FILE(GLOB_RECURSE HEADER_FILES_LODEPNG "${ACGL_BASE_DIR}/include/lodepng/*.h")
FILE(GLOB_RECURSE SOURCE_FILES_LODEPNG "${ACGL_BASE_DIR}/src/lodepng/*.cpp")
# for tinyxml
FILE(GLOB_RECURSE HEADER_FILES_TINYXML "${CMAKE_SOURCE_DIR}/extern/tinyxml/*.hh")
FILE(GLOB_RECURSE SOURCE_FILES_TINYXML "${CMAKE_SOURCE_DIR}/extern/tinyxml/*.cc")
SET(HEADER_FILES_EXTERN ${HEADER_FILES_LODEPNG} ${HEADER_FILES_TINYXML})
SET(SOURCE_FILES_EXTERN ${SOURCE_FILES_LODEPNG} ${SOURCE_FILES_TINYXML})
INCLUDE_DIRECTORIES("${ACGL_BASE_DIR}/include")
INCLUDE_DIRECTORIES("${CMAKE_SOURCE_DIR}/extern/tinyxml")
#
#
###############################################################################
FILE(GLOB_RECURSE SOURCE_FILES_CONV "${CMAKE_SOURCE_DIR}/converter/*.cc")
SET(SOURCE_FILES_CONV ${SOURCE_FILES_CONV} ${SOURCE_FILES_EXTERN})
SET(SOURCE_FILES_CONV ${SOURCE_FILES_CONV})
FILE(GLOB_RECURSE HEADER_FILES_CONV "${CMAKE_SOURCE_DIR}/converter/*.hh")
SET(HEADER_FILES_CONV ${HEADER_FILES_CONV} ${HEADER_FILES_EXTERN})
SET(HEADER_FILES_CONV ${HEADER_FILES})
ADD_EXECUTABLE(converter ${SOURCE_FILES_CONV} ${HEADER_FILES_CONV})

View File

@ -1,25 +1,24 @@
#include "converter.hh"
#include <fstream>
#include <string>
#include <sys/stat.h>
#include <iostream>
using namespace tinyxml2;
Converter::Converter(std::string levelPath, std::string levelName, std::string compositionsPath){
xmlFile = levelPath + levelName + ".xml";
Converter::Converter(std::string level){
xmlFile = "../Levels/ObjectSetups/Level" + level + ".xml";
//Load Compositions
std::string stringCompositions = compositionsPath;
const char* charCompositions = stringCompositions.c_str();
const char* charCompositions = "../Levels/ObjectSetups/Compositions.xml";
compositions->LoadFile(charCompositions);
if (compositions->ErrorID()!=0){
printf("Could not open Compositions!\n");
exit(-1);
}
//Create a backup of the current Level png file, if no backup exists
std::string pngFile = levelPath + levelName + ".png";
std::string backupPNG = levelPath + levelName + "Backup.png";
std::string pngFile = "../Levels/ObjectSetups/Level" + level + ".png";
std::string backupPNG = "../Levels/ObjectSetups/BackupLevel" + level + ".png";
struct stat buf;
if(stat(backupPNG.c_str(), &buf) != 0){
std::ifstream src(pngFile, std::ios::binary);
@ -27,30 +26,19 @@ Converter::Converter(std::string levelPath, std::string levelName, std::string c
dst << src.rdbuf();
}
//Create a backup of the current Level xml file
std::string backupXML = "../Levels/ObjectSetups/BackupLevel" + level + ".xml";
std::ifstream src(xmlFile, std::ios::binary);
std::ofstream dst(backupXML, std::ios::binary);
//Load the Level xml file
nextID.push_back(0);
nextID.push_back(1);
for (int i=0; i<256; i++){
for (int j=0; j<256; j++){
idUsed[i][j] = false;
}
}
idUsed[0][0] = true;
nextID.push_back(1);
const char* charXmlFile = xmlFile.c_str();
doc->LoadFile(charXmlFile);
//check if the xml file did not already exist
if (doc->ErrorID()!=0){
std::string answer;
printf("Could not open xml, do you want to create a new xml? (y/n)\n");
std::cin >> answer;
while(answer.compare("y") != 0 && answer.compare("n") != 0){
printf("Answer with y or n\n");
std::cin >> answer;
}
if(answer.compare("n") == 0){
exit(-1);
}
printf("Creating new xml.\n");
printf("Could not open xml, creating new xml.\n");
//Create all global Lightingparameters with Dummy-Values
std::vector<XMLElement*> lightAttributes;
lightAttributes.push_back(doc->NewElement("xOffset"));
@ -63,18 +51,10 @@ Converter::Converter(std::string levelPath, std::string levelName, std::string c
XMLElement* rColourAmbient = doc->NewElement("rColour");
XMLElement* gColourAmbient = doc->NewElement("gColour");
XMLElement* bColourAmbient = doc->NewElement("bColour");
XMLElement* rColourFogDay = doc->NewElement("rColour");
XMLElement* gColourFogDay = doc->NewElement("gColour");
XMLElement* bColourFogDay = doc->NewElement("bColour");
XMLElement* alphaFogDay = doc->NewElement("alpha");
XMLElement* rColourFogRise = doc->NewElement("rColour");
XMLElement* gColourFogRise = doc->NewElement("gColour");
XMLElement* bColourFogRise = doc->NewElement("bColour");
XMLElement* alphaFogRise = doc->NewElement("alpha");
XMLElement* rColourFogNight = doc->NewElement("rColour");
XMLElement* gColourFogNight = doc->NewElement("gColour");
XMLElement* bColourFogNight = doc->NewElement("bColour");
XMLElement* alphaFogNight = doc->NewElement("alpha");
XMLElement* rColourFog = doc->NewElement("rColour");
XMLElement* gColourFog = doc->NewElement("gColour");
XMLElement* bColourFog = doc->NewElement("bColour");
XMLElement* alphaFog = doc->NewElement("alpha");
lightAttributes[0]->SetText("-1.0");
lightAttributes[1]->SetText("1.5");
@ -86,83 +66,34 @@ Converter::Converter(std::string levelPath, std::string levelName, std::string c
rColourAmbient->SetText("1.0");
gColourAmbient->SetText("1.0");
bColourAmbient->SetText("1.0");
rColourFogDay->SetText("0.57");
gColourFogDay->SetText("0.80");
bColourFogDay->SetText("0.98");
alphaFogDay->SetText("1.0");
rColourFogRise->SetText("0.88");
gColourFogRise->SetText("0.38");
bColourFogRise->SetText("0.38");
alphaFogRise->SetText("1.0");
rColourFogNight->SetText("0.09");
gColourFogNight->SetText("0.1");
bColourFogNight->SetText("0.24");
alphaFogNight->SetText("1.0");
rColourFog->SetText("0.10");
gColourFog->SetText("0.14");
bColourFog->SetText("0.14");
alphaFog->SetText("1.0");
XMLElement* ambientLight = doc->NewElement("ambientLight");
XMLElement* fogColourDay = doc->NewElement("fogColourDay");
XMLElement* fogColourRise = doc->NewElement("fogColourRise");
XMLElement* fogColourNight = doc->NewElement("fogColourNight");
XMLElement* fogColour = doc->NewElement("fogColour");
XMLElement* directionalLight = doc->NewElement("directionalLight");
ambientLight->InsertEndChild(rColourAmbient);
ambientLight->InsertEndChild(gColourAmbient);
ambientLight->InsertEndChild(bColourAmbient);
fogColourDay->InsertEndChild(rColourFogDay);
fogColourDay->InsertEndChild(gColourFogDay);
fogColourDay->InsertEndChild(bColourFogDay);
fogColourDay->InsertEndChild(alphaFogDay);
fogColourRise->InsertEndChild(rColourFogRise);
fogColourRise->InsertEndChild(gColourFogRise);
fogColourRise->InsertEndChild(bColourFogRise);
fogColourRise->InsertEndChild(alphaFogRise);
fogColourNight->InsertEndChild(rColourFogNight);
fogColourNight->InsertEndChild(gColourFogNight);
fogColourNight->InsertEndChild(bColourFogNight);
fogColourNight->InsertEndChild(alphaFogNight);
fogColour->InsertEndChild(rColourFog);
fogColour->InsertEndChild(gColourFog);
fogColour->InsertEndChild(bColourFog);
fogColour->InsertEndChild(alphaFog);
for(int i=0;i<7;i++){
directionalLight->InsertEndChild(lightAttributes[i]);
}
doc->InsertEndChild(ambientLight);
doc->InsertEndChild(fogColourDay);
doc->InsertEndChild(fogColourRise);
doc->InsertEndChild(fogColourNight);
doc->InsertEndChild(fogColour);
doc->InsertEndChild(directionalLight);
//Create global terrain Element
XMLElement* terrain = doc->NewElement("terrain");
XMLElement* terrainHeightmap = doc->NewElement("heightmap");
XMLElement* terrainTexture = doc->NewElement("texture");
XMLElement* terrainAmbientFactor = doc->NewElement("ambientFactor");
XMLElement* terrainDiffuseFactor = doc->NewElement("diffuseFactor");
XMLElement* terrainSpecularFactor = doc->NewElement("specularFactor");
XMLElement* terrainShininess = doc->NewElement("shininess");
std::string heightmapPath = "heightmap" + levelName + ".png";
terrainHeightmap->SetText(heightmapPath.c_str());
terrainTexture->SetText("terrainTexture.png");
terrainAmbientFactor->SetText("0.1");
terrainDiffuseFactor->SetText("0.8");
terrainSpecularFactor->SetText("0.2");
terrainShininess->SetText("1.0");
terrain->InsertEndChild(terrainHeightmap);
terrain->InsertEndChild(terrainTexture);
terrain->InsertEndChild(terrainAmbientFactor);
terrain->InsertEndChild(terrainDiffuseFactor);
terrain->InsertEndChild(terrainSpecularFactor);
terrain->InsertEndChild(terrainShininess);
doc->InsertEndChild(terrain);
//Create global skydome Element
XMLElement* skydome = doc->NewElement("skydome");
XMLElement* skydomeModel = doc->NewElement("model");
XMLElement* skydomeTexture = doc->NewElement("texture");
XMLElement* skydomeTextureNight = doc->NewElement("nightTexture");
skydomeModel->SetText("skydome.obj");
skydomeTexture->SetText("skydome.png");
skydomeTextureNight->SetText("skydomeNight.png");
skydome->InsertEndChild(skydomeModel);
skydome->InsertEndChild(skydomeTexture);
skydome->InsertEndChild(skydomeTextureNight);
doc->InsertEndChild(skydome);
//Create global physics parameters
@ -170,12 +101,12 @@ Converter::Converter(std::string levelPath, std::string levelName, std::string c
XMLElement* playerFriction = doc->NewElement("friction");
XMLElement* playerStrength = doc->NewElement("strength");
playerFriction->SetText("0.9");
playerStrength->SetText("300.0");
playerStrength->SetText("100.0");
physics->InsertEndChild(playerFriction);
physics->InsertEndChild(playerStrength);
doc->InsertEndChild(physics);
//Create positionConstraint Dummy
//create positionConstraint Dummy
XMLElement* positionConstraint = doc->NewElement("positionConstraint");
XMLElement* positionConstraintObjectNum = doc->NewElement("objectNum");
XMLElement* positionConstraintXPos = doc->NewElement("xPosition");
@ -194,17 +125,16 @@ Converter::Converter(std::string levelPath, std::string levelName, std::string c
positionConstraint->InsertEndChild(positionConstraintStrength);
doc->InsertEndChild(positionConstraint);
}else{
//Create a backup of the current Level xml file
std::string backupXML = levelPath + levelName + "Backup.xml";
std::ifstream src(xmlFile, std::ios::binary);
std::ofstream dst(backupXML, std::ios::binary);
dst << src.rdbuf();
//Check what IDs are already in use
XMLElement* thisComposition = doc->FirstChildElement("composition");
int idGreen, idBlue;
for(; thisComposition; thisComposition=thisComposition->NextSiblingElement("composition")){
int idGreen = queryInt(thisComposition, "idGreen");
int idBlue = queryInt(thisComposition, "idBlue");
idUsed[idGreen][idBlue] = true;
errorCheck(thisComposition->FirstChildElement("idGreen")->QueryIntText(&idGreen));
errorCheck(thisComposition->FirstChildElement("idBlue")->QueryIntText(&idBlue));
if(idGreen > nextID[0] || (idGreen == nextID[0] && idBlue > nextID[1])){
nextID[0] = idGreen;
nextID[1] = idBlue;
}
}
}
}
@ -216,52 +146,9 @@ Converter::~Converter(){
}
std::vector<int> Converter::newComposition(int type, float posX, float posZ){
int oldIDGreen, oldIDBlue;
bool alreadyExists = false;
XMLElement* thisComposition = doc->FirstChildElement("composition");
for(; thisComposition; thisComposition=thisComposition->NextSiblingElement("composition")){
float xPos = queryFloat(thisComposition, "xPos");
float zPos = queryFloat(thisComposition, "zPos");
int typeID = queryInt(thisComposition, "typeID");
if(xPos == posX && zPos == posZ && typeID == type){
if(alreadyExists){
std::cout << "At the position " << xPos << "," << zPos << " multiple compositions with the ID " << typeID << " exist in the xml." << std::endl;
exit(-1);
}
oldIDGreen = queryInt(thisComposition, "idGreen");
oldIDBlue = queryInt(thisComposition, "idBlue");
alreadyExists = true;
}
}
if (alreadyExists){
if (! idUsed[oldIDGreen][oldIDBlue]){
std::cout << "The composition with ID " << oldIDGreen << "," << oldIDBlue << " exists in the xml but the converter thinks it does not." << std::endl;
exit(-1);
}
std::vector<int> oldID;
oldID.push_back(oldIDGreen);
oldID.push_back(oldIDBlue);
return oldID;
}
bool full = false;
while(idUsed[nextID[0]][nextID[1]]){
nextID[1] += 1;
if (nextID[1] == 256){
nextID[1] = 0;
nextID[0] +=1;
if (nextID[0] == 256){
if(full){
printf("Can not have more than 65535 compositions.\n");
exit(-1);
}
nextID[0] = 0;
full = true;
}
}
}
XMLElement* newComposition = doc->NewElement("composition");
doc->InsertFirstChild(newComposition);
XMLElement* typeID = doc->NewElement("typeID");
XMLElement* idBlue = doc->NewElement("idBlue");
XMLElement* idGreen = doc->NewElement("idGreen");
@ -302,7 +189,6 @@ std::vector<int> Converter::newComposition(int type, float posX, float posZ){
XMLElement* trigger = doc->NewElement("trigger");
newComposition->InsertEndChild(trigger);
XMLElement* name = doc->NewElement("name");
XMLElement* undo = doc->NewElement("undo");
XMLElement* xPosition = doc->NewElement("xPosition");
XMLElement* yPosition = doc->NewElement("yPosition");
XMLElement* zPosition = doc->NewElement("zPosition");
@ -317,7 +203,6 @@ std::vector<int> Converter::newComposition(int type, float posX, float posZ){
XMLElement* toChangeObjNum = doc->NewElement("toChangeObjNum");
name->SetText("-");
undo->SetText("false");
xPosition->SetText("0");
yPosition->SetText("0");
zPosition->SetText("0");
@ -332,7 +217,6 @@ std::vector<int> Converter::newComposition(int type, float posX, float posZ){
toChangeObjNum->SetText("0");
trigger->InsertEndChild(name);
trigger->InsertEndChild(undo);
trigger->InsertEndChild(xPosition);
trigger->InsertEndChild(yPosition);
trigger->InsertEndChild(zPosition);
@ -346,23 +230,25 @@ std::vector<int> Converter::newComposition(int type, float posX, float posZ){
trigger->InsertEndChild(toChangeIdBlue);
trigger->InsertEndChild(toChangeObjNum);
idUsed[nextID[0]][nextID[1]] = true;
doc->InsertFirstChild(newComposition);
return nextID;
std::vector<int> ret = nextID;
nextID[1] += 1;
if (nextID[1] == 255){
nextID[1] = 0;
nextID[0] +=1;
}
return ret;
}
void Converter::updateComposition(int idG, int idB, float posX, float posZ){
XMLElement* thisComposition = doc->FirstChildElement("composition");
int idGreen = 0, idBlue = 0;
bool compositionExists = false;
for(; thisComposition; thisComposition=thisComposition->NextSiblingElement("composition")){
int idGreen = queryInt(thisComposition, "idGreen");
int idBlue = queryInt(thisComposition, "idBlue");
errorCheck(thisComposition->FirstChildElement("idGreen")->QueryIntText(&idGreen));
errorCheck(thisComposition->FirstChildElement("idBlue")->QueryIntText(&idBlue));
if(idGreen == idG && idBlue == idB){
if (compositionExists){
std::cout << "The ID " << idGreen << "," << idBlue << " is used for multiple compositions in the xml." << std::endl;
exit(-1);
}
bool manualPos = queryBool(thisComposition, "manualPos");
bool manualPos;
errorCheck(thisComposition->FirstChildElement("manualPos")->QueryBoolText(&manualPos));
if(!manualPos){
thisComposition->FirstChildElement("xPos")->SetText(std::to_string(posX).c_str());
thisComposition->FirstChildElement("zPos")->SetText(std::to_string(posZ).c_str());
@ -371,16 +257,17 @@ void Converter::updateComposition(int idG, int idB, float posX, float posZ){
}
}
if(!compositionExists){
std::cout << "A composition has the ID " << idG << "," << idB << " and the position " << posX << "," << posZ << " in the png, but does not exist in the xml." << std::endl;
std::cout << "A composition has an ID in the png, but does'nt exist in the xml." << std::endl;
exit(-1);
}
}
void Converter::deleteComposition(int idG, int idB){
XMLElement* thisComposition = doc->FirstChildElement("composition");
int idGreen, idBlue;
for(; thisComposition; thisComposition=thisComposition->NextSiblingElement("composition")){
int idGreen = queryInt(thisComposition, "idGreen");
int idBlue = queryInt(thisComposition, "idBlue");
errorCheck(thisComposition->FirstChildElement("idGreen")->QueryIntText(&idGreen));
errorCheck(thisComposition->FirstChildElement("idBlue")->QueryIntText(&idBlue));
if(idGreen == idG && idBlue == idB){
doc->DeleteChild(thisComposition);
}
@ -392,70 +279,8 @@ void Converter::save(){
doc->SaveFile(charXmlFile);
}
float Converter::queryFloat(XMLElement* element, const char* attribute){
XMLElement* attributeElement = element->FirstChildElement(attribute);
if (attributeElement == NULL){
std::cout << "XMLError: Attribute " << attribute << " does not exist." << std::endl;
exit(-1);
}
float ret;
errorCheck(attributeElement->QueryFloatText(&ret));
return ret;
}
float Converter::queryFloat(XMLDocument*& element, const char* attribute){
XMLElement* attributeElement = element->FirstChildElement(attribute);
if (attributeElement == NULL){
std::cout << "XMLError: Attribute " << attribute << " does not exist." << std::endl;
exit(-1);
}
float ret;
errorCheck(attributeElement->QueryFloatText(&ret));
return ret;
}
int Converter::queryInt(XMLElement* element, const char* attribute){
XMLElement* attributeElement = element->FirstChildElement(attribute);
if (attributeElement == NULL){
std::cout << "XMLError: Attribute " << attribute << " does not exist." << std::endl;
exit(-1);
}
int ret;
errorCheck(attributeElement->QueryIntText(&ret));
return ret;
}
int Converter::queryInt(XMLDocument*& element, const char* attribute){
XMLElement* attributeElement = element->FirstChildElement(attribute);
if (attributeElement == NULL){
std::cout << "XMLError: Attribute " << attribute << " does not exist." << std::endl;
exit(-1);
}
int ret;
errorCheck(attributeElement->QueryIntText(&ret));
return ret;
}
bool Converter::queryBool(XMLElement* element, const char* attribute){
XMLElement* attributeElement = element->FirstChildElement(attribute);
if (attributeElement == NULL){
std::cout << "XMLError: Attribute " << attribute << " does not exist." << std::endl;
exit(-1);
}
bool ret;
errorCheck(attributeElement->QueryBoolText(&ret));
return ret;
}
bool Converter::queryBool(XMLDocument*& element, const char* attribute){
XMLElement* attributeElement = element->FirstChildElement(attribute);
if (attributeElement == NULL){
std::cout << "XMLError: Attribute " << attribute << " does not exist." << std::endl;
exit(-1);
}
bool ret;
errorCheck(attributeElement->QueryBoolText(&ret));
return ret;
std::vector<int> Converter::getNextID(){
return nextID;
}
void Converter::errorCheck(XMLError error){
@ -476,6 +301,5 @@ void Converter::errorCheck(XMLError error){
else {
printf("Unknown error.\n");
}
exit(-1);
}
}

View File

@ -8,26 +8,21 @@
using namespace tinyxml2;
class Converter {
public:
Converter(std::string levelPath, std::string levelName, std::string compositionsPath);
Converter(std::string level);
Converter();
~Converter();
void updateComposition(int idG, int idB, float posX, float posZ); //updates the position of a composition
std::vector<int> newComposition(int type, float posX, float posZ); //creates a new composition and returns its ID
void deleteComposition(int idG, int idB);
void save(); //writes the xml to file
std::vector<int> newComposition(int type, float posX, float posZ);//creates a new composition and returns its ID
void deleteComposition(int idG, int idB);
void save(); //writes the xml to file
std::vector<int> getNextID(); //returns the next unused ID
private:
void errorCheck(XMLError error);
std::vector<int> nextID;
bool idUsed[256][256];
std::string xmlFile;
XMLDocument* doc = new XMLDocument();
XMLDocument* compositions = new XMLDocument();
float queryFloat(XMLElement* element, const char* attribute);
float queryFloat(XMLDocument*& element, const char* attribute);
int queryInt(XMLElement* element, const char* attribute);
int queryInt(XMLDocument*& element, const char* attribute);
bool queryBool(XMLElement* element, const char* attribute);
bool queryBool(XMLDocument*& element, const char* attribute);
void errorCheck(XMLError error);
};
#endif

6096
converter/lodepng.cc Normal file

File diff suppressed because it is too large Load Diff

1702
converter/lodepng.hh Normal file

File diff suppressed because it is too large Load Diff

View File

@ -1,21 +1,16 @@
#include <lodepng/lodepng.h>
#include "lodepng.hh"
#include <string>
#include "converter.hh"
#include <vector>
#include <iostream>
#include "tinyxml2.hh"
using namespace tinyxml2;
int main( int argc, char *argv[] ){
if (argc <= 1){
std::cout << "Converter needs the levels name (Level1) as input." << std::endl;
std::cout << "Converter needs the level (1,2,...) as input." << std::endl;
exit(-1);
}
printf("Initializing.\n");
std::string levelString = argv[1];
Converter conv = Converter(levelString);
bool idFound[256][256];
for (int i=0; i<256; i++){
for (int j=0; j<256; j++){
@ -23,81 +18,44 @@ int main( int argc, char *argv[] ){
}
}
XMLDocument* config = new XMLDocument();
const char* xmlFile = "../data/config.xml";
config->LoadFile(xmlFile);
if (config->ErrorID()!=0){
printf("Could not open config.xml!\n");
exit(-1);
}
XMLElement* xmlLevelPath = config->FirstChildElement("levelXmlPath");
if (xmlLevelPath == NULL){
std::cout << "XMLError: Attribute levelXmlPath does not exist." << std::endl;
exit(-1);
}
const char* charLevelPath = xmlLevelPath->GetText();
if(charLevelPath == NULL){
std::cout << "XMLError: Attribute levelXmlPath could not be loaded." << std::endl;
exit(-1);
}
std::string levelPath = charLevelPath;
XMLElement* xmlCompositionsPath = config->FirstChildElement("compositionsPath");
if (xmlCompositionsPath == NULL){
std::cout << "XMLError: Attribute compositionsPath does not exist." << std::endl;
exit(-1);
}
const char* charCompositionsPath = xmlCompositionsPath->GetText();
if(charCompositionsPath == NULL){
std::cout << "XMLError: Attribute compositionsPath could not be loaded." << std::endl;
exit(-1);
}
std::string compositionsPath = charCompositionsPath;
Converter conv = Converter("../" + levelPath, levelString, "../" + compositionsPath);
//read the setup png
printf("Loading the png.\n");
std::string filePath = "../" + levelPath + levelString + ".png";
//read the setup png
std::string filePath = "../Levels/ObjectSetups/Level" + levelString + ".png";
std::vector<unsigned char> image; //the raw pixels
unsigned int width, height;
unsigned error = lodepng::decode(image, width, height, filePath);
if (error) {
std::cout << "decoder error " << error << ": " << lodepng_error_text(error) << std::endl;
std::cout << "Converter needs the levels name (Level1) as input." << std::endl;
exit(-1);
}
printf("Iterating over the png.\n");
//iterate over all pixels of the image
for(unsigned int columnNum = 0; columnNum < width; columnNum++){
for(unsigned int rowNum = 0; rowNum < height; rowNum++){
for(unsigned int rowNum = 0; rowNum < height; rowNum++){
for(unsigned int columnNum = 0; columnNum < width; columnNum++){
unsigned int pixel = (rowNum*width+columnNum)*4;
//if there is a composition here, adjust the xml and image
if(image[pixel]!=0 && image[pixel]!=255){
if(image[pixel+1]==0 && image[pixel+2]==0){//composition has no ID
std::vector<int> newID;
newID = conv.newComposition(image[pixel], 0.5+columnNum-0.5*width, 0.5+rowNum-0.5*height);
idFound[newID[0]][newID[1]] = true;
image[pixel+1] = newID[0];
image[pixel+2] = newID[1];
}else{//composition has an ID
conv.updateComposition(image[pixel+1], image[pixel+2], 0.5+columnNum-0.5*width, 0.5+rowNum-0.5*height);
if((image[pixel+1]==0 && image[pixel+2]==0) || (image[pixel+1]==255 && image[pixel+2]==255)){
std::vector<int> temp;
temp = conv.newComposition(image[pixel], 0.5+rowNum-0.5*height, 0.5+columnNum-0.5*width);
idFound[temp[0]][temp[1]] = true;
image[pixel+1] = temp[0];
image[pixel+2] = temp[1];
}else{
conv.updateComposition(image[pixel+1], image[pixel+2], 0.5+rowNum-0.5*height, 0.5+columnNum-0.5*width);
idFound[image[pixel+1]][image[pixel+2]] = true;
}
}
}
}
printf("Writing IDs back to the png.\n");
//write ids back to the setup png
error = lodepng::encode(filePath, image, width, height);
if(error) {
std::cout << "encoder error " << error << ": "<< lodepng_error_text(error) << std::endl;
exit(-1);
}
printf("Deleting obsolete Compositions (Can take a minute).\n");
//delete compositions that were not in the png anymore
for (int i=0; i<256; i++){
for (int j=0; j<256; j++){
for (int i=1; i<=conv.getNextID()[1]; i++){
for (int j=1; j<256; j++){
if (! idFound[i][j]){
conv.deleteComposition(i,j);
}
@ -107,3 +65,4 @@ int main( int argc, char *argv[] ){
//save the xml
conv.save();
}

0
extern/tinyxml/tinyxml2.cc → converter/tinyxml2.cc Normal file → Executable file
View File

0
extern/tinyxml/tinyxml2.hh → converter/tinyxml2.hh Normal file → Executable file
View File

View File

@ -1,42 +0,0 @@
<resolution>
<width>1024</width>
<height>786</height>
</resolution>
<!-- The resolution settings get ignored if you choose windowed fullscreen. -->
<windowedFullscreen>true</windowedFullscreen>
<!-- Reduce the following parameters if you game runs too slow.
If you feel your game runs smooth enough you can increase them to
increase the visual quality. -->
<shadowCubeSize>512</shadowCubeSize>
<farPlane>150.0</farPlane>
<maxShadowRenderCount>3</maxShadowRenderCount>
<!-- The following stuff is used to configure the application.
Do not change unless you know what you are doing. -->
<compositionsPath>data/levels/Compositions.xml</compositionsPath>
<shaderPath>data/shader/</shaderPath>
<geometryPath>data/geometry/</geometryPath>
<texturePath>data/textures/</texturePath>
<scriptPath>data/levels/scripts/</scriptPath>
<heightmapPath>data/levels/</heightmapPath>
<levelXmlPath>data/levels/</levelXmlPath>
<levelXML>Level1.xml</levelXML>
<!-- must be located in the textures directory -->
<loadingScreen>
<screenPath>loadingscreen.png</screenPath>
<screenContinuePath>loadingscreenContinue.png</screenContinuePath>
</loadingScreen>

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,39 +0,0 @@
# Blender v2.73 (sub 0) OBJ File: 'exit.blend'
# www.blender.org
o Plane
v -3.440849 -0.000000 2.993210
v 3.435127 -0.000000 2.993210
v -3.440849 -0.000000 -2.993210
v 3.435127 -0.000000 -2.993210
v -3.440849 -0.215618 2.993210
v 3.435127 -0.215618 2.993210
v -3.440849 -0.215618 -2.993210
v 3.435127 -0.215618 -2.993210
v 0.196185 -0.238611 0.123684
vt 0.999900 0.000100
vt 0.999900 0.999900
vt 0.000100 0.999900
vt 0.999981 0.000019
vt 0.000019 0.000019
vt 0.000019 0.036035
vt 0.999981 0.036035
vt 0.000100 0.000100
vn 0.000000 1.000000 0.000000
vn 0.000000 -1.000000 0.000000
vn 0.000000 0.000000 -1.000000
vn 1.000000 0.000000 0.000000
vn 0.000000 0.000000 1.000000
vn -1.000000 0.000000 0.000000
s off
f 2/1/1 4/2/1 3/3/1
f 7/3/2 8/2/2 6/1/2
f 8/4/3 7/5/3 3/6/3
f 6/6/4 8/7/4 4/4/4
f 5/6/5 6/7/5 2/4/5
f 7/4/6 5/5/6 1/6/6
f 1/8/1 2/1/1 3/3/1
f 5/8/2 7/3/2 6/1/2
f 4/7/3 8/4/3 3/6/3
f 2/5/4 6/6/4 4/4/4
f 1/5/5 5/6/5 2/4/5
f 3/7/6 7/4/6 1/6/6

View File

@ -1,52 +0,0 @@
# Blender v2.72 (sub 0) OBJ File: ''
# www.blender.org
o Wall_Cube.000
v 0.537791 3.045326 -3.045326
v 0.537791 -3.045326 -3.045326
v 0.537791 -3.045326 3.045326
v -0.537791 3.045326 3.045326
v -0.537791 -3.045326 3.045326
v -0.537791 -3.045326 -3.045326
v 0.537791 3.045326 3.045326
v -0.537791 3.045326 -3.045326
vt 1.000000 0.000000
vt 0.000000 -1.000000
vt 1.000000 -1.000000
vt -1.000000 0.000000
vt -1.000000 -1.000000
vt 0.000000 0.000000
vt 0.039666 1.000166
vt 0.000334 0.000166
vt 0.039666 0.000166
vt 0.960071 -0.007992
vt 0.993184 0.992028
vt 0.959736 0.992008
vt 0.002338 0.996941
vt 0.032522 -0.000041
vt 0.032299 0.996953
vt 0.995477 0.006970
vt 0.952679 0.987810
vt 0.952679 0.006970
vt 0.000334 1.000166
vt 0.993520 -0.007972
vt 0.002561 -0.000052
vt 0.995477 0.987810
vn 1.000000 0.000000 0.000000
vn -1.000000 0.000000 0.000000
vn 0.000000 0.000000 -1.000000
vn 0.000000 -0.000000 1.000000
vn 0.000000 -1.000000 -0.000000
vn 0.000000 1.000000 0.000000
s off
f 1/1/1 3/2/1 2/3/1
f 4/4/2 6/2/2 5/5/2
f 7/6/1 3/2/1 1/1/1
f 8/6/2 6/2/2 4/4/2
f 8/7/3 2/8/3 6/9/3
f 7/10/4 5/11/4 3/12/4
f 2/13/5 5/14/5 6/15/5
f 8/16/6 7/17/6 1/18/6
f 1/19/3 2/8/3 8/7/3
f 4/20/4 5/11/4 7/10/4
f 3/21/5 5/14/5 2/13/5
f 4/22/6 7/17/6 8/16/6

View File

@ -1,41 +0,0 @@
# Blender v2.72 (sub 0) OBJ File: 'hint.blend'
# www.blender.org
o Plane
v -1.000000 0.000000 1.000000
v 1.000000 0.000000 1.000000
v -1.000000 0.000000 -1.000000
v 1.000000 0.000000 -1.000000
v -1.000000 -0.040124 1.000000
v 1.000000 -0.040124 1.000000
v -1.000000 -0.040124 -1.000000
v 1.000000 -0.040124 -1.000000
vt 0.999906 0.000094
vt 0.011632 0.011458
vt 0.031989 0.030429
vt 0.988368 0.993659
vt 0.978931 0.022798
vt 0.002935 0.993659
vt 0.968011 0.974689
vt 0.023910 0.970956
vt 0.000100 0.999900
vt 0.999900 0.999900
vt 0.000100 0.000100
vn 0.000000 0.000000 -1.000000
vn 1.000000 0.000000 0.000000
vn 0.000000 0.000000 1.000000
vn -1.000000 0.000000 0.000000
vn 0.000000 1.000000 0.000000
vn 0.000000 -1.000000 0.000000
s off
f 8/1/1 7/2/1 3/3/1
f 6/4/2 8/1/2 4/5/2
f 5/6/3 6/4/3 2/7/3
f 7/2/4 5/6/4 1/8/4
f 4/5/1 8/1/1 3/3/1
f 2/7/2 6/4/2 4/5/2
f 1/8/3 5/6/3 2/7/3
f 3/3/4 7/2/4 1/8/4
f 3/9/5 2/1/5 4/10/5
f 6/1/6 7/9/6 8/10/6
f 1/11/5 2/1/5 3/9/5
f 5/11/6 7/9/6 6/1/6

View File

@ -1,15 +0,0 @@
# Blender v2.72 (sub 0) OBJ File: 'ruinsTile.blend'
# www.blender.org
o Plane
v -1.000000 0.000000 1.000000
v 1.000000 0.000000 1.000000
v -1.000000 0.000000 -1.000000
v 1.000000 0.000000 -1.000000
vt 0.999900 0.000100
vt 0.999900 0.999900
vt 0.000100 0.999900
vt 0.000100 0.000100
vn 0.000000 1.000000 0.000000
s off
f 2/1/1 4/2/1 3/3/1
f 1/4/1 2/1/1 3/3/1

File diff suppressed because it is too large Load Diff

View File

@ -1,641 +0,0 @@
# Blender v2.72 (sub 0) OBJ File: 'torch.blend'
# www.blender.org
v 0.000000 0.011815 -0.121572
v 0.023715 0.011815 -0.119227
v 0.046524 0.011815 -0.112303
v 0.067552 0.011815 -0.101069
v 0.085979 0.011815 -0.085979
v 0.101069 0.011815 -0.067552
v 0.112303 0.011815 -0.046523
v 0.119227 0.011815 -0.023714
v 0.121572 0.011815 -0.000000
v 0.119227 0.011815 0.023714
v 0.112303 0.011815 0.046523
v 0.101069 0.011815 0.067552
v 0.085979 0.011815 0.085979
v 0.067552 0.011815 0.101069
v 0.046523 0.011815 0.112303
v 0.023714 0.011815 0.119227
v -0.000000 0.011815 0.121572
v -0.023715 0.011815 0.119227
v -0.046524 0.011815 0.112303
v -0.067553 0.011815 0.101069
v -0.085980 0.011815 0.085979
v -0.101070 0.011815 0.067552
v -0.112303 0.011815 0.046523
v -0.119227 0.011815 0.023714
v -0.121572 0.011815 -0.000001
v -0.119227 0.011815 -0.023715
v -0.112303 0.011815 -0.046524
v -0.101069 0.011815 -0.067553
v -0.085979 0.011815 -0.085949
v -0.067551 0.011815 -0.101070
v -0.046522 0.011815 -0.112303
v -0.023713 0.011815 -0.119227
v -0.000000 1.675680 -0.221477
v 0.043188 1.675682 -0.217223
v 0.084756 1.675683 -0.204614
v 0.123084 1.675682 -0.184124
v 0.156611 1.675677 -0.156611
v 0.184124 1.675682 -0.123084
v 0.204614 1.675683 -0.084756
v 0.217223 1.675682 -0.043188
v 0.221477 1.675681 -0.000000
v 0.217223 1.675682 0.043188
v 0.204615 1.675683 0.084756
v 0.184124 1.675682 0.123084
v 0.156611 1.675677 0.156611
v 0.123084 1.675682 0.184124
v 0.084756 1.675683 0.204614
v 0.043188 1.675682 0.217223
v -0.000000 1.675681 0.221477
v -0.043188 1.675682 0.217223
v -0.084756 1.675683 0.204614
v -0.123084 1.675682 0.184123
v -0.156611 1.675677 0.156611
v -0.184123 1.675682 0.123084
v -0.204614 1.675683 0.084756
v -0.217223 1.675682 0.043188
v -0.221477 1.675681 0.000000
v -0.217223 1.675682 -0.043188
v -0.204614 1.675683 -0.084756
v -0.184140 1.675681 -0.123061
v -0.156605 1.675681 -0.156610
v -0.123056 1.675681 -0.184143
v -0.084756 1.675683 -0.204614
v -0.043188 1.675682 -0.217223
v -0.000000 1.947950 -0.335566
v -0.000000 1.981150 -0.313345
v 0.065442 1.947954 -0.329120
v 0.061108 1.981122 -0.307326
v 0.128419 1.947953 -0.310019
v 0.119914 1.981152 -0.289490
v 0.186472 1.947957 -0.278979
v 0.174126 1.981085 -0.260503
v 0.237285 1.947943 -0.237285
v 0.221572 1.981204 -0.221572
v 0.278979 1.947957 -0.186472
v 0.260503 1.981086 -0.174126
v 0.310019 1.947953 -0.128419
v 0.289490 1.981151 -0.119914
v 0.329120 1.947954 -0.065442
v 0.307326 1.981122 -0.061107
v 0.335566 1.947950 0.000000
v 0.313345 1.981150 0.000000
v 0.329120 1.947954 0.065442
v 0.307326 1.981122 0.061107
v 0.310020 1.947952 0.128419
v 0.289491 1.981152 0.119914
v 0.278979 1.947957 0.186472
v 0.260503 1.981085 0.174126
v 0.237285 1.947943 0.237285
v 0.221572 1.981204 0.221572
v 0.186472 1.947957 0.278979
v 0.174126 1.981086 0.260503
v 0.128419 1.947953 0.310020
v 0.119914 1.981151 0.289490
v 0.065442 1.947954 0.329120
v 0.061108 1.981122 0.307326
v 0.000000 1.947950 0.335566
v 0.000000 1.981150 0.313345
v -0.065442 1.947954 0.329120
v -0.061107 1.981123 0.307326
v -0.128419 1.947953 0.310020
v -0.119914 1.981151 0.289490
v -0.186472 1.947957 0.278979
v -0.174126 1.981086 0.260503
v -0.237285 1.947943 0.237285
v -0.221572 1.981203 0.221572
v -0.278979 1.947957 0.186472
v -0.260503 1.981086 0.174126
v -0.310019 1.947953 0.128420
v -0.289490 1.981151 0.119915
v -0.329120 1.947954 0.065443
v -0.307326 1.981123 0.061108
v -0.335566 1.947951 0.000000
v -0.313345 1.981149 0.000000
v -0.329120 1.947954 -0.065442
v -0.307326 1.981127 -0.061107
v -0.310020 1.947954 -0.128415
v -0.289490 1.981131 -0.119911
v -0.279000 1.947952 -0.186447
v -0.260524 1.981136 -0.174101
v -0.237275 1.947951 -0.237286
v -0.221562 1.981138 -0.221573
v -0.186439 1.947953 -0.279005
v -0.174094 1.981137 -0.260529
v -0.128415 1.947954 -0.310020
v -0.119911 1.981128 -0.289490
v -0.065442 1.947953 -0.329120
v -0.061107 1.981129 -0.307326
v 0.000000 1.926806 -0.174476
v 0.034026 1.926790 -0.171123
v 0.066770 1.926806 -0.161192
v 0.096955 1.926769 -0.145050
v 0.123377 1.926835 -0.123377
v 0.145051 1.926770 -0.096955
v 0.161192 1.926806 -0.066770
v 0.171123 1.926790 -0.034025
v 0.174476 1.926805 0.000000
v 0.171123 1.926790 0.034025
v 0.161193 1.926807 0.066770
v 0.145050 1.926769 0.096955
v 0.123377 1.926835 0.123377
v 0.096955 1.926770 0.145050
v 0.066770 1.926806 0.161192
v 0.034026 1.926790 0.171123
v 0.000000 1.926805 0.174476
v -0.034025 1.926790 0.171123
v -0.066770 1.926806 0.161193
v -0.096955 1.926770 0.145051
v -0.123377 1.926835 0.123377
v -0.145050 1.926770 0.096955
v -0.161192 1.926806 0.066770
v -0.171123 1.926790 0.034026
v -0.174475 1.926805 0.000000
v -0.171123 1.926793 -0.034025
v -0.161192 1.926795 -0.066768
v -0.145064 1.926797 -0.096942
v -0.123369 1.926799 -0.123375
v -0.096938 1.926798 -0.145066
v -0.066768 1.926793 -0.161192
v -0.034025 1.926794 -0.171123
vt 0.000000 0.000000
vt 1.000000 0.000000
vt 1.000000 1.000000
vn 0.000000 -0.228700 -0.973500
vn -0.189900 -0.228700 -0.954800
vn 0.000000 0.093700 -0.995600
vn 0.540800 -0.228700 -0.809400
vn 0.372500 -0.228700 -0.899300
vn 0.553100 0.094200 -0.827800
vn 0.688300 -0.228700 -0.688300
vn 0.704000 0.093500 -0.704000
vn 0.827800 0.094100 -0.553100
vn 0.809400 -0.228700 -0.540800
vn 0.919800 0.093800 -0.381100
vn 0.899300 -0.228700 -0.372500
vn 0.954800 -0.228700 -0.189900
vn 0.976400 0.093800 -0.194200
vn 0.973500 -0.228700 0.000000
vn 0.995600 0.093700 0.000000
vn 0.976400 0.093800 0.194200
vn 0.954800 -0.228700 0.189900
vn 0.919800 0.093800 0.381100
vn 0.899300 -0.228700 0.372500
vn 0.809400 -0.228700 0.540800
vn 0.827800 0.094100 0.553100
vn 0.688300 -0.228700 0.688300
vn 0.704000 0.093500 0.704000
vn 0.553100 0.094100 0.827800
vn 0.540800 -0.228700 0.809400
vn 0.381100 0.093800 0.919800
vn 0.372500 -0.228700 0.899300
vn 0.189900 -0.228700 0.954800
vn 0.194200 0.093800 0.976400
vn 0.000000 -0.228700 0.973500
vn 0.000000 0.093700 0.995600
vn -0.194200 0.093800 0.976400
vn -0.189900 -0.228700 0.954800
vn -0.381100 0.093800 0.919800
vn -0.372500 -0.228700 0.899300
vn -0.540800 -0.228700 0.809400
vn -0.553100 0.094100 0.827800
vn -0.688300 -0.228700 0.688300
vn -0.704000 0.093500 0.704000
vn -0.827800 0.094100 0.553100
vn -0.809400 -0.228700 0.540800
vn -0.919800 0.093800 0.381100
vn -0.899300 -0.228700 0.372500
vn -0.954800 -0.228700 0.189900
vn -0.976400 0.093800 0.194200
vn -0.973500 -0.228700 0.000000
vn -0.995600 0.093700 0.000000
vn -0.976400 0.093800 -0.194200
vn -0.954800 -0.228700 -0.189900
vn -0.919800 0.093800 -0.381000
vn -0.899400 -0.228700 -0.372500
vn -0.809400 -0.228700 -0.540800
vn -0.827800 0.093800 -0.553100
vn -0.688300 -0.228700 -0.688300
vn -0.704000 0.093700 -0.704000
vn -0.553100 0.093800 -0.827800
vn -0.540800 -0.228700 -0.809400
vn -0.381000 0.093800 -0.919800
vn -0.372500 -0.228700 -0.899400
vn -0.194200 0.093800 -0.976400
vn 0.381100 0.093800 -0.919800
vn 0.194200 0.093800 -0.976400
vn 0.193200 0.980400 -0.038400
vn -0.327600 0.942500 0.065100
vn 0.185000 0.979700 -0.076300
vn 0.270500 -0.707200 -0.653200
vn 0.653200 -0.707200 -0.270500
vn 0.653200 -0.707200 0.270500
vn 0.000000 -0.707100 -0.707100
vn 0.189900 -0.228700 -0.954800
vn 0.392300 -0.707300 -0.588000
vn 0.500100 -0.707000 -0.500100
vn 0.588000 -0.707300 -0.392300
vn 0.693400 -0.707200 -0.138100
vn 0.707100 -0.707100 0.000000
vn 0.693400 -0.707200 0.138100
vn 0.588000 -0.707300 0.392300
vn 0.500100 -0.707000 0.500100
vn 0.392300 -0.707300 0.588000
vn 0.270500 -0.707200 0.653200
vn 0.138100 -0.707200 0.693400
vn 0.000000 -0.707100 0.707100
vn -0.270500 -0.707200 0.653200
vn -0.392300 -0.707300 0.588000
vn -0.500100 -0.707000 0.500100
vn -0.588000 -0.707300 0.392300
vn -0.653200 -0.707200 0.270500
vn -0.693400 -0.707200 0.138100
vn -0.707100 -0.707100 0.000000
vn -0.653200 -0.707200 -0.270500
vn -0.587900 -0.707200 -0.392700
vn -0.392700 -0.707200 -0.587900
vn -0.270500 -0.707200 -0.653200
vn -0.138100 -0.707200 -0.693400
vn 0.000000 0.942500 -0.334100
vn 0.065100 0.942500 -0.327600
vn 0.128100 0.942500 -0.308500
vn 0.185400 0.942500 -0.277900
vn 0.236300 0.942500 -0.236300
vn 0.277900 0.942500 -0.185400
vn 0.308500 0.942500 -0.128100
vn 0.327600 0.942500 -0.065100
vn 0.334000 0.942500 0.000000
vn 0.327600 0.942500 0.065100
vn 0.308500 0.942500 0.128100
vn 0.277900 0.942500 0.185400
vn 0.236300 0.942500 0.236300
vn 0.185400 0.942500 0.277900
vn 0.128100 0.942500 0.308500
vn 0.065100 0.942500 0.327600
vn 0.000000 0.942500 0.334000
vn -0.065100 0.942500 0.327600
vn -0.128100 0.942500 0.308500
vn -0.185400 0.942500 0.277900
vn -0.236300 0.942500 0.236300
vn -0.277900 0.942500 0.185400
vn -0.308500 0.942500 0.128100
vn -0.334000 0.942500 0.000000
vn -0.327600 0.942600 -0.065200
vn -0.308600 0.942600 -0.127800
vn -0.277700 0.942600 -0.185500
vn -0.236200 0.942500 -0.236200
vn -0.185500 0.942600 -0.277700
vn -0.127800 0.942600 -0.308600
vn -0.065200 0.942600 -0.327600
vn -0.109500 0.980400 0.163500
vn 0.109500 0.980400 -0.163500
vn -0.163500 0.980400 -0.109500
vn -0.038300 0.980400 0.193200
vn 0.000000 0.980100 0.198500
vn -0.145500 0.978600 -0.145500
vn 0.192900 0.980400 0.038300
vn 0.181600 0.980500 0.075300
vn -0.145500 0.978600 0.145500
vn -0.038400 0.980400 -0.193200
vn -0.076300 0.979700 -0.185000
vn 0.109400 0.980400 0.163600
vn 0.139000 0.980500 0.139000
vn 0.038400 0.980400 -0.193200
vn 0.076300 0.979700 -0.185000
vn -0.193200 0.980400 0.038400
vn -0.185000 0.979700 0.076300
vn 0.163500 0.980400 -0.109500
vn 0.145400 0.978600 -0.145400
vn -0.193200 0.980400 -0.038400
vn -0.185200 0.979700 -0.076400
vn 0.198400 0.980100 0.000000
vn -0.076400 0.979700 0.185200
vn -0.109500 0.980400 -0.163500
vn 0.163500 0.980400 0.109300
vn -0.163600 0.980400 0.109500
vn 0.000000 0.980000 -0.198700
vn 0.075300 0.980500 0.181600
vn -0.198700 0.980000 0.000000
vn 0.038300 0.980400 0.193000
vn -0.500000 -0.707100 -0.499900
vn -0.693400 -0.707200 -0.138100
vn -0.138100 -0.707200 0.693400
vn 0.138100 -0.707200 -0.693400
f 33/1/1 64/2/2 65/3/3
f 36/1/4 35/2/5 71/3/6
f 37/1/7 36/2/4 73/3/8
f 75/1/9 38/2/10 73/3/8
f 77/1/11 39/2/12 75/3/9
f 40/1/13 39/2/12 79/3/14
f 41/1/15 40/2/13 81/3/16
f 83/1/17 42/2/18 81/3/16
f 85/1/19 43/2/20 83/3/17
f 44/1/21 43/2/20 87/3/22
f 45/1/23 44/2/21 89/3/24
f 91/1/25 46/2/26 89/3/24
f 93/1/27 47/2/28 91/3/25
f 48/1/29 47/2/28 95/3/30
f 49/1/31 48/2/29 97/3/32
f 99/1/33 50/2/34 97/3/32
f 101/1/35 51/2/36 99/3/33
f 52/1/37 51/2/36 103/3/38
f 53/1/39 52/2/37 105/3/40
f 107/1/41 54/2/42 105/3/40
f 109/1/43 55/2/44 107/3/41
f 56/1/45 55/2/44 111/3/46
f 57/1/47 56/2/45 113/3/48
f 115/1/49 58/2/50 113/3/48
f 117/1/51 59/2/52 115/3/49
f 60/1/53 59/2/52 119/3/54
f 61/1/55 60/2/53 121/3/56
f 123/1/57 62/2/58 121/3/56
f 125/1/59 63/2/60 123/3/57
f 64/1/2 63/2/60 127/3/61
f 69/1/62 35/2/5 67/3/63
f 152/1/64 112/2/65 151/3/66
f 3/1/67 7/2/68 11/3/69
f 1/1/70 33/2/1 34/3/71
f 34/1/71 35/2/5 3/3/67
f 36/1/4 4/2/72 35/3/5
f 5/1/73 4/2/72 37/3/7
f 38/1/10 6/2/74 37/3/7
f 7/1/68 6/2/74 39/3/12
f 39/1/12 40/2/13 8/3/75
f 40/1/13 41/2/15 9/3/76
f 41/1/15 42/2/18 10/3/77
f 42/1/18 43/2/20 11/3/69
f 44/1/21 12/2/78 43/3/20
f 13/1/79 12/2/78 45/3/23
f 46/1/26 14/2/80 45/3/23
f 46/1/26 47/2/28 15/3/81
f 47/1/28 48/2/29 16/3/82
f 48/1/29 49/2/31 17/3/83
f 17/1/83 49/2/31 50/3/34
f 50/1/34 51/2/36 19/3/84
f 52/1/37 20/2/85 51/3/36
f 21/1/86 20/2/85 53/3/39
f 54/1/42 22/2/87 53/3/39
f 23/1/88 22/2/87 55/3/44
f 55/1/44 56/2/45 24/3/89
f 56/1/45 57/2/47 25/3/90
f 25/1/90 57/2/47 58/3/50
f 58/1/50 59/2/52 27/3/91
f 28/1/92 27/2/91 60/3/53
f 28/1/92 60/2/53 61/3/55
f 62/1/58 30/2/93 61/3/55
f 63/1/60 31/2/94 62/3/58
f 64/1/2 33/2/1 1/3/70
f 63/1/60 64/2/2 32/3/95
f 66/1/96 68/2/97 65/3/3
f 70/1/98 69/2/62 68/3/97
f 70/1/98 72/2/99 69/3/62
f 74/1/100 73/2/8 72/3/99
f 74/1/100 76/2/101 73/3/8
f 78/1/102 77/2/11 76/3/101
f 78/1/102 80/2/103 77/3/11
f 82/1/104 81/2/16 80/3/103
f 82/1/104 84/2/105 81/3/16
f 86/1/106 85/2/19 84/3/105
f 86/1/106 88/2/107 85/3/19
f 90/1/108 89/2/24 88/3/107
f 90/1/108 92/2/109 89/3/24
f 94/1/110 93/2/27 92/3/109
f 94/1/110 96/2/111 93/3/27
f 98/1/112 97/2/32 96/3/111
f 98/1/112 100/2/113 97/3/32
f 102/1/114 101/2/35 100/3/113
f 102/1/114 104/2/115 101/3/35
f 106/1/116 105/2/40 104/3/115
f 106/1/116 108/2/117 105/3/40
f 110/1/118 109/2/43 108/3/117
f 110/1/118 112/2/65 109/3/43
f 114/1/119 113/2/48 112/3/65
f 114/1/119 116/2/120 113/3/48
f 118/1/121 117/2/51 116/3/120
f 120/1/122 119/2/54 118/3/121
f 122/1/123 121/2/56 120/3/122
f 121/1/56 122/2/123 124/3/124
f 124/1/124 126/2/125 123/3/57
f 128/1/126 127/2/61 126/3/125
f 66/1/96 65/2/3 128/3/126
f 67/1/63 34/2/71 65/3/3
f 132/1/127 148/2/128 140/3/129
f 130/1/130 68/2/97 129/3/131
f 140/1/129 141/2/132 88/3/107
f 154/1/133 155/2/134 116/3/120
f 132/1/127 133/2/135 72/3/99
f 144/1/136 96/2/111 143/3/137
f 158/1/138 124/2/124 157/3/139
f 146/1/140 147/2/141 100/3/113
f 136/1/142 80/2/103 135/3/143
f 150/1/144 108/2/117 149/3/145
f 138/1/146 139/2/147 84/3/105
f 152/1/64 153/2/148 112/3/65
f 130/1/130 131/2/149 68/3/97
f 142/1/150 92/2/109 141/3/132
f 155/1/134 156/2/151 118/3/121
f 134/1/152 76/2/101 133/3/135
f 144/1/136 145/2/153 96/3/111
f 159/1/154 126/2/125 158/3/138
f 148/1/128 104/2/115 147/3/141
f 136/1/142 137/2/155 80/3/103
f 150/1/144 151/2/66 108/3/117
f 140/1/129 88/2/107 139/3/147
f 154/1/133 116/2/120 153/3/148
f 132/1/127 72/2/99 131/3/149
f 142/1/150 143/2/137 92/3/109
f 160/1/156 129/2/131 128/3/126
f 156/1/151 157/2/139 120/3/122
f 146/1/140 100/2/113 145/3/153
f 134/1/152 135/2/143 76/3/101
f 159/1/154 160/2/156 126/3/125
f 148/1/128 149/2/145 104/3/115
f 138/1/146 84/2/105 137/3/155
f 48/1/29 95/2/30 97/3/32
f 12/1/78 44/2/21 45/3/23
f 38/1/10 37/2/7 73/3/8
f 44/1/21 87/2/22 89/3/24
f 47/1/28 46/2/26 91/3/25
f 51/1/36 101/2/35 103/3/38
f 121/1/56 119/2/54 120/3/122
f 64/1/2 127/2/61 65/3/3
f 55/1/44 109/2/43 111/3/46
f 27/1/91 31/2/94 3/3/67
f 54/1/42 53/2/39 105/3/40
f 52/1/37 103/2/38 105/3/40
f 4/1/72 36/2/4 37/3/7
f 39/1/12 77/2/11 79/3/14
f 50/1/34 49/2/31 97/3/32
f 40/1/13 79/2/14 81/3/16
f 35/1/5 34/2/71 67/3/63
f 55/1/44 54/2/42 107/3/41
f 126/1/125 124/2/124 158/3/138
f 46/1/26 45/2/23 89/3/24
f 39/1/12 38/2/10 75/3/9
f 47/1/28 93/2/27 95/3/30
f 58/1/50 57/2/47 113/3/48
f 63/1/60 62/2/58 123/3/57
f 51/1/36 50/2/34 99/3/33
f 124/1/124 122/2/123 157/3/139
f 59/1/52 58/2/50 115/3/49
f 63/1/60 125/2/59 127/3/61
f 59/1/52 117/2/51 119/3/54
f 117/1/51 115/2/49 116/3/120
f 43/1/20 42/2/18 83/3/17
f 80/1/103 79/2/14 77/3/11
f 19/1/84 15/2/81 16/3/82
f 31/1/94 27/2/91 30/3/93
f 29/1/157 30/2/93 28/3/92
f 27/1/91 24/2/89 26/3/158
f 11/1/69 7/2/68 8/3/75
f 23/1/88 19/2/84 22/3/87
f 21/1/86 22/2/87 20/3/85
f 19/1/84 16/2/82 18/3/159
f 27/1/91 23/2/88 24/3/89
f 15/1/81 11/2/69 14/3/80
f 13/1/79 14/2/80 12/3/78
f 11/1/69 8/2/75 10/3/77
f 27/1/91 3/2/67 19/3/84
f 7/1/68 4/2/72 6/3/74
f 27/1/91 19/2/84 23/3/88
f 3/1/67 32/2/95 2/3/160
f 32/1/95 1/2/70 2/3/160
f 15/1/81 19/2/84 11/3/69
f 24/1/89 25/2/90 26/3/158
f 27/1/91 59/2/52 60/3/53
f 16/1/82 17/2/83 18/3/159
f 7/1/68 3/2/67 4/3/72
f 8/1/75 9/2/76 10/3/77
f 4/1/72 5/2/73 6/3/74
f 3/1/67 11/2/69 19/3/84
f 22/1/87 19/2/84 20/3/85
f 14/1/80 11/2/69 12/3/78
f 2/1/160 34/2/71 3/3/67
f 2/1/160 1/2/70 34/3/71
f 30/1/93 27/2/91 28/3/92
f 3/1/67 31/2/94 32/3/95
f 31/1/94 30/2/93 62/3/58
f 6/1/74 5/2/73 37/3/7
f 20/1/85 52/2/37 53/3/39
f 4/1/72 3/2/67 35/3/5
f 7/1/68 39/2/12 8/3/75
f 8/1/75 40/2/13 9/3/76
f 9/1/76 41/2/15 10/3/77
f 10/1/77 42/2/18 11/3/69
f 30/1/93 29/2/157 61/3/55
f 43/1/20 85/2/19 87/3/22
f 35/1/5 69/2/62 71/3/6
f 14/1/80 46/2/26 15/3/81
f 15/1/81 47/2/28 16/3/82
f 16/1/82 48/2/29 17/3/83
f 18/1/159 17/2/83 50/3/34
f 18/1/159 50/2/34 19/3/84
f 22/1/87 21/2/86 53/3/39
f 14/1/80 13/2/79 45/3/23
f 20/1/85 19/2/84 51/3/36
f 23/1/88 55/2/44 24/3/89
f 24/1/89 56/2/45 25/3/90
f 26/1/158 25/2/90 58/3/50
f 26/1/158 58/2/50 27/3/91
f 6/1/74 38/2/10 39/3/12
f 29/1/157 28/2/92 61/3/55
f 22/1/87 54/2/42 55/3/44
f 12/1/78 11/2/69 43/3/20
f 32/1/95 64/2/2 1/3/70
f 31/1/94 63/2/60 32/3/95
f 153/1/148 114/2/119 112/3/65
f 96/1/111 94/2/110 143/3/137
f 93/1/27 91/2/25 92/3/109
f 89/1/24 87/2/22 88/3/107
f 105/1/40 103/2/38 104/3/115
f 104/1/115 103/2/38 101/3/35
f 101/1/35 99/2/33 100/3/113
f 100/1/113 99/2/33 97/3/32
f 81/1/16 79/2/14 80/3/103
f 97/1/32 95/2/30 96/3/111
f 72/1/99 71/2/6 69/3/62
f 92/1/109 91/2/25 89/3/24
f 76/1/101 75/2/9 73/3/8
f 109/1/43 107/2/41 108/3/117
f 112/1/65 111/2/46 109/3/43
f 147/1/141 102/2/114 100/3/113
f 85/1/19 83/2/17 84/3/105
f 96/1/111 95/2/30 93/3/27
f 68/1/97 66/2/96 129/3/131
f 108/1/117 107/2/41 105/3/40
f 88/1/107 86/2/106 139/3/147
f 77/1/11 75/2/9 76/3/101
f 129/1/131 66/2/96 128/3/126
f 80/1/103 78/2/102 135/3/143
f 36/1/4 71/2/6 73/3/8
f 127/1/61 125/2/59 126/3/125
f 34/1/71 33/2/1 65/3/3
f 56/1/45 111/2/46 113/3/48
f 123/1/57 121/2/56 124/3/124
f 156/1/151 120/2/122 118/3/121
f 60/1/53 119/2/54 121/3/56
f 116/1/120 115/2/49 113/3/48
f 157/1/139 122/2/123 120/3/122
f 132/1/127 131/2/149 130/3/130
f 134/1/152 133/2/135 132/3/127
f 136/1/142 135/2/143 134/3/152
f 138/1/146 137/2/155 136/3/142
f 140/1/129 139/2/147 138/3/146
f 142/1/150 141/2/132 140/3/129
f 144/1/136 143/2/137 142/3/150
f 146/1/140 145/2/153 144/3/136
f 148/1/128 147/2/141 146/3/140
f 150/1/144 149/2/145 148/3/128
f 152/1/64 151/2/66 150/3/144
f 154/1/133 153/2/148 152/3/64
f 155/1/134 154/2/133 150/3/144
f 158/1/138 157/2/139 156/3/151
f 159/1/154 155/2/134 150/3/144
f 130/1/130 129/2/131 160/3/156
f 133/1/135 74/2/100 72/3/99
f 138/1/146 136/2/142 134/3/152
f 138/1/146 134/2/152 140/3/129
f 142/1/150 148/2/128 144/3/136
f 132/1/127 130/2/130 160/3/156
f 154/1/133 152/2/64 150/3/144
f 145/1/153 98/2/112 96/3/111
f 148/1/128 146/2/140 144/3/136
f 150/1/144 148/2/128 132/3/127
f 159/1/154 158/2/138 156/3/151
f 134/1/152 132/2/127 140/3/129
f 159/1/154 150/2/144 132/3/127
f 148/1/128 142/2/150 140/3/129
f 159/1/154 132/2/127 160/3/156
f 155/1/134 159/2/154 156/3/151
f 160/1/156 128/2/126 126/3/125
f 76/1/101 74/2/100 133/3/135
f 113/1/48 111/2/46 112/3/65
f 155/1/134 118/2/121 116/3/120
f 131/1/149 70/2/98 68/3/97
f 112/1/65 110/2/118 151/3/66
f 73/1/8 71/2/6 72/3/99
f 68/1/97 67/2/63 65/3/3
f 84/1/105 83/2/17 81/3/16
f 69/1/62 67/2/63 68/3/97
f 149/1/145 106/2/116 104/3/115
f 119/1/54 117/2/51 118/3/121
f 92/1/109 90/2/108 141/3/132
f 84/1/105 82/2/104 137/3/155
f 126/1/125 125/2/59 123/3/57
f 151/1/66 110/2/118 108/3/117
f 100/1/113 98/2/112 145/3/153
f 135/1/143 78/2/102 76/3/101
f 72/1/99 70/2/98 131/3/149
f 65/1/3 127/2/61 128/3/126
f 143/1/137 94/2/110 92/3/109
f 104/1/115 102/2/114 147/3/141
f 116/1/120 114/2/119 153/3/148
f 42/1/18 41/2/15 81/3/16
f 139/1/147 86/2/106 84/3/105
f 88/1/107 87/2/22 85/3/19
f 62/1/58 61/2/55 121/3/56
f 108/1/117 106/2/116 149/3/145
f 137/1/155 82/2/104 80/3/103
f 141/1/132 90/2/108 88/3/107

View File

@ -1 +0,0 @@
*Backup*

View File

@ -1,903 +0,0 @@
<!-- Rotations around the three axes are given in degrees.
The objects are first rotated around the z-, then y- and then x-axis. -->
<!-- Marble: Do not change!(except for mass)-->
<composition>
<typeID>20</typeID>
<ignoreHeightmap>false</ignoreHeightmap>
<crossesChunks>true</crossesChunks>
<object>
<modelPath>marbleSmooth.obj</modelPath>
<xOffset>0.0</xOffset>
<yOffset>0.0</yOffset>
<zOffset>0.0</zOffset>
<xRot>0.0</xRot>
<yRot>0.0</yRot>
<zRot>0.0</zRot>
<scale>1.0</scale>
<mass>11.0</mass>
</object>
</composition>
<!-- Block -->
<composition>
<typeID>40</typeID>
<ignoreHeightmap>false</ignoreHeightmap>
<crossesChunks>true</crossesChunks>
<object>
<modelPath>block.obj</modelPath>
<xOffset>0.0</xOffset>
<yOffset>1.0</yOffset>
<zOffset>0.0</zOffset>
<xRot>0.0</xRot>
<yRot>0.0</yRot>
<zRot>0.0</zRot>
<scale>1.5</scale>
<mass>15.0</mass>
</object>
</composition>
<!-- Column -->
<composition>
<typeID>60</typeID>
<ignoreHeightmap>false</ignoreHeightmap>
<crossesChunks>false</crossesChunks>
<object>
<modelPath>column.obj</modelPath>
<xOffset>0.0</xOffset>
<yOffset>1.1</yOffset>
<zOffset>0.0</zOffset>
<xRot>0.0</xRot>
<yRot>0.0</yRot>
<zRot>0.0</zRot>
<scale>1.0</scale>
<mass>0.0</mass>
</object>
</composition>
<!-- Torch with Lightsource -->
<composition>
<typeID>80</typeID>
<ignoreHeightmap>false</ignoreHeightmap>
<crossesChunks>false</crossesChunks>
<object>
<modelPath>torch.obj</modelPath>
<xOffset>0.0</xOffset>
<yOffset>0.0</yOffset>
<zOffset>0.0</zOffset>
<xRot>0.0</xRot>
<yRot>0.0</yRot>
<zRot>0.0</zRot>
<scale>1.0</scale>
<mass>0.0</mass>
</object>
<light>
<xOffset>0.0</xOffset>
<yOffset>3</yOffset>
<zOffset>0.0</zOffset>
<rColour>1.0</rColour>
<gColour>0.9</gColour>
<bColour>0.3</bColour>
<intensity>8.0</intensity>
<flameOffset>-0.5</flameOffset>
<flameHeight>1.0</flameHeight>
<flameWidth>1.0</flameWidth>
</light>
</composition>
<!-- hinttorch -->
<composition>
<typeID>81</typeID>
<ignoreHeightmap>false</ignoreHeightmap>
<crossesChunks>false</crossesChunks>
<object>
<modelPath>torch.obj</modelPath>
<xOffset>0.0</xOffset>
<yOffset>0.0</yOffset>
<zOffset>0.0</zOffset>
<xRot>0.0</xRot>
<yRot>0.0</yRot>
<zRot>0.0</zRot>
<scale>1.0</scale>
<mass>0.0</mass>
</object>
<light>
<xOffset>0.0</xOffset>
<yOffset>3</yOffset>
<zOffset>0.0</zOffset>
<rColour>0.2</rColour>
<gColour>0.9</gColour>
<bColour>0</bColour>
<intensity>10.0</intensity>
<flameOffset>-0.5</flameOffset>
<flameHeight>1.0</flameHeight>
<flameWidth>1.0</flameWidth>
</light>
</composition>
<!-- Lightsource -->
<composition>
<typeID>85</typeID>
<ignoreHeightmap>false</ignoreHeightmap>
<light>
<xOffset>0.0</xOffset>
<yOffset>1.0</yOffset>
<zOffset>0.0</zOffset>
<rColour>1.0</rColour>
<gColour>1.0</gColour>
<bColour>1.0</bColour>
<intensity>4.0</intensity>
</light>
</composition>
<!-- Block on 2 Pillars -->
<composition>
<typeID>100</typeID>
<ignoreHeightmap>false</ignoreHeightmap>
<crossesChunks>false</crossesChunks>
<object>
<modelPath>column.obj</modelPath>
<xOffset>0.0</xOffset>
<yOffset>2.1</yOffset>
<zOffset>0.0</zOffset>
<xRot>0.0</xRot>
<yRot>0.0</yRot>
<zRot>0.0</zRot>
<scale>1.0</scale>
<mass>10.0</mass>
</object>
<object>
<modelPath>column.obj</modelPath>
<xOffset>3.0</xOffset>
<yOffset>2.1</yOffset>
<zOffset>0.0</zOffset>
<xRot>0.0</xRot>
<yRot>0.0</yRot>
<zRot>0.0</zRot>
<scale>1.0</scale>
<mass>10.0</mass>
</object>
<object>
<modelPath>block.obj</modelPath>
<xOffset>1.5</xOffset>
<yOffset>4.2</yOffset>
<zOffset>0.0</zOffset>
<xRot>0.0</xRot>
<yRot>0.0</yRot>
<zRot>0.0</zRot>
<scale>1.0</scale>
<mass>15.0</mass>
</object>
</composition>
<!-- Switch -->
<composition>
<typeID>120</typeID>
<ignoreHeightmap>false</ignoreHeightmap>
<crossesChunks>false</crossesChunks>
<object>
<modelPath>switchInner.obj</modelPath>
<xOffset>0.0</xOffset>
<yOffset>0.5</yOffset>
<zOffset>0.0</zOffset>
<xRot>0.0</xRot>
<yRot>0.0</yRot>
<zRot>0.0</zRot>
<scale>1.044</scale>
<mass>0.5</mass>
</object>
<object>
<modelPath>switchOuter.obj</modelPath>
<xOffset>0.0</xOffset>
<yOffset>-1</yOffset>
<zOffset>0.0</zOffset>
<xRot>0.0</xRot>
<yRot>0.0</yRot>
<zRot>0.0</zRot>
<scale>1.0</scale>
<mass>1.0</mass>
</object>
<object>
<modelPath>switchOuterBox</modelPath>
<xOffset>0.0</xOffset>
<yOffset>-1</yOffset>
<zOffset>1.105</zOffset>
<xRot>0.0</xRot>
<yRot>0.0</yRot>
<zRot>0.0</zRot>
<scale>1.0</scale>
<mass>0.0</mass>
</object>
<object>
<modelPath>switchOuterBox</modelPath>
<xOffset>0.0</xOffset>
<yOffset>-1</yOffset>
<zOffset>-1.105</zOffset>
<xRot>0.0</xRot>
<yRot>0.0</yRot>
<zRot>0.0</zRot>
<scale>1.0</scale>
<mass>0.0</mass>
</object>
<object>
<modelPath>switchOuterBox</modelPath>
<xOffset>1.105</xOffset>
<yOffset>-1</yOffset>
<zOffset>0.0</zOffset>
<xRot>0.0</xRot>
<yRot>90.0</yRot>
<zRot>0.0</zRot>
<scale>1.0</scale>
<mass>0.0</mass>
</object>
<object>
<modelPath>switchOuterBox</modelPath>
<xOffset>-1.105</xOffset>
<yOffset>-1</yOffset>
<zOffset>0.0</zOffset>
<xRot>0.0</xRot>
<yRot>90.0</yRot>
<zRot>0.0</zRot>
<scale>1.0</scale>
<mass>0.0</mass>
</object>
<object>
<modelPath>switchOuterBox</modelPath>
<xOffset>0.0</xOffset>
<yOffset>-2.105</yOffset>
<zOffset>0.0</zOffset>
<xRot>90.0</xRot>
<yRot>0.0</yRot>
<zRot>0.0</zRot>
<scale>1.0</scale>
<mass>0.0</mass>
</object>
</composition>
<!-- Bridge Block -->
<composition>
<typeID>140</typeID>
<ignoreHeightmap>true</ignoreHeightmap>
<crossesChunks>false</crossesChunks>
<object>
<modelPath>block.obj</modelPath>
<xOffset>0.0</xOffset>
<yOffset>20.0</yOffset>
<zOffset>0.0</zOffset>
<xRot>0.0</xRot>
<yRot>90.0</yRot>
<zRot>0.0</zRot>
<scale>1.5</scale>
<mass>0.0</mass>
</object>
</composition>
<!-- Rotated Bridge Block -->
<composition>
<typeID>141</typeID>
<ignoreHeightmap>true</ignoreHeightmap>
<crossesChunks>false</crossesChunks>
<object>
<modelPath>block.obj</modelPath>
<xOffset>0.0</xOffset>
<yOffset>20.0</yOffset>
<zOffset>0.0</zOffset>
<xRot>0.0</xRot>
<yRot>0.0</yRot>
<zRot>0.0</zRot>
<scale>1.5</scale>
<mass>0.0</mass>
</object>
</composition>
<!-- Bridge Block on Pillar-->
<composition>
<typeID>160</typeID>
<ignoreHeightmap>true</ignoreHeightmap>
<crossesChunks>false</crossesChunks>
<object>
<modelPath>block.obj</modelPath>
<xOffset>0.0</xOffset>
<yOffset>20.0</yOffset>
<zOffset>0.0</zOffset>
<xRot>0.0</xRot>
<yRot>90.0</yRot>
<zRot>0.0</zRot>
<scale>1.5</scale>
<mass>0.0</mass>
</object>
<object>
<modelPath>column.obj</modelPath>
<xOffset>0.0</xOffset>
<yOffset>18.0</yOffset>
<zOffset>0.0</zOffset>
<xRot>0.0</xRot>
<yRot>0.0</yRot>
<zRot>0.0</zRot>
<scale>1.5</scale>
<mass>0.0</mass>
</object>
<object>
<modelPath>column.obj</modelPath>
<xOffset>0.0</xOffset>
<yOffset>15.0</yOffset>
<zOffset>0.0</zOffset>
<xRot>0.0</xRot>
<yRot>0.0</yRot>
<zRot>0.0</zRot>
<scale>1.5</scale>
<mass>0.0</mass>
</object>
<object>
<modelPath>column.obj</modelPath>
<xOffset>0.0</xOffset>
<yOffset>12.0</yOffset>
<zOffset>0.0</zOffset>
<xRot>0.0</xRot>
<yRot>0.0</yRot>
<zRot>0.0</zRot>
<scale>1.5</scale>
<mass>0.0</mass>
</object>
</composition>
<!-- Rotated Bridge Block on Pillar-->
<composition>
<typeID>161</typeID>
<ignoreHeightmap>true</ignoreHeightmap>
<crossesChunks>false</crossesChunks>
<object>
<modelPath>block.obj</modelPath>
<xOffset>0.0</xOffset>
<yOffset>20.0</yOffset>
<zOffset>0.0</zOffset>
<xRot>0.0</xRot>
<yRot>0.0</yRot>
<zRot>0.0</zRot>
<scale>1.5</scale>
<mass>0.0</mass>
</object>
<object>
<modelPath>column.obj</modelPath>
<xOffset>0.0</xOffset>
<yOffset>18.0</yOffset>
<zOffset>0.0</zOffset>
<xRot>0.0</xRot>
<yRot>90.0</yRot>
<zRot>0.0</zRot>
<scale>1.5</scale>
<mass>0.0</mass>
</object>
<object>
<modelPath>column.obj</modelPath>
<xOffset>0.0</xOffset>
<yOffset>15.0</yOffset>
<zOffset>0.0</zOffset>
<xRot>0.0</xRot>
<yRot>90.0</yRot>
<zRot>0.0</zRot>
<scale>1.5</scale>
<mass>0.0</mass>
</object>
<object>
<modelPath>column.obj</modelPath>
<xOffset>0.0</xOffset>
<yOffset>12.0</yOffset>
<zOffset>0.0</zOffset>
<xRot>0.0</xRot>
<yRot>90.0</yRot>
<zRot>0.0</zRot>
<scale>1.5</scale>
<mass>0.0</mass>
</object>
</composition>
<!-- Rotated Bridge Block on Pillar with Torch -->
<composition>
<typeID>163</typeID>
<ignoreHeightmap>true</ignoreHeightmap>
<crossesChunks>false</crossesChunks>
<object>
<modelPath>torch.obj</modelPath>
<xOffset>0.0</xOffset>
<yOffset>21.0</yOffset>
<zOffset>-1.5</zOffset>
<xRot>0.0</xRot>
<yRot>0.0</yRot>
<zRot>0.0</zRot>
<scale>1.0</scale>
<mass>0.0</mass>
</object>
<light>
<xOffset>0.0</xOffset>
<yOffset>24</yOffset>
<zOffset>-1.5</zOffset>
<rColour>1.0</rColour>
<gColour>0.9</gColour>
<bColour>0.3</bColour>
<intensity>8.0</intensity>
<flameOffset>-0.5</flameOffset>
<flameHeight>1.0</flameHeight>
<flameWidth>1.0</flameWidth>
</light>
<object>
<modelPath>block.obj</modelPath>
<xOffset>0.0</xOffset>
<yOffset>20.0</yOffset>
<zOffset>0.0</zOffset>
<xRot>0.0</xRot>
<yRot>90.0</yRot>
<zRot>0.0</zRot>
<scale>1.5</scale>
<mass>0.0</mass>
</object>
<object>
<modelPath>column.obj</modelPath>
<xOffset>0.0</xOffset>
<yOffset>18.0</yOffset>
<zOffset>0.0</zOffset>
<xRot>0.0</xRot>
<yRot>0.0</yRot>
<zRot>0.0</zRot>
<scale>1.5</scale>
<mass>0.0</mass>
</object>
<object>
<modelPath>column.obj</modelPath>
<xOffset>0.0</xOffset>
<yOffset>15.0</yOffset>
<zOffset>0.0</zOffset>
<xRot>0.0</xRot>
<yRot>0.0</yRot>
<zRot>0.0</zRot>
<scale>1.5</scale>
<mass>0.0</mass>
</object>
<object>
<modelPath>column.obj</modelPath>
<xOffset>0.0</xOffset>
<yOffset>12.0</yOffset>
<zOffset>0.0</zOffset>
<xRot>0.0</xRot>
<yRot>0.0</yRot>
<zRot>0.0</zRot>
<scale>1.5</scale>
<mass>0.0</mass>
</object>
</composition>
<!-- Bridge Block on Pillar with torch -->
<composition>
<typeID>164</typeID>
<ignoreHeightmap>true</ignoreHeightmap>
<crossesChunks>false</crossesChunks>
<object>
<modelPath>torch.obj</modelPath>
<xOffset>-1.5</xOffset>
<yOffset>21.0</yOffset>
<zOffset>0.0</zOffset>
<xRot>0.0</xRot>
<yRot>0.0</yRot>
<zRot>0.0</zRot>
<scale>1.0</scale>
<mass>0.0</mass>
</object>
<light>
<xOffset>-1.5</xOffset>
<yOffset>24</yOffset>
<zOffset>0</zOffset>
<rColour>1.0</rColour>
<gColour>0.9</gColour>
<bColour>0.3</bColour>
<intensity>8.0</intensity>
<flameOffset>-0.5</flameOffset>
<flameHeight>1.0</flameHeight>
<flameWidth>1.0</flameWidth>
</light>
<object>
<modelPath>block.obj</modelPath>
<xOffset>0.0</xOffset>
<yOffset>20.0</yOffset>
<zOffset>0.0</zOffset>
<xRot>0.0</xRot>
<yRot>0.0</yRot>
<zRot>0.0</zRot>
<scale>1.5</scale>
<mass>0.0</mass>
</object>
<object>
<modelPath>column.obj</modelPath>
<xOffset>0.0</xOffset>
<yOffset>18.0</yOffset>
<zOffset>0.0</zOffset>
<xRot>0.0</xRot>
<yRot>0.0</yRot>
<zRot>0.0</zRot>
<scale>1.5</scale>
<mass>0.0</mass>
</object>
<object>
<modelPath>column.obj</modelPath>
<xOffset>0.0</xOffset>
<yOffset>15.0</yOffset>
<zOffset>0.0</zOffset>
<xRot>0.0</xRot>
<yRot>0.0</yRot>
<zRot>0.0</zRot>
<scale>1.5</scale>
<mass>0.0</mass>
</object>
<object>
<modelPath>column.obj</modelPath>
<xOffset>0.0</xOffset>
<yOffset>12.0</yOffset>
<zOffset>0.0</zOffset>
<xRot>0.0</xRot>
<yRot>0.0</yRot>
<zRot>0.0</zRot>
<scale>1.5</scale>
<mass>0.0</mass>
</object>
</composition>
<!-- Wall -->
<composition>
<typeID>180</typeID>
<ignoreHeightmap>true</ignoreHeightmap>
<crossesChunks>false</crossesChunks>
<object>
<modelPath>simpleWall.obj</modelPath>
<xOffset>0.0</xOffset>
<yOffset>25.0</yOffset>
<zOffset>0.0</zOffset>
<xRot>0.0</xRot>
<yRot>90.0</yRot>
<zRot>0.0</zRot>
<scale>1.48</scale>
<mass>0.0</mass>
</object>
</composition>
<!-- Rotated Wall (90 degrees)-->
<composition>
<typeID>181</typeID>
<ignoreHeightmap>true</ignoreHeightmap>
<crossesChunks>false</crossesChunks>
<object>
<modelPath>simpleWall.obj</modelPath>
<xOffset>0.0</xOffset>
<yOffset>25.0</yOffset>
<zOffset>0.0</zOffset>
<xRot>0.0</xRot>
<yRot>0.0</yRot>
<zRot>0.0</zRot>
<scale>1.48</scale>
<mass>0.0</mass>
</object>
</composition>
<!-- Light Block -->
<composition>
<typeID>200</typeID>
<ignoreHeightmap>false</ignoreHeightmap>
<crossesChunks>true</crossesChunks>
<object>
<modelPath>block.obj</modelPath>
<xOffset>0.0</xOffset>
<yOffset>5.0</yOffset>
<zOffset>0.0</zOffset>
<xRot>0.0</xRot>
<yRot>0.0</yRot>
<zRot>0.0</zRot>
<scale>1.5</scale>
<mass>1.0</mass>
</object>
</composition>
<!-- Gate -->
<composition>
<typeID>220</typeID>
<ignoreHeightmap>true</ignoreHeightmap>
<crossesChunks>false</crossesChunks>
<object>
<modelPath>gate.obj</modelPath>
<xOffset>0.0</xOffset>
<yOffset>25.0</yOffset>
<zOffset>0.0</zOffset>
<xRot>0.0</xRot>
<yRot>90.0</yRot>
<zRot>0.0</zRot>
<scale>1.5</scale>
<mass>100.0</mass>
</object>
</composition>
<!-- Rotated Gate -->
<composition>
<typeID>221</typeID>
<ignoreHeightmap>true</ignoreHeightmap>
<crossesChunks>false</crossesChunks>
<object>
<modelPath>gate.obj</modelPath>
<xOffset>0.0</xOffset>
<yOffset>25.0</yOffset>
<zOffset>0.0</zOffset>
<xRot>0.0</xRot>
<yRot>0.0</yRot>
<zRot>0.0</zRot>
<scale>1.5</scale>
<mass>100.0</mass>
</object>
</composition>
<!-- Block for Switch -->
<composition>
<typeID>240</typeID>
<ignoreHeightmap>false</ignoreHeightmap>
<crossesChunks>true</crossesChunks>
<object>
<modelPath>movableBlock.obj</modelPath>
<xOffset>0.0</xOffset>
<yOffset>5.0</yOffset>
<zOffset>0.0</zOffset>
<xRot>0.0</xRot>
<yRot>0.0</yRot>
<zRot>0.0</zRot>
<scale>1.5</scale>
<mass>2.0</mass>
</object>
</composition>
<!-- Brazier -->
<composition>
<typeID>245</typeID>
<ignoreHeightmap>false</ignoreHeightmap>
<crossesChunks>false</crossesChunks>
<object>
<modelPath>brazier.obj</modelPath>
<xOffset>0.0</xOffset>
<yOffset>0.0</yOffset>
<zOffset>0.0</zOffset>
<xRot>0.0</xRot>
<yRot>0.0</yRot>
<zRot>0.0</zRot>
<scale>1.5</scale>
<mass>0.0</mass>
</object>
</composition>
<!-- Hint -->
<composition>
<typeID>250</typeID>
<ignoreHeightmap>false</ignoreHeightmap>
<crossesChunks>false</crossesChunks>
<object>
<modelPath>hint.obj</modelPath>
<xOffset>0.0</xOffset>
<yOffset>0.1</yOffset>
<zOffset>0.0</zOffset>
<xRot>0.0</xRot>
<yRot>0.0</yRot>
<zRot>0.0</zRot>
<scale>1.5</scale>
<mass>0.0</mass>
</object>
</composition>
<!-- Exit -->
<composition>
<typeID>254</typeID>
<ignoreHeightmap>false</ignoreHeightmap>
<crossesChunks>false</crossesChunks>
<object>
<modelPath>exit.obj</modelPath>
<xOffset>0.0</xOffset>
<yOffset>0.1</yOffset>
<zOffset>0.0</zOffset>
<xRot>0.0</xRot>
<yRot>0.0</yRot>
<zRot>0.0</zRot>
<scale>1.5</scale>
<mass>0.0</mass>
</object>
</composition>
<!-- Available physicTypes are Player, Box, Button, TriangleMesh and None(no physics).
dampningL should be below 1, objects that can not move are enabled by setting their mass to 0. -->
<!-- Do not change the radius, it has to match the .obj -->
<objectData>
<modelPath>marbleSmooth.obj</modelPath>
<texturePath>cgtextures/marbleTexture.png</texturePath>
<ambientFactor>0.1</ambientFactor>
<diffuseFactor>0.5</diffuseFactor>
<specularFactor>0.5</specularFactor>
<shininess>3.0</shininess>
<physicType>Player</physicType>
<radius>1.0</radius>
<dampningL>0.15 </dampningL>
<dampningA>0.7</dampningA>
<renderable>true</renderable>
</objectData>
<!-- Do not change width height or length, they have to match the .obj -->
<objectData>
<modelPath>block.obj</modelPath>
<texturePath>cgtextures/blockTexture_small.png</texturePath>
<ambientFactor>0.1</ambientFactor>
<diffuseFactor>0.6</diffuseFactor>
<specularFactor>0.4</specularFactor>
<shininess>2.0</shininess>
<physicType>Box</physicType>
<width>4</width>
<height>1.88</height>
<length>1.99</length>
<dampningL>0.8</dampningL>
<dampningA>0.9</dampningA>
<renderable>true</renderable>
</objectData>
<objectData>
<modelPath>column.obj</modelPath>
<texturePath>cgtextures/columnTexture2.png</texturePath>
<ambientFactor>0.1</ambientFactor>
<diffuseFactor>0.6</diffuseFactor>
<specularFactor>0.4</specularFactor>
<shininess>2.0</shininess>
<physicType>TriangleMesh</physicType>
<dampningL>0.8</dampningL>
<dampningA>0.9</dampningA>
<renderable>true</renderable>
</objectData>
<objectData>
<modelPath>torch.obj</modelPath>
<texturePath>cgtextures/torchTexture2.png</texturePath>
<ambientFactor>0.1</ambientFactor>
<diffuseFactor>0.3</diffuseFactor>
<specularFactor>0.7</specularFactor>
<shininess>10.0</shininess>
<physicType>TriangleMesh</physicType>
<dampningL>0.8</dampningL>
<dampningA>0.9</dampningA>
<renderable>true</renderable>
</objectData>
<!-- Do not change width height or length, they have to match the .obj -->
<objectData>
<modelPath>switchInner.obj</modelPath>
<texturePath>cgtextures/switchInnerTexture.png</texturePath>
<ambientFactor>0.1</ambientFactor>
<diffuseFactor>0.6</diffuseFactor>
<specularFactor>0.4</specularFactor>
<shininess>2.0</shininess>
<physicType>Button</physicType>
<width>1.8</width>
<height>1</height>
<length>1.8</length>
<dampningL>0.5</dampningL>
<dampningA>1.0</dampningA>
<renderable>true</renderable>
</objectData>
<!-- Do not change width height or length, they have to match the .obj -->
<objectData>
<modelPath>switchOuterBox</modelPath>
<physicType>Box</physicType>
<width>2.54</width>
<height>2.54</height>
<length>0.33</length>
<dampningL>0.555</dampningL>
<dampningA>0.5</dampningA>
<renderable>false</renderable>
</objectData>
<objectData>
<modelPath>switchOuter.obj</modelPath>
<texturePath>cgtextures/switchOuterTexture.png</texturePath>
<ambientFactor>0.1</ambientFactor>
<diffuseFactor>0.6</diffuseFactor>
<specularFactor>0.4</specularFactor>
<shininess>1.0</shininess>
<physicType>None</physicType>
<renderable>true</renderable>
</objectData>
<!-- lengh may not be exact -->
<objectData>
<modelPath>simpleWall.obj</modelPath>
<texturePath>cgtextures/simpleWallTexture.png</texturePath>
<ambientFactor>0.1</ambientFactor>
<diffuseFactor>0.6</diffuseFactor>
<specularFactor>0.4</specularFactor>
<shininess>1.0</shininess>
<physicType>Box</physicType>
<width>1.2</width>
<height>6</height>
<length>6</length>
<dampningL>0.555</dampningL>
<dampningA>0.5</dampningA>
<renderable>true</renderable>
</objectData>
<objectData>
<modelPath>gate.obj</modelPath>
<texturePath>cgtextures/gateTexture.png</texturePath>
<ambientFactor>0.1</ambientFactor>
<diffuseFactor>0.6</diffuseFactor>
<specularFactor>0.4</specularFactor>
<shininess>2.0</shininess>
<physicType>Box</physicType>
<width>1.2</width>
<height>6</height>
<length>6</length>
<dampningL>0.555</dampningL>
<dampningA>0.5</dampningA>
<renderable>true</renderable>
</objectData>
<objectData>
<modelPath>movableBlock.obj</modelPath>
<texturePath>cgtextures/movableBlockTexture.png</texturePath>
<ambientFactor>0.1</ambientFactor>
<diffuseFactor>0.6</diffuseFactor>
<specularFactor>0.4</specularFactor>
<shininess>2.0</shininess>
<physicType>Box</physicType>
<width>1.56</width>
<height>1.56</height>
<length>1.56</length>
<dampningL>0.555</dampningL>
<dampningA>0.5</dampningA>
<renderable>true</renderable>
</objectData>
<objectData>
<modelPath>brazier.obj</modelPath>
<texturePath>cgtextures/brazierTexture.png</texturePath>
<ambientFactor>0.1</ambientFactor>
<diffuseFactor>0.6</diffuseFactor>
<specularFactor>0.4</specularFactor>
<shininess>1.0</shininess>
<physicType>TriangleMesh</physicType>
<dampningL>0.555</dampningL>
<dampningA>0.5</dampningA>
<renderable>true</renderable>
</objectData>
<objectData>
<modelPath>hint.obj</modelPath>
<texturePath>hintTexture2.png</texturePath>
<ambientFactor>0.1</ambientFactor>
<diffuseFactor>0.6</diffuseFactor>
<specularFactor>0.4</specularFactor>
<shininess>1.0</shininess>
<physicType>TriangleMesh</physicType>
<dampningL>0.555</dampningL>
<dampningA>0.5</dampningA>
<renderable>true</renderable>
</objectData>
<objectData>
<modelPath>exit.obj</modelPath>
<texturePath>cgtextures/exitTexture.png</texturePath>
<ambientFactor>0.1</ambientFactor>
<diffuseFactor>0.6</diffuseFactor>
<specularFactor>0.4</specularFactor>
<shininess>1.0</shininess>
<physicType>TriangleMesh</physicType>
<dampningL>0.555</dampningL>
<dampningA>0.5</dampningA>
<renderable>true</renderable>
</objectData>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.6 KiB

File diff suppressed because it is too large Load Diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 135 B

Some files were not shown because too many files have changed in this diff Show More