Changeset 3238 in orxonox.OLD for orxonox/branches/sound/src
- Timestamp:
- Dec 20, 2004, 2:42:54 AM (20 years ago)
- Location:
- orxonox/branches/sound/src
- Files:
-
- 49 edited
Legend:
- Unmodified
- Added
- Removed
-
orxonox/branches/sound/src/Makefile
r3179 r3238 1 # Makefile.in generated by automake 1.8. 2from Makefile.am.1 # Makefile.in generated by automake 1.8.5 from Makefile.am. 2 2 # src/Makefile. Generated from Makefile.in by configure. 3 3 … … 38 38 PRE_UNINSTALL = : 39 39 POST_UNINSTALL = : 40 host_triplet = i686-pc-linux-gnu 40 41 bin_PROGRAMS = orxonox$(EXEEXT) sound$(EXEEXT) 41 42 subdir = src … … 49 50 CONFIG_HEADER = $(top_builddir)/config.h 50 51 CONFIG_CLEAN_FILES = 51 am__installdirs = $(DESTDIR)$(bindir)52 am__installdirs = "$(DESTDIR)$(bindir)" 52 53 binPROGRAMS_INSTALL = $(INSTALL_PROGRAM) 53 54 PROGRAMS = $(bin_PROGRAMS) 54 55 am_orxonox_OBJECTS = orxonox.$(OBJEXT) world.$(OBJEXT) \ 55 player.$(OBJEXT) data_tank.$(OBJEXT) world_entity.$(OBJEXT) \56 vector.$(OBJEXT) camera.$(OBJEXT) collision.$(OBJEXT) \56 player.$(OBJEXT) collision.$(OBJEXT) data_tank.$(OBJEXT) \ 57 world_entity.$(OBJEXT) vector.$(OBJEXT) camera.$(OBJEXT) \ 57 58 command_node.$(OBJEXT) ini_parser.$(OBJEXT) keynames.$(OBJEXT) \ 58 59 track.$(OBJEXT) base_entity.$(OBJEXT) game_loader.$(OBJEXT) \ 59 campaign.$(OBJEXT) story_entity.$(OBJEXT) 60 campaign.$(OBJEXT) story_entity.$(OBJEXT) \ 61 environment.$(OBJEXT) object.$(OBJEXT) array.$(OBJEXT) \ 62 material.$(OBJEXT) list.$(OBJEXT) 60 63 orxonox_OBJECTS = $(am_orxonox_OBJECTS) 61 64 orxonox_LDADD = $(LDADD) … … 66 69 depcomp = $(SHELL) $(top_srcdir)/depcomp 67 70 am__depfiles_maybe = depfiles 68 DEP_FILES = ./$(DEPDIR)/ base_entity.Po \69 ./$(DEPDIR)/ camera.Po ./$(DEPDIR)/campaign.Po \70 ./$(DEPDIR)/c ollision.Po \71 DEP_FILES = ./$(DEPDIR)/array.Po \ 72 ./$(DEPDIR)/base_entity.Po ./$(DEPDIR)/camera.Po \ 73 ./$(DEPDIR)/campaign.Po ./$(DEPDIR)/collision.Po \ 71 74 ./$(DEPDIR)/command_node.Po \ 72 75 ./$(DEPDIR)/data_tank.Po \ 76 ./$(DEPDIR)/environment.Po \ 73 77 ./$(DEPDIR)/game_loader.Po \ 74 78 ./$(DEPDIR)/ini_parser.Po ./$(DEPDIR)/keynames.Po \ 75 ./$(DEPDIR)/orxonox.Po ./$(DEPDIR)/player.Po \ 76 ./$(DEPDIR)/sound_control.Po \ 79 ./$(DEPDIR)/list.Po ./$(DEPDIR)/material.Po \ 80 ./$(DEPDIR)/object.Po ./$(DEPDIR)/orxonox.Po \ 81 ./$(DEPDIR)/player.Po ./$(DEPDIR)/sound_control.Po \ 77 82 ./$(DEPDIR)/sound_test.Po \ 78 83 ./$(DEPDIR)/story_entity.Po ./$(DEPDIR)/track.Po \ … … 86 91 SOURCES = $(orxonox_SOURCES) $(sound_SOURCES) 87 92 DIST_SOURCES = $(orxonox_SOURCES) $(sound_SOURCES) 93 RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ 94 html-recursive info-recursive install-data-recursive \ 95 install-exec-recursive install-info-recursive \ 96 install-recursive installcheck-recursive installdirs-recursive \ 97 pdf-recursive ps-recursive uninstall-info-recursive \ 98 uninstall-recursive 88 99 HEADERS = $(noinst_HEADERS) 89 100 ETAGS = etags 90 101 CTAGS = ctags 102 DIST_SUBDIRS = . importer gui console 91 103 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) 92 ACLOCAL = aclocal-1.8104 ACLOCAL = ${SHELL} /home/bensch/svn/orxonox/branches/sound/missing --run aclocal-1.8 93 105 AMDEP_FALSE = # 94 106 AMDEP_TRUE = 95 AMTAR = tar96 AUTOCONF = autoconf97 AUTOHEADER = autoheader98 AUTOMAKE = automake-1.8107 AMTAR = ${SHELL} /home/bensch/svn/orxonox/branches/sound/missing --run tar 108 AUTOCONF = ${SHELL} /home/bensch/svn/orxonox/branches/sound/missing --run autoconf 109 AUTOHEADER = ${SHELL} /home/bensch/svn/orxonox/branches/sound/missing --run autoheader 110 AUTOMAKE = ${SHELL} /home/bensch/svn/orxonox/branches/sound/missing --run automake-1.8 99 111 AWK = gawk 100 112 CC = gcc … … 102 114 CFLAGS = -g -O2 103 115 CPP = gcc -E 104 CPPFLAGS = 116 CPPFLAGS = -I/usr/X11R6/include 105 117 CXX = g++ 106 118 CXXDEPMODE = depmode=gcc3 107 119 CXXFLAGS = -g -O2 108 120 CYGPATH_W = echo 121 DEBUG = 1 109 122 DEFS = -DHAVE_CONFIG_H 110 123 DEPDIR = .deps 124 DOXYGEN = /usr/bin/doxygen 125 DOXYGEN_FALSE = # 126 DOXYGEN_TRUE = 111 127 ECHO_C = 112 128 ECHO_N = -n 113 129 ECHO_T = 114 130 EGREP = grep -E 115 EXEEXT = .exe 131 EXEEXT = 132 GTK2_CFLAGS = -DXTHREADS -D_REENTRANT -DXUSE_MTSAFE_API -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/X11R6/include -I/usr/include/atk-1.0 -I/usr/include/pango-1.0 -I/usr/include/freetype2 -I/usr/include/freetype2/config -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include 133 GTK2_LIBS = -Wl,--export-dynamic -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgdk_pixbuf-2.0 -lm -lpangoxft-1.0 -lpangox-1.0 -lpango-1.0 -lgobject-2.0 -lgmodule-2.0 -ldl -lglib-2.0 134 HAVE_GTK2_FALSE = # 135 HAVE_GTK2_TRUE = 116 136 INSTALL_DATA = ${INSTALL} -m 644 117 137 INSTALL_PROGRAM = ${INSTALL} 118 138 INSTALL_SCRIPT = ${INSTALL} 119 139 INSTALL_STRIP_PROGRAM = ${SHELL} $(install_sh) -c -s 120 LDFLAGS = 140 LDFLAGS = -L/usr/Mesa-6.0.1/lib -L/usr/X11R6/lib 121 141 LIBOBJS = 122 LIBS = -lm -l opengl32 -lGLU32 -lmingw32 -lsdlmain -lsdl -lSDL_mixer -Lc:/Prog/Utils/MinGW/lib -lgtk-win32-2.0 -lgdk-win32-2.0 -latk-1.0 -lgdk_pixbuf-2.0 -lpangowin32-1.0 -lgdi32 -lpango-1.0 -lgobject-2.0 -lgmodule-2.0 -lglib-2.0 -lintl -liconv142 LIBS = -lm -lGL -lGLU -lSDL -lSDL_mixer -lSDL_image 123 143 LTLIBOBJS = 124 MAKEINFO = makeinfo125 MSBITFIELDS = -mms-bitfields144 MAKEINFO = ${SHELL} /home/bensch/svn/orxonox/branches/sound/missing --run makeinfo 145 MSBITFIELDS = 126 146 OBJEXT = o 127 147 PACKAGE = orxonox 128 148 PACKAGE_BUGREPORT = orxonox-dev@mail.datacore.ch 129 149 PACKAGE_NAME = orxonox 130 PACKAGE_STRING = orxonox 0. 1-pre-alpha150 PACKAGE_STRING = orxonox 0.2.0_alpha-r1 131 151 PACKAGE_TARNAME = orxonox 132 PACKAGE_VERSION = 0. 1-pre-alpha152 PACKAGE_VERSION = 0.2.0_alpha-r1 133 153 PATH_SEPARATOR = : 134 154 SET_MAKE = 135 155 SHELL = /bin/sh 136 156 STRIP = 137 VERSION = 0. 1-pre-alpha157 VERSION = 0.2.0_alpha-r1 138 158 ac_ct_CC = gcc 139 ac_ct_CXX = g++159 ac_ct_CXX = 140 160 ac_ct_STRIP = 141 161 am__fastdepCC_FALSE = # … … 147 167 am__quote = 148 168 bindir = ${exec_prefix}/bin 169 build = i686-pc-linux-gnu 149 170 build_alias = 171 build_cpu = i686 172 build_os = linux-gnu 173 build_vendor = pc 150 174 datadir = ${prefix}/share 151 175 exec_prefix = ${prefix} 176 host = i686-pc-linux-gnu 152 177 host_alias = 178 host_cpu = i686 179 host_os = linux-gnu 180 host_vendor = pc 153 181 includedir = ${prefix}/include 154 182 infodir = ${prefix}/info 155 install_sh = / c/Documents and Settings/bensch/Desktop/svn/orxonox/branches/sound/install-sh183 install_sh = /home/bensch/svn/orxonox/branches/sound/install-sh 156 184 libdir = ${exec_prefix}/lib 157 185 libexecdir = ${exec_prefix}/libexec … … 165 193 sharedstatedir = ${prefix}/com 166 194 sysconfdir = ${prefix}/etc 195 target = i686-pc-linux-gnu 167 196 target_alias = 168 AM_CXXFLAGS = "-I/usr/X11R6/include" 169 AM_LDFLAGS = "-L/usr/Mesa-6.0.1/lib -L/usr/X11R6/lib -lXt -lX11" $(MWINDOWS) 170 orxonox_SOURCES = orxonox.cc world.cc player.cc data_tank.cc world_entity.cc vector.cc camera.cc collision.cc command_node.cc ini_parser.cc keynames.cc track.cc base_entity.cc game_loader.cc campaign.cc story_entity.cc 197 target_cpu = i686 198 target_os = linux-gnu 199 target_vendor = pc 200 201 #AM_CXXFLAGS="" 202 AM_LDFLAGS = $(MWINDOWS) 171 203 sound_SOURCES = sound_test.cc sound_control.cc 172 noinst_HEADERS = ability.h data_tank.h npc.h stdincl.h ai.h environment.h orxonox.h synchronisable.h base_entity.h error.h player.h track.h camera.h ini_parser.h power_up.h vector.h collision.h keynames.h proto_class.h world.h command_node.h list.h shoot_laser.h world_entity.h coordinates.h message_structures.h shoot_rocket.h 173 all: all-am 204 orxonox_SOURCES = orxonox.cc \ 205 world.cc \ 206 player.cc \ 207 collision.cc \ 208 data_tank.cc \ 209 world_entity.cc \ 210 vector.cc \ 211 camera.cc \ 212 command_node.cc \ 213 ini_parser.cc \ 214 keynames.cc \ 215 track.cc \ 216 base_entity.cc \ 217 game_loader.cc \ 218 campaign.cc \ 219 story_entity.cc \ 220 environment.cc \ 221 importer/object.cc \ 222 importer/array.cc \ 223 importer/material.cc \ 224 list.cc 225 226 noinst_HEADERS = ability.h \ 227 data_tank.h \ 228 collision.h \ 229 npc.h \ 230 stdincl.h \ 231 ai.h \ 232 environment.h \ 233 orxonox.h \ 234 synchronisable.h \ 235 base_entity.h \ 236 error.h \ 237 player.h \ 238 track.h \ 239 camera.h \ 240 ini_parser.h \ 241 power_up.h \ 242 vector.h \ 243 keynames.h \ 244 proto_class.h \ 245 world.h \ 246 command_node.h \ 247 list.h \ 248 shoot_laser.h \ 249 world_entity.h \ 250 coordinates.h \ 251 message_structures.h \ 252 shoot_rocket.h \ 253 list_template.h \ 254 story_entity.h \ 255 story_def.h \ 256 game_loader.h \ 257 campaign.h 258 259 EXTRA_DIST = orxonox.conf 260 #GTK_PROGS = 261 262 ### GTK_RELATED 263 GTK_PROGS = console 264 SUBDIRS = . \ 265 importer \ 266 gui \ 267 $(GTK_PROGS) 268 269 all: all-recursive 174 270 175 271 .SUFFIXES: … … 184 280 esac; \ 185 281 done; \ 186 echo ' cd $(top_srcdir) && $(AUTOMAKE) -- gnusrc/Makefile'; \282 echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/Makefile'; \ 187 283 cd $(top_srcdir) && \ 188 $(AUTOMAKE) -- gnusrc/Makefile284 $(AUTOMAKE) --foreign src/Makefile 189 285 .PRECIOUS: Makefile 190 286 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status … … 206 302 install-binPROGRAMS: $(bin_PROGRAMS) 207 303 @$(NORMAL_INSTALL) 208 $(mkdir_p) $(DESTDIR)$(bindir)304 test -z "$(bindir)" || $(mkdir_p) "$(DESTDIR)$(bindir)" 209 305 @list='$(bin_PROGRAMS)'; for p in $$list; do \ 210 306 p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \ … … 212 308 ; then \ 213 309 f=`echo "$$p1" | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'`; \ 214 echo " $(INSTALL_PROGRAM_ENV) $(binPROGRAMS_INSTALL) $$p $(DESTDIR)$(bindir)/$$f"; \215 $(INSTALL_PROGRAM_ENV) $(binPROGRAMS_INSTALL) $$p $(DESTDIR)$(bindir)/$$f|| exit 1; \310 echo " $(INSTALL_PROGRAM_ENV) $(binPROGRAMS_INSTALL) '$$p' '$(DESTDIR)$(bindir)/$$f'"; \ 311 $(INSTALL_PROGRAM_ENV) $(binPROGRAMS_INSTALL) "$$p" "$(DESTDIR)$(bindir)/$$f" || exit 1; \ 216 312 else :; fi; \ 217 313 done … … 221 317 @list='$(bin_PROGRAMS)'; for p in $$list; do \ 222 318 f=`echo "$$p" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \ 223 echo " rm -f $(DESTDIR)$(bindir)/$$f"; \224 rm -f $(DESTDIR)$(bindir)/$$f; \319 echo " rm -f '$(DESTDIR)$(bindir)/$$f'"; \ 320 rm -f "$(DESTDIR)$(bindir)/$$f"; \ 225 321 done 226 322 … … 240 336 -rm -f *.tab.c 241 337 338 include ./$(DEPDIR)/array.Po 242 339 include ./$(DEPDIR)/base_entity.Po 243 340 include ./$(DEPDIR)/camera.Po … … 246 343 include ./$(DEPDIR)/command_node.Po 247 344 include ./$(DEPDIR)/data_tank.Po 345 include ./$(DEPDIR)/environment.Po 248 346 include ./$(DEPDIR)/game_loader.Po 249 347 include ./$(DEPDIR)/ini_parser.Po 250 348 include ./$(DEPDIR)/keynames.Po 349 include ./$(DEPDIR)/list.Po 350 include ./$(DEPDIR)/material.Po 351 include ./$(DEPDIR)/object.Po 251 352 include ./$(DEPDIR)/orxonox.Po 252 353 include ./$(DEPDIR)/player.Po … … 274 375 # $(CXXDEPMODE) $(depcomp) \ 275 376 # $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` 377 378 object.o: importer/object.cc 379 if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT object.o -MD -MP -MF "$(DEPDIR)/object.Tpo" -c -o object.o `test -f 'importer/object.cc' || echo '$(srcdir)/'`importer/object.cc; \ 380 then mv -f "$(DEPDIR)/object.Tpo" "$(DEPDIR)/object.Po"; else rm -f "$(DEPDIR)/object.Tpo"; exit 1; fi 381 # source='importer/object.cc' object='object.o' libtool=no \ 382 # depfile='$(DEPDIR)/object.Po' tmpdepfile='$(DEPDIR)/object.TPo' \ 383 # $(CXXDEPMODE) $(depcomp) \ 384 # $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o object.o `test -f 'importer/object.cc' || echo '$(srcdir)/'`importer/object.cc 385 386 object.obj: importer/object.cc 387 if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT object.obj -MD -MP -MF "$(DEPDIR)/object.Tpo" -c -o object.obj `if test -f 'importer/object.cc'; then $(CYGPATH_W) 'importer/object.cc'; else $(CYGPATH_W) '$(srcdir)/importer/object.cc'; fi`; \ 388 then mv -f "$(DEPDIR)/object.Tpo" "$(DEPDIR)/object.Po"; else rm -f "$(DEPDIR)/object.Tpo"; exit 1; fi 389 # source='importer/object.cc' object='object.obj' libtool=no \ 390 # depfile='$(DEPDIR)/object.Po' tmpdepfile='$(DEPDIR)/object.TPo' \ 391 # $(CXXDEPMODE) $(depcomp) \ 392 # $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o object.obj `if test -f 'importer/object.cc'; then $(CYGPATH_W) 'importer/object.cc'; else $(CYGPATH_W) '$(srcdir)/importer/object.cc'; fi` 393 394 array.o: importer/array.cc 395 if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT array.o -MD -MP -MF "$(DEPDIR)/array.Tpo" -c -o array.o `test -f 'importer/array.cc' || echo '$(srcdir)/'`importer/array.cc; \ 396 then mv -f "$(DEPDIR)/array.Tpo" "$(DEPDIR)/array.Po"; else rm -f "$(DEPDIR)/array.Tpo"; exit 1; fi 397 # source='importer/array.cc' object='array.o' libtool=no \ 398 # depfile='$(DEPDIR)/array.Po' tmpdepfile='$(DEPDIR)/array.TPo' \ 399 # $(CXXDEPMODE) $(depcomp) \ 400 # $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o array.o `test -f 'importer/array.cc' || echo '$(srcdir)/'`importer/array.cc 401 402 array.obj: importer/array.cc 403 if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT array.obj -MD -MP -MF "$(DEPDIR)/array.Tpo" -c -o array.obj `if test -f 'importer/array.cc'; then $(CYGPATH_W) 'importer/array.cc'; else $(CYGPATH_W) '$(srcdir)/importer/array.cc'; fi`; \ 404 then mv -f "$(DEPDIR)/array.Tpo" "$(DEPDIR)/array.Po"; else rm -f "$(DEPDIR)/array.Tpo"; exit 1; fi 405 # source='importer/array.cc' object='array.obj' libtool=no \ 406 # depfile='$(DEPDIR)/array.Po' tmpdepfile='$(DEPDIR)/array.TPo' \ 407 # $(CXXDEPMODE) $(depcomp) \ 408 # $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o array.obj `if test -f 'importer/array.cc'; then $(CYGPATH_W) 'importer/array.cc'; else $(CYGPATH_W) '$(srcdir)/importer/array.cc'; fi` 409 410 material.o: importer/material.cc 411 if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT material.o -MD -MP -MF "$(DEPDIR)/material.Tpo" -c -o material.o `test -f 'importer/material.cc' || echo '$(srcdir)/'`importer/material.cc; \ 412 then mv -f "$(DEPDIR)/material.Tpo" "$(DEPDIR)/material.Po"; else rm -f "$(DEPDIR)/material.Tpo"; exit 1; fi 413 # source='importer/material.cc' object='material.o' libtool=no \ 414 # depfile='$(DEPDIR)/material.Po' tmpdepfile='$(DEPDIR)/material.TPo' \ 415 # $(CXXDEPMODE) $(depcomp) \ 416 # $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o material.o `test -f 'importer/material.cc' || echo '$(srcdir)/'`importer/material.cc 417 418 material.obj: importer/material.cc 419 if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT material.obj -MD -MP -MF "$(DEPDIR)/material.Tpo" -c -o material.obj `if test -f 'importer/material.cc'; then $(CYGPATH_W) 'importer/material.cc'; else $(CYGPATH_W) '$(srcdir)/importer/material.cc'; fi`; \ 420 then mv -f "$(DEPDIR)/material.Tpo" "$(DEPDIR)/material.Po"; else rm -f "$(DEPDIR)/material.Tpo"; exit 1; fi 421 # source='importer/material.cc' object='material.obj' libtool=no \ 422 # depfile='$(DEPDIR)/material.Po' tmpdepfile='$(DEPDIR)/material.TPo' \ 423 # $(CXXDEPMODE) $(depcomp) \ 424 # $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o material.obj `if test -f 'importer/material.cc'; then $(CYGPATH_W) 'importer/material.cc'; else $(CYGPATH_W) '$(srcdir)/importer/material.cc'; fi` 276 425 uninstall-info-am: 426 427 # This directory's subdirectories are mostly independent; you can cd 428 # into them and run `make' without going through this Makefile. 429 # To change the values of `make' variables: instead of editing Makefiles, 430 # (1) if the variable is set in `config.status', edit `config.status' 431 # (which will cause the Makefiles to be regenerated when you run `make'); 432 # (2) otherwise, pass the desired values on the `make' command line. 433 $(RECURSIVE_TARGETS): 434 @set fnord $$MAKEFLAGS; amf=$$2; \ 435 dot_seen=no; \ 436 target=`echo $@ | sed s/-recursive//`; \ 437 list='$(SUBDIRS)'; for subdir in $$list; do \ 438 echo "Making $$target in $$subdir"; \ 439 if test "$$subdir" = "."; then \ 440 dot_seen=yes; \ 441 local_target="$$target-am"; \ 442 else \ 443 local_target="$$target"; \ 444 fi; \ 445 (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ 446 || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ 447 done; \ 448 if test "$$dot_seen" = "no"; then \ 449 $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ 450 fi; test -z "$$fail" 451 452 mostlyclean-recursive clean-recursive distclean-recursive \ 453 maintainer-clean-recursive: 454 @set fnord $$MAKEFLAGS; amf=$$2; \ 455 dot_seen=no; \ 456 case "$@" in \ 457 distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ 458 *) list='$(SUBDIRS)' ;; \ 459 esac; \ 460 rev=''; for subdir in $$list; do \ 461 if test "$$subdir" = "."; then :; else \ 462 rev="$$subdir $$rev"; \ 463 fi; \ 464 done; \ 465 rev="$$rev ."; \ 466 target=`echo $@ | sed s/-recursive//`; \ 467 for subdir in $$rev; do \ 468 echo "Making $$target in $$subdir"; \ 469 if test "$$subdir" = "."; then \ 470 local_target="$$target-am"; \ 471 else \ 472 local_target="$$target"; \ 473 fi; \ 474 (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ 475 || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ 476 done && test -z "$$fail" 477 tags-recursive: 478 list='$(SUBDIRS)'; for subdir in $$list; do \ 479 test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ 480 done 481 ctags-recursive: 482 list='$(SUBDIRS)'; for subdir in $$list; do \ 483 test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ 484 done 277 485 278 486 ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) … … 286 494 tags: TAGS 287 495 288 TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \496 TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ 289 497 $(TAGS_FILES) $(LISP) 290 498 tags=; \ 291 499 here=`pwd`; \ 500 if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ 501 include_option=--etags-include; \ 502 empty_fix=.; \ 503 else \ 504 include_option=--include; \ 505 empty_fix=; \ 506 fi; \ 507 list='$(SUBDIRS)'; for subdir in $$list; do \ 508 if test "$$subdir" = .; then :; else \ 509 test ! -f $$subdir/TAGS || \ 510 tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \ 511 fi; \ 512 done; \ 292 513 list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ 293 514 unique=`for i in $$list; do \ … … 296 517 $(AWK) ' { files[$$0] = 1; } \ 297 518 END { for (i in files) print i; }'`; \ 298 test -z "$(ETAGS_ARGS)$$tags$$unique" \ 299 || $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ 300 $$tags $$unique 519 if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ 520 test -n "$$unique" || unique=$$empty_fix; \ 521 $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ 522 $$tags $$unique; \ 523 fi 301 524 ctags: CTAGS 302 CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \525 CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ 303 526 $(TAGS_FILES) $(LISP) 304 527 tags=; \ … … 349 572 fi; \ 350 573 done 574 list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ 575 if test "$$subdir" = .; then :; else \ 576 test -d "$(distdir)/$$subdir" \ 577 || mkdir "$(distdir)/$$subdir" \ 578 || exit 1; \ 579 (cd $$subdir && \ 580 $(MAKE) $(AM_MAKEFLAGS) \ 581 top_distdir="../$(top_distdir)" \ 582 distdir="../$(distdir)/$$subdir" \ 583 distdir) \ 584 || exit 1; \ 585 fi; \ 586 done 351 587 check-am: all-am 352 check: check- am588 check: check-recursive 353 589 all-am: Makefile $(PROGRAMS) $(HEADERS) 354 installdirs: 355 $(mkdir_p) $(DESTDIR)$(bindir) 356 install: install-am 357 install-exec: install-exec-am 358 install-data: install-data-am 359 uninstall: uninstall-am 590 installdirs: installdirs-recursive 591 installdirs-am: 592 for dir in "$(DESTDIR)$(bindir)"; do \ 593 test -z "$$dir" || $(mkdir_p) "$$dir"; \ 594 done 595 install: install-recursive 596 install-exec: install-exec-recursive 597 install-data: install-data-recursive 598 uninstall: uninstall-recursive 360 599 361 600 install-am: all-am 362 601 @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am 363 602 364 installcheck: installcheck- am603 installcheck: installcheck-recursive 365 604 install-strip: 366 605 $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ … … 378 617 @echo "This command is intended for maintainers to use" 379 618 @echo "it deletes files that may require special tools to rebuild." 380 clean: clean- am619 clean: clean-recursive 381 620 382 621 clean-am: clean-binPROGRAMS clean-generic mostlyclean-am 383 622 384 distclean: distclean- am623 distclean: distclean-recursive 385 624 -rm -rf ./$(DEPDIR) 386 625 -rm -f Makefile … … 388 627 distclean-tags 389 628 390 dvi: dvi- am629 dvi: dvi-recursive 391 630 392 631 dvi-am: 393 632 394 html: html- am395 396 info: info- am633 html: html-recursive 634 635 info: info-recursive 397 636 398 637 info-am: … … 402 641 install-exec-am: install-binPROGRAMS 403 642 404 install-info: install-info- am643 install-info: install-info-recursive 405 644 406 645 install-man: … … 408 647 installcheck-am: 409 648 410 maintainer-clean: maintainer-clean- am649 maintainer-clean: maintainer-clean-recursive 411 650 -rm -rf ./$(DEPDIR) 412 651 -rm -f Makefile 413 652 maintainer-clean-am: distclean-am maintainer-clean-generic 414 653 415 mostlyclean: mostlyclean- am654 mostlyclean: mostlyclean-recursive 416 655 417 656 mostlyclean-am: mostlyclean-compile mostlyclean-generic 418 657 419 pdf: pdf- am658 pdf: pdf-recursive 420 659 421 660 pdf-am: 422 661 423 ps: ps- am662 ps: ps-recursive 424 663 425 664 ps-am: … … 427 666 uninstall-am: uninstall-binPROGRAMS uninstall-info-am 428 667 429 .PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \ 430 clean-generic ctags distclean distclean-compile \ 431 distclean-generic distclean-tags distdir dvi dvi-am html \ 668 uninstall-info: uninstall-info-recursive 669 670 .PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am check check-am \ 671 clean clean-binPROGRAMS clean-generic clean-recursive ctags \ 672 ctags-recursive distclean distclean-compile distclean-generic \ 673 distclean-recursive distclean-tags distdir dvi dvi-am html \ 432 674 html-am info info-am install install-am install-binPROGRAMS \ 433 675 install-data install-data-am install-exec install-exec-am \ 434 676 install-info install-info-am install-man install-strip \ 435 installcheck installcheck-am installdirs maintainer-clean \ 436 maintainer-clean-generic mostlyclean mostlyclean-compile \ 437 mostlyclean-generic pdf pdf-am ps ps-am tags uninstall \ 438 uninstall-am uninstall-binPROGRAMS uninstall-info-am 439 440 441 # uncomment the following if bencoder requires the math library 677 installcheck installcheck-am installdirs installdirs-am \ 678 maintainer-clean maintainer-clean-generic \ 679 maintainer-clean-recursive mostlyclean mostlyclean-compile \ 680 mostlyclean-generic mostlyclean-recursive pdf pdf-am ps ps-am \ 681 tags tags-recursive uninstall uninstall-am \ 682 uninstall-binPROGRAMS uninstall-info-am 683 684 685 # uncomment the following if orxonox requires the math library 442 686 #orxonox_LDADD=-lm 443 687 -
orxonox/branches/sound/src/Makefile.am
r2854 r3238 1 AM_CXXFLAGS="-I/usr/X11R6/include"2 AM_LDFLAGS= "-L/usr/Mesa-6.0.1/lib -L/usr/X11R6/lib -lXt -lX11"$(MWINDOWS)1 #AM_CXXFLAGS="" 2 AM_LDFLAGS= $(MWINDOWS) 3 3 4 4 #"-O3 -pedantic -fPIC -ffast-math -I/usr/X11R6/include" … … 6 6 7 7 bin_PROGRAMS=orxonox sound 8 orxonox_SOURCES=orxonox.cc world.cc player.cc data_tank.cc world_entity.cc vector.cc camera.cc collision.cc command_node.cc ini_parser.cc keynames.cc track.cc base_entity.cc game_loader.cc campaign.cc story_entity.cc9 8 10 9 sound_SOURCES=sound_test.cc sound_control.cc 11 10 12 noinst_HEADERS=ability.h data_tank.h npc.h stdincl.h ai.h environment.h orxonox.h synchronisable.h base_entity.h error.h player.h track.h camera.h ini_parser.h power_up.h vector.h collision.h keynames.h proto_class.h world.h command_node.h list.h shoot_laser.h world_entity.h coordinates.h message_structures.h shoot_rocket.h 11 orxonox_SOURCES= orxonox.cc \ 12 world.cc \ 13 player.cc \ 14 collision.cc \ 15 data_tank.cc \ 16 world_entity.cc \ 17 vector.cc \ 18 camera.cc \ 19 command_node.cc \ 20 ini_parser.cc \ 21 keynames.cc \ 22 track.cc \ 23 base_entity.cc \ 24 game_loader.cc \ 25 campaign.cc \ 26 story_entity.cc \ 27 environment.cc \ 28 importer/object.cc \ 29 importer/array.cc \ 30 importer/material.cc \ 31 list.cc 13 32 33 noinst_HEADERS = ability.h \ 34 data_tank.h \ 35 collision.h \ 36 npc.h \ 37 stdincl.h \ 38 ai.h \ 39 environment.h \ 40 orxonox.h \ 41 synchronisable.h \ 42 base_entity.h \ 43 error.h \ 44 player.h \ 45 track.h \ 46 camera.h \ 47 ini_parser.h \ 48 power_up.h \ 49 vector.h \ 50 keynames.h \ 51 proto_class.h \ 52 world.h \ 53 command_node.h \ 54 list.h \ 55 shoot_laser.h \ 56 world_entity.h \ 57 coordinates.h \ 58 message_structures.h \ 59 shoot_rocket.h \ 60 list_template.h \ 61 story_entity.h \ 62 story_def.h \ 63 game_loader.h \ 64 campaign.h 14 65 15 # uncomment the following if bencoder requires the math library 66 ## orxonox.conf will be used from home-dir instead. 67 EXTRA_DIST = orxonox.conf 68 69 ### GTK_RELATED 70 if HAVE_GTK2 71 GTK_PROGS =console 72 else 73 GTK_PROGS = 74 endif 75 76 SUBDIRS = . \ 77 importer \ 78 gui \ 79 $(GTK_PROGS) 80 81 # uncomment the following if orxonox requires the math library 16 82 #orxonox_LDADD=-lm 17 83 -
orxonox/branches/sound/src/Makefile.in
r3179 r3238 1 # Makefile.in generated by automake 1.8. 2from Makefile.am.1 # Makefile.in generated by automake 1.8.5 from Makefile.am. 2 2 # @configure_input@ 3 3 … … 38 38 PRE_UNINSTALL = : 39 39 POST_UNINSTALL = : 40 host_triplet = @host@ 40 41 bin_PROGRAMS = orxonox$(EXEEXT) sound$(EXEEXT) 41 42 subdir = src … … 49 50 CONFIG_HEADER = $(top_builddir)/config.h 50 51 CONFIG_CLEAN_FILES = 51 am__installdirs = $(DESTDIR)$(bindir)52 am__installdirs = "$(DESTDIR)$(bindir)" 52 53 binPROGRAMS_INSTALL = $(INSTALL_PROGRAM) 53 54 PROGRAMS = $(bin_PROGRAMS) 54 55 am_orxonox_OBJECTS = orxonox.$(OBJEXT) world.$(OBJEXT) \ 55 player.$(OBJEXT) data_tank.$(OBJEXT) world_entity.$(OBJEXT) \56 vector.$(OBJEXT) camera.$(OBJEXT) collision.$(OBJEXT) \56 player.$(OBJEXT) collision.$(OBJEXT) data_tank.$(OBJEXT) \ 57 world_entity.$(OBJEXT) vector.$(OBJEXT) camera.$(OBJEXT) \ 57 58 command_node.$(OBJEXT) ini_parser.$(OBJEXT) keynames.$(OBJEXT) \ 58 59 track.$(OBJEXT) base_entity.$(OBJEXT) game_loader.$(OBJEXT) \ 59 campaign.$(OBJEXT) story_entity.$(OBJEXT) 60 campaign.$(OBJEXT) story_entity.$(OBJEXT) \ 61 environment.$(OBJEXT) object.$(OBJEXT) array.$(OBJEXT) \ 62 material.$(OBJEXT) list.$(OBJEXT) 60 63 orxonox_OBJECTS = $(am_orxonox_OBJECTS) 61 64 orxonox_LDADD = $(LDADD) … … 66 69 depcomp = $(SHELL) $(top_srcdir)/depcomp 67 70 am__depfiles_maybe = depfiles 68 @AMDEP_TRUE@DEP_FILES = ./$(DEPDIR)/ base_entity.Po \69 @AMDEP_TRUE@ ./$(DEPDIR)/ camera.Po ./$(DEPDIR)/campaign.Po \70 @AMDEP_TRUE@ ./$(DEPDIR)/c ollision.Po \71 @AMDEP_TRUE@DEP_FILES = ./$(DEPDIR)/array.Po \ 72 @AMDEP_TRUE@ ./$(DEPDIR)/base_entity.Po ./$(DEPDIR)/camera.Po \ 73 @AMDEP_TRUE@ ./$(DEPDIR)/campaign.Po ./$(DEPDIR)/collision.Po \ 71 74 @AMDEP_TRUE@ ./$(DEPDIR)/command_node.Po \ 72 75 @AMDEP_TRUE@ ./$(DEPDIR)/data_tank.Po \ 76 @AMDEP_TRUE@ ./$(DEPDIR)/environment.Po \ 73 77 @AMDEP_TRUE@ ./$(DEPDIR)/game_loader.Po \ 74 78 @AMDEP_TRUE@ ./$(DEPDIR)/ini_parser.Po ./$(DEPDIR)/keynames.Po \ 75 @AMDEP_TRUE@ ./$(DEPDIR)/orxonox.Po ./$(DEPDIR)/player.Po \ 76 @AMDEP_TRUE@ ./$(DEPDIR)/sound_control.Po \ 79 @AMDEP_TRUE@ ./$(DEPDIR)/list.Po ./$(DEPDIR)/material.Po \ 80 @AMDEP_TRUE@ ./$(DEPDIR)/object.Po ./$(DEPDIR)/orxonox.Po \ 81 @AMDEP_TRUE@ ./$(DEPDIR)/player.Po ./$(DEPDIR)/sound_control.Po \ 77 82 @AMDEP_TRUE@ ./$(DEPDIR)/sound_test.Po \ 78 83 @AMDEP_TRUE@ ./$(DEPDIR)/story_entity.Po ./$(DEPDIR)/track.Po \ … … 86 91 SOURCES = $(orxonox_SOURCES) $(sound_SOURCES) 87 92 DIST_SOURCES = $(orxonox_SOURCES) $(sound_SOURCES) 93 RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ 94 html-recursive info-recursive install-data-recursive \ 95 install-exec-recursive install-info-recursive \ 96 install-recursive installcheck-recursive installdirs-recursive \ 97 pdf-recursive ps-recursive uninstall-info-recursive \ 98 uninstall-recursive 88 99 HEADERS = $(noinst_HEADERS) 89 100 ETAGS = etags 90 101 CTAGS = ctags 102 DIST_SUBDIRS = . importer gui console 91 103 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) 92 104 ACLOCAL = @ACLOCAL@ … … 107 119 CXXFLAGS = @CXXFLAGS@ 108 120 CYGPATH_W = @CYGPATH_W@ 121 DEBUG = @DEBUG@ 109 122 DEFS = @DEFS@ 110 123 DEPDIR = @DEPDIR@ 124 DOXYGEN = @DOXYGEN@ 125 DOXYGEN_FALSE = @DOXYGEN_FALSE@ 126 DOXYGEN_TRUE = @DOXYGEN_TRUE@ 111 127 ECHO_C = @ECHO_C@ 112 128 ECHO_N = @ECHO_N@ … … 114 130 EGREP = @EGREP@ 115 131 EXEEXT = @EXEEXT@ 132 GTK2_CFLAGS = @GTK2_CFLAGS@ 133 GTK2_LIBS = @GTK2_LIBS@ 134 HAVE_GTK2_FALSE = @HAVE_GTK2_FALSE@ 135 HAVE_GTK2_TRUE = @HAVE_GTK2_TRUE@ 116 136 INSTALL_DATA = @INSTALL_DATA@ 117 137 INSTALL_PROGRAM = @INSTALL_PROGRAM@ … … 147 167 am__quote = @am__quote@ 148 168 bindir = @bindir@ 169 build = @build@ 149 170 build_alias = @build_alias@ 171 build_cpu = @build_cpu@ 172 build_os = @build_os@ 173 build_vendor = @build_vendor@ 150 174 datadir = @datadir@ 151 175 exec_prefix = @exec_prefix@ 176 host = @host@ 152 177 host_alias = @host_alias@ 178 host_cpu = @host_cpu@ 179 host_os = @host_os@ 180 host_vendor = @host_vendor@ 153 181 includedir = @includedir@ 154 182 infodir = @infodir@ … … 165 193 sharedstatedir = @sharedstatedir@ 166 194 sysconfdir = @sysconfdir@ 195 target = @target@ 167 196 target_alias = @target_alias@ 168 AM_CXXFLAGS = "-I/usr/X11R6/include" 169 AM_LDFLAGS = "-L/usr/Mesa-6.0.1/lib -L/usr/X11R6/lib -lXt -lX11" $(MWINDOWS) 170 orxonox_SOURCES = orxonox.cc world.cc player.cc data_tank.cc world_entity.cc vector.cc camera.cc collision.cc command_node.cc ini_parser.cc keynames.cc track.cc base_entity.cc game_loader.cc campaign.cc story_entity.cc 197 target_cpu = @target_cpu@ 198 target_os = @target_os@ 199 target_vendor = @target_vendor@ 200 201 #AM_CXXFLAGS="" 202 AM_LDFLAGS = $(MWINDOWS) 171 203 sound_SOURCES = sound_test.cc sound_control.cc 172 noinst_HEADERS = ability.h data_tank.h npc.h stdincl.h ai.h environment.h orxonox.h synchronisable.h base_entity.h error.h player.h track.h camera.h ini_parser.h power_up.h vector.h collision.h keynames.h proto_class.h world.h command_node.h list.h shoot_laser.h world_entity.h coordinates.h message_structures.h shoot_rocket.h 173 all: all-am 204 orxonox_SOURCES = orxonox.cc \ 205 world.cc \ 206 player.cc \ 207 collision.cc \ 208 data_tank.cc \ 209 world_entity.cc \ 210 vector.cc \ 211 camera.cc \ 212 command_node.cc \ 213 ini_parser.cc \ 214 keynames.cc \ 215 track.cc \ 216 base_entity.cc \ 217 game_loader.cc \ 218 campaign.cc \ 219 story_entity.cc \ 220 environment.cc \ 221 importer/object.cc \ 222 importer/array.cc \ 223 importer/material.cc \ 224 list.cc 225 226 noinst_HEADERS = ability.h \ 227 data_tank.h \ 228 collision.h \ 229 npc.h \ 230 stdincl.h \ 231 ai.h \ 232 environment.h \ 233 orxonox.h \ 234 synchronisable.h \ 235 base_entity.h \ 236 error.h \ 237 player.h \ 238 track.h \ 239 camera.h \ 240 ini_parser.h \ 241 power_up.h \ 242 vector.h \ 243 keynames.h \ 244 proto_class.h \ 245 world.h \ 246 command_node.h \ 247 list.h \ 248 shoot_laser.h \ 249 world_entity.h \ 250 coordinates.h \ 251 message_structures.h \ 252 shoot_rocket.h \ 253 list_template.h \ 254 story_entity.h \ 255 story_def.h \ 256 game_loader.h \ 257 campaign.h 258 259 EXTRA_DIST = orxonox.conf 260 @HAVE_GTK2_FALSE@GTK_PROGS = 261 262 ### GTK_RELATED 263 @HAVE_GTK2_TRUE@GTK_PROGS = console 264 SUBDIRS = . \ 265 importer \ 266 gui \ 267 $(GTK_PROGS) 268 269 all: all-recursive 174 270 175 271 .SUFFIXES: … … 184 280 esac; \ 185 281 done; \ 186 echo ' cd $(top_srcdir) && $(AUTOMAKE) -- gnusrc/Makefile'; \282 echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/Makefile'; \ 187 283 cd $(top_srcdir) && \ 188 $(AUTOMAKE) -- gnusrc/Makefile284 $(AUTOMAKE) --foreign src/Makefile 189 285 .PRECIOUS: Makefile 190 286 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status … … 206 302 install-binPROGRAMS: $(bin_PROGRAMS) 207 303 @$(NORMAL_INSTALL) 208 $(mkdir_p) $(DESTDIR)$(bindir)304 test -z "$(bindir)" || $(mkdir_p) "$(DESTDIR)$(bindir)" 209 305 @list='$(bin_PROGRAMS)'; for p in $$list; do \ 210 306 p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \ … … 212 308 ; then \ 213 309 f=`echo "$$p1" | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'`; \ 214 echo " $(INSTALL_PROGRAM_ENV) $(binPROGRAMS_INSTALL) $$p $(DESTDIR)$(bindir)/$$f"; \215 $(INSTALL_PROGRAM_ENV) $(binPROGRAMS_INSTALL) $$p $(DESTDIR)$(bindir)/$$f|| exit 1; \310 echo " $(INSTALL_PROGRAM_ENV) $(binPROGRAMS_INSTALL) '$$p' '$(DESTDIR)$(bindir)/$$f'"; \ 311 $(INSTALL_PROGRAM_ENV) $(binPROGRAMS_INSTALL) "$$p" "$(DESTDIR)$(bindir)/$$f" || exit 1; \ 216 312 else :; fi; \ 217 313 done … … 221 317 @list='$(bin_PROGRAMS)'; for p in $$list; do \ 222 318 f=`echo "$$p" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \ 223 echo " rm -f $(DESTDIR)$(bindir)/$$f"; \224 rm -f $(DESTDIR)$(bindir)/$$f; \319 echo " rm -f '$(DESTDIR)$(bindir)/$$f'"; \ 320 rm -f "$(DESTDIR)$(bindir)/$$f"; \ 225 321 done 226 322 … … 240 336 -rm -f *.tab.c 241 337 338 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/array.Po@am__quote@ 242 339 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/base_entity.Po@am__quote@ 243 340 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/camera.Po@am__quote@ … … 246 343 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/command_node.Po@am__quote@ 247 344 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/data_tank.Po@am__quote@ 345 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/environment.Po@am__quote@ 248 346 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/game_loader.Po@am__quote@ 249 347 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ini_parser.Po@am__quote@ 250 348 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/keynames.Po@am__quote@ 349 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/list.Po@am__quote@ 350 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/material.Po@am__quote@ 351 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/object.Po@am__quote@ 251 352 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/orxonox.Po@am__quote@ 252 353 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/player.Po@am__quote@ … … 274 375 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 275 376 @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` 377 378 object.o: importer/object.cc 379 @am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT object.o -MD -MP -MF "$(DEPDIR)/object.Tpo" -c -o object.o `test -f 'importer/object.cc' || echo '$(srcdir)/'`importer/object.cc; \ 380 @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/object.Tpo" "$(DEPDIR)/object.Po"; else rm -f "$(DEPDIR)/object.Tpo"; exit 1; fi 381 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='importer/object.cc' object='object.o' libtool=no @AMDEPBACKSLASH@ 382 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ depfile='$(DEPDIR)/object.Po' tmpdepfile='$(DEPDIR)/object.TPo' @AMDEPBACKSLASH@ 383 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 384 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o object.o `test -f 'importer/object.cc' || echo '$(srcdir)/'`importer/object.cc 385 386 object.obj: importer/object.cc 387 @am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT object.obj -MD -MP -MF "$(DEPDIR)/object.Tpo" -c -o object.obj `if test -f 'importer/object.cc'; then $(CYGPATH_W) 'importer/object.cc'; else $(CYGPATH_W) '$(srcdir)/importer/object.cc'; fi`; \ 388 @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/object.Tpo" "$(DEPDIR)/object.Po"; else rm -f "$(DEPDIR)/object.Tpo"; exit 1; fi 389 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='importer/object.cc' object='object.obj' libtool=no @AMDEPBACKSLASH@ 390 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ depfile='$(DEPDIR)/object.Po' tmpdepfile='$(DEPDIR)/object.TPo' @AMDEPBACKSLASH@ 391 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 392 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o object.obj `if test -f 'importer/object.cc'; then $(CYGPATH_W) 'importer/object.cc'; else $(CYGPATH_W) '$(srcdir)/importer/object.cc'; fi` 393 394 array.o: importer/array.cc 395 @am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT array.o -MD -MP -MF "$(DEPDIR)/array.Tpo" -c -o array.o `test -f 'importer/array.cc' || echo '$(srcdir)/'`importer/array.cc; \ 396 @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/array.Tpo" "$(DEPDIR)/array.Po"; else rm -f "$(DEPDIR)/array.Tpo"; exit 1; fi 397 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='importer/array.cc' object='array.o' libtool=no @AMDEPBACKSLASH@ 398 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ depfile='$(DEPDIR)/array.Po' tmpdepfile='$(DEPDIR)/array.TPo' @AMDEPBACKSLASH@ 399 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 400 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o array.o `test -f 'importer/array.cc' || echo '$(srcdir)/'`importer/array.cc 401 402 array.obj: importer/array.cc 403 @am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT array.obj -MD -MP -MF "$(DEPDIR)/array.Tpo" -c -o array.obj `if test -f 'importer/array.cc'; then $(CYGPATH_W) 'importer/array.cc'; else $(CYGPATH_W) '$(srcdir)/importer/array.cc'; fi`; \ 404 @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/array.Tpo" "$(DEPDIR)/array.Po"; else rm -f "$(DEPDIR)/array.Tpo"; exit 1; fi 405 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='importer/array.cc' object='array.obj' libtool=no @AMDEPBACKSLASH@ 406 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ depfile='$(DEPDIR)/array.Po' tmpdepfile='$(DEPDIR)/array.TPo' @AMDEPBACKSLASH@ 407 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 408 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o array.obj `if test -f 'importer/array.cc'; then $(CYGPATH_W) 'importer/array.cc'; else $(CYGPATH_W) '$(srcdir)/importer/array.cc'; fi` 409 410 material.o: importer/material.cc 411 @am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT material.o -MD -MP -MF "$(DEPDIR)/material.Tpo" -c -o material.o `test -f 'importer/material.cc' || echo '$(srcdir)/'`importer/material.cc; \ 412 @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/material.Tpo" "$(DEPDIR)/material.Po"; else rm -f "$(DEPDIR)/material.Tpo"; exit 1; fi 413 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='importer/material.cc' object='material.o' libtool=no @AMDEPBACKSLASH@ 414 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ depfile='$(DEPDIR)/material.Po' tmpdepfile='$(DEPDIR)/material.TPo' @AMDEPBACKSLASH@ 415 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 416 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o material.o `test -f 'importer/material.cc' || echo '$(srcdir)/'`importer/material.cc 417 418 material.obj: importer/material.cc 419 @am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT material.obj -MD -MP -MF "$(DEPDIR)/material.Tpo" -c -o material.obj `if test -f 'importer/material.cc'; then $(CYGPATH_W) 'importer/material.cc'; else $(CYGPATH_W) '$(srcdir)/importer/material.cc'; fi`; \ 420 @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/material.Tpo" "$(DEPDIR)/material.Po"; else rm -f "$(DEPDIR)/material.Tpo"; exit 1; fi 421 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='importer/material.cc' object='material.obj' libtool=no @AMDEPBACKSLASH@ 422 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ depfile='$(DEPDIR)/material.Po' tmpdepfile='$(DEPDIR)/material.TPo' @AMDEPBACKSLASH@ 423 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 424 @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o material.obj `if test -f 'importer/material.cc'; then $(CYGPATH_W) 'importer/material.cc'; else $(CYGPATH_W) '$(srcdir)/importer/material.cc'; fi` 276 425 uninstall-info-am: 426 427 # This directory's subdirectories are mostly independent; you can cd 428 # into them and run `make' without going through this Makefile. 429 # To change the values of `make' variables: instead of editing Makefiles, 430 # (1) if the variable is set in `config.status', edit `config.status' 431 # (which will cause the Makefiles to be regenerated when you run `make'); 432 # (2) otherwise, pass the desired values on the `make' command line. 433 $(RECURSIVE_TARGETS): 434 @set fnord $$MAKEFLAGS; amf=$$2; \ 435 dot_seen=no; \ 436 target=`echo $@ | sed s/-recursive//`; \ 437 list='$(SUBDIRS)'; for subdir in $$list; do \ 438 echo "Making $$target in $$subdir"; \ 439 if test "$$subdir" = "."; then \ 440 dot_seen=yes; \ 441 local_target="$$target-am"; \ 442 else \ 443 local_target="$$target"; \ 444 fi; \ 445 (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ 446 || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ 447 done; \ 448 if test "$$dot_seen" = "no"; then \ 449 $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ 450 fi; test -z "$$fail" 451 452 mostlyclean-recursive clean-recursive distclean-recursive \ 453 maintainer-clean-recursive: 454 @set fnord $$MAKEFLAGS; amf=$$2; \ 455 dot_seen=no; \ 456 case "$@" in \ 457 distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ 458 *) list='$(SUBDIRS)' ;; \ 459 esac; \ 460 rev=''; for subdir in $$list; do \ 461 if test "$$subdir" = "."; then :; else \ 462 rev="$$subdir $$rev"; \ 463 fi; \ 464 done; \ 465 rev="$$rev ."; \ 466 target=`echo $@ | sed s/-recursive//`; \ 467 for subdir in $$rev; do \ 468 echo "Making $$target in $$subdir"; \ 469 if test "$$subdir" = "."; then \ 470 local_target="$$target-am"; \ 471 else \ 472 local_target="$$target"; \ 473 fi; \ 474 (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ 475 || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ 476 done && test -z "$$fail" 477 tags-recursive: 478 list='$(SUBDIRS)'; for subdir in $$list; do \ 479 test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ 480 done 481 ctags-recursive: 482 list='$(SUBDIRS)'; for subdir in $$list; do \ 483 test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ 484 done 277 485 278 486 ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) … … 286 494 tags: TAGS 287 495 288 TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \496 TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ 289 497 $(TAGS_FILES) $(LISP) 290 498 tags=; \ 291 499 here=`pwd`; \ 500 if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ 501 include_option=--etags-include; \ 502 empty_fix=.; \ 503 else \ 504 include_option=--include; \ 505 empty_fix=; \ 506 fi; \ 507 list='$(SUBDIRS)'; for subdir in $$list; do \ 508 if test "$$subdir" = .; then :; else \ 509 test ! -f $$subdir/TAGS || \ 510 tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \ 511 fi; \ 512 done; \ 292 513 list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ 293 514 unique=`for i in $$list; do \ … … 296 517 $(AWK) ' { files[$$0] = 1; } \ 297 518 END { for (i in files) print i; }'`; \ 298 test -z "$(ETAGS_ARGS)$$tags$$unique" \ 299 || $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ 300 $$tags $$unique 519 if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ 520 test -n "$$unique" || unique=$$empty_fix; \ 521 $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ 522 $$tags $$unique; \ 523 fi 301 524 ctags: CTAGS 302 CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \525 CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ 303 526 $(TAGS_FILES) $(LISP) 304 527 tags=; \ … … 349 572 fi; \ 350 573 done 574 list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ 575 if test "$$subdir" = .; then :; else \ 576 test -d "$(distdir)/$$subdir" \ 577 || mkdir "$(distdir)/$$subdir" \ 578 || exit 1; \ 579 (cd $$subdir && \ 580 $(MAKE) $(AM_MAKEFLAGS) \ 581 top_distdir="../$(top_distdir)" \ 582 distdir="../$(distdir)/$$subdir" \ 583 distdir) \ 584 || exit 1; \ 585 fi; \ 586 done 351 587 check-am: all-am 352 check: check- am588 check: check-recursive 353 589 all-am: Makefile $(PROGRAMS) $(HEADERS) 354 installdirs: 355 $(mkdir_p) $(DESTDIR)$(bindir) 356 install: install-am 357 install-exec: install-exec-am 358 install-data: install-data-am 359 uninstall: uninstall-am 590 installdirs: installdirs-recursive 591 installdirs-am: 592 for dir in "$(DESTDIR)$(bindir)"; do \ 593 test -z "$$dir" || $(mkdir_p) "$$dir"; \ 594 done 595 install: install-recursive 596 install-exec: install-exec-recursive 597 install-data: install-data-recursive 598 uninstall: uninstall-recursive 360 599 361 600 install-am: all-am 362 601 @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am 363 602 364 installcheck: installcheck- am603 installcheck: installcheck-recursive 365 604 install-strip: 366 605 $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ … … 378 617 @echo "This command is intended for maintainers to use" 379 618 @echo "it deletes files that may require special tools to rebuild." 380 clean: clean- am619 clean: clean-recursive 381 620 382 621 clean-am: clean-binPROGRAMS clean-generic mostlyclean-am 383 622 384 distclean: distclean- am623 distclean: distclean-recursive 385 624 -rm -rf ./$(DEPDIR) 386 625 -rm -f Makefile … … 388 627 distclean-tags 389 628 390 dvi: dvi- am629 dvi: dvi-recursive 391 630 392 631 dvi-am: 393 632 394 html: html- am395 396 info: info- am633 html: html-recursive 634 635 info: info-recursive 397 636 398 637 info-am: … … 402 641 install-exec-am: install-binPROGRAMS 403 642 404 install-info: install-info- am643 install-info: install-info-recursive 405 644 406 645 install-man: … … 408 647 installcheck-am: 409 648 410 maintainer-clean: maintainer-clean- am649 maintainer-clean: maintainer-clean-recursive 411 650 -rm -rf ./$(DEPDIR) 412 651 -rm -f Makefile 413 652 maintainer-clean-am: distclean-am maintainer-clean-generic 414 653 415 mostlyclean: mostlyclean- am654 mostlyclean: mostlyclean-recursive 416 655 417 656 mostlyclean-am: mostlyclean-compile mostlyclean-generic 418 657 419 pdf: pdf- am658 pdf: pdf-recursive 420 659 421 660 pdf-am: 422 661 423 ps: ps- am662 ps: ps-recursive 424 663 425 664 ps-am: … … 427 666 uninstall-am: uninstall-binPROGRAMS uninstall-info-am 428 667 429 .PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \ 430 clean-generic ctags distclean distclean-compile \ 431 distclean-generic distclean-tags distdir dvi dvi-am html \ 668 uninstall-info: uninstall-info-recursive 669 670 .PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am check check-am \ 671 clean clean-binPROGRAMS clean-generic clean-recursive ctags \ 672 ctags-recursive distclean distclean-compile distclean-generic \ 673 distclean-recursive distclean-tags distdir dvi dvi-am html \ 432 674 html-am info info-am install install-am install-binPROGRAMS \ 433 675 install-data install-data-am install-exec install-exec-am \ 434 676 install-info install-info-am install-man install-strip \ 435 installcheck installcheck-am installdirs maintainer-clean \ 436 maintainer-clean-generic mostlyclean mostlyclean-compile \ 437 mostlyclean-generic pdf pdf-am ps ps-am tags uninstall \ 438 uninstall-am uninstall-binPROGRAMS uninstall-info-am 439 440 441 # uncomment the following if bencoder requires the math library 677 installcheck installcheck-am installdirs installdirs-am \ 678 maintainer-clean maintainer-clean-generic \ 679 maintainer-clean-recursive mostlyclean mostlyclean-compile \ 680 mostlyclean-generic mostlyclean-recursive pdf pdf-am ps ps-am \ 681 tags tags-recursive uninstall uninstall-am \ 682 uninstall-binPROGRAMS uninstall-info-am 683 684 685 # uncomment the following if orxonox requires the math library 442 686 #orxonox_LDADD=-lm 443 687 -
orxonox/branches/sound/src/ability.h
r2043 r3238 1 1 2 #ifndef ABILITY_H3 #define ABILITY_H2 #ifndef _ABILITY_H 3 #define _ABILITY_H 4 4 5 5 #include "data_tank.h" … … 14 14 }; 15 15 16 #endif 16 #endif /* _ABILITY_H */ -
orxonox/branches/sound/src/ai.h
r1956 r3238 1 1 2 #ifndef AI_H3 #define AI_H2 #ifndef _AI_H 3 #define _AI_H 4 4 5 5 #include "data_tank.h" … … 13 13 }; 14 14 15 #endif 15 #endif /* _AI_H */ -
orxonox/branches/sound/src/base_entity.h
r2551 r3238 1 1 2 #ifndef BASE_ENTITY_H3 #define BASE_ENTITY_H2 #ifndef _BASE_ENTITY_H 3 #define _BASE_ENTITY_H 4 4 5 5 #include "stdincl.h" … … 14 14 }; 15 15 16 #endif 16 #endif /* _BASE_ENTITY_H */ -
orxonox/branches/sound/src/camera.cc
r2636 r3238 30 30 { 31 31 this->world = world; 32 bound = NULL;32 this->bound = NULL; 33 33 /* give it some physical live */ 34 m = 10;35 a = new Vector(0.0, 0.0, 0.0);36 v = new Vector(0.0, 0.0, 0.0);37 fs = new Vector(0.0, 0.0, 0.0);38 cameraMode = NORMAL;39 deltaTime = 3000.0;40 cameraOffset = 1.0;41 cameraOffsetZ = 10.0;42 t = 0.0;43 44 actual_place.r.x = 0.0;45 actual_place.r.y = 10.0;46 actual_place.r.z = -5.0;34 this->m = 10; 35 this->a = new Vector(0.0, 0.0, 0.0); 36 this->v = new Vector(0.0, 0.0, 0.0); 37 this->fs = new Vector(0.0, 0.0, 0.0); 38 this->cameraMode = NORMAL; 39 this->deltaTime = 3000.0; 40 this->cameraOffset = 1.0; 41 this->cameraOffsetZ = 10.0; 42 this->t = 0.0; 43 44 this->actualPlace.r.x = 0.0; 45 this->actualPlace.r.y = 10.0; 46 this->actualPlace.r.z = -5.0; 47 47 } 48 48 … … 61 61 as smooth camera movement or swaying). 62 62 */ 63 void Camera::time _slice (Uint32 deltaT)64 { 65 if( t <= deltaTime)66 {t += deltaT;}63 void Camera::timeSlice (Uint32 deltaT) 64 { 65 if( this->t <= deltaTime) 66 {this->t += deltaT;} 67 67 //printf("time is: t=%f\n", t ); 68 update _desired_place();69 jump 68 updateDesiredPlace(); 69 jump(NULL); 70 70 } 71 71 … … 76 76 bound entity's position on the track. 77 77 */ 78 void Camera::update _desired_place ()78 void Camera::updateDesiredPlace () 79 79 { 80 80 switch(cameraMode) … … 89 89 if( bound != NULL) 90 90 { 91 bound->get _lookat (&lookat);92 orx->get _world()->calc_camera_pos (&lookat, &plFocus);91 bound->getLookat (&lookat); 92 orx->getWorld()->calcCameraPos (&lookat, &plFocus); 93 93 Quaternion *fr; 94 94 if(t < 20.0) … … 101 101 102 102 Vector op(1.0, 0.0, 0.0); 103 float angle = angle _deg(op, *start);103 float angle = angleDeg(op, *start); 104 104 printf("angle is: %f\n", angle); 105 105 … … 144 144 145 145 Vector ursp(0.0, 0.0, 0.0); 146 desired _place.r = /*plFocus.r -*/ ursp - res->apply(r);147 148 printf("desired place is: %f, %f, %f\n", desired _place.r.x, desired_place.r.y, desired_place.r.z);146 desiredPlace.r = /*plFocus.r -*/ ursp - res->apply(r); 147 148 printf("desired place is: %f, %f, %f\n", desiredPlace.r.x, desiredPlace.r.y, desiredPlace.r.z); 149 149 //plLastBPlace = *bound->get_placement(); 150 150 } … … 153 153 case SMOTH_FOLLOW: 154 154 { 155 Placement *plBound = bound->get _placement();155 Placement *plBound = bound->getPlacement(); 156 156 Location lcBound; 157 157 if(bound != null) 158 158 { 159 bound->get _lookat(&lcBound);159 bound->getLookat(&lcBound); 160 160 Vector vDirection(0.0, 0.0, 1.0); 161 161 vDirection = plBound->w.apply(vDirection); 162 desired _place.r = (vDirection * ((lcBound.dist-10.0)/* / l*/)) + Vector(0,0,5.0);162 desiredPlace.r = (vDirection * ((lcBound.dist-10.0)/* / l*/)) + Vector(0,0,5.0); 163 163 } 164 164 break; … … 169 169 if(bound != null) 170 170 { 171 Placement *plBound = bound->get _placement();171 Placement *plBound = bound->getPlacement(); 172 172 Vector vDirection(0.0, 0.0, 1.0); 173 173 Vector eclipticOffset(0.0, 0.0, 5.0); 174 174 vDirection = plBound->w.apply(vDirection); 175 desired _place.r = plBound->r - vDirection*10 + eclipticOffset;175 desiredPlace.r = plBound->r - vDirection*10 + eclipticOffset; 176 176 } 177 177 break; … … 182 182 if( bound != NULL && world != NULL ) 183 183 { 184 bound->get _lookat (&lookat);185 world->calc _camera_pos (&lookat, &desired_place);184 bound->getLookat (&lookat); 185 world->calcCameraPos (&lookat, &desiredPlace); 186 186 } 187 187 else 188 188 { 189 desired _place.r = Vector (0,0,0);190 desired _place.w = Quaternion ();189 desiredPlace.r = Vector (0,0,0); 190 desiredPlace.w = Quaternion (); 191 191 } 192 192 break; … … 206 206 // view 207 207 // TO DO: implement options for frustum generation 208 glFrustum(-1.0, 1.0, -1.0, 1.0, 1.5, 250.0); 208 //glFrustum(-1.0, 1.0, -1.0, 1.0, 1.5, 250.0); 209 gluPerspective(60, 1.2f, 0.1, 250); 210 209 211 //Vector up(0,0,1); 210 212 //Vector dir(1,0,0); … … 235 237 // rotation 236 238 float matrix[4][4]; 237 actual _place.w.conjugate().matrix (matrix);239 actualPlace.w.conjugate().matrix (matrix); 238 240 /* orientation and */ 239 241 glMultMatrixf ((float*)matrix); 240 242 /* translation */ 241 glTranslatef (-actual _place.r.x, -actual_place.r.y,- actual_place.r.z);242 243 glTranslatef (-actualPlace.r.x, -actualPlace.r.y,- actualPlace.r.z); 244 //Placement *plBound = bound->get_placement(); 243 245 244 246 // ===== second camera control calculation option 245 247 /* 246 248 gluLookAt(actual_place.r.x, actual_place.r.y, actual_place.r.z, 247 249 plBound->r.x, plBound->r.y, plBound->r.z, 248 250 0.0, 0.0, 1.0); … … 263 265 if( plc == NULL) 264 266 { 265 actual _place = desired_place;267 actualPlace = desiredPlace; 266 268 //printf("Camera|jump: camer@ %f, %f, %f\n\n", actual_place.r.x, actual_place.r.y, actual_place.r.z); 267 269 } 268 270 else 269 271 { 270 desired _place = *plc;271 actual _place = *plc;272 desiredPlace = *plc; 273 actualPlace = *plc; 272 274 } 273 275 } … … 277 279 \param entity: The enitity to bind the camera to 278 280 279 280 281 281 This sets the focus of the camera to the given entity. This means that it will use the given WorldEntity's 282 Location and get_lookat() to determine the viewpoint the camera will render from. 283 Note that you cannot bind a camera to a free entity. 282 284 */ 283 285 void Camera::bind (WorldEntity* entity) … … 285 287 if( entity != NULL) 286 288 { 287 if( entity->isFree 289 if( entity->isFree()) printf("Cannot bind camera to free entity"); 288 290 else 289 291 { 290 bound = entity;292 this->bound = entity; 291 293 } 292 294 } … … 298 300 this->world = world; 299 301 } 302 303 304 /** 305 \brief destroy, reset the camera so that it doesn't perform anything anymore 306 307 */ 308 void Camera::destroy() 309 { 310 this->bound = NULL; 311 this->world = NULL; 312 } -
orxonox/branches/sound/src/camera.h
r2636 r3238 4 4 */ 5 5 6 #ifndef CAMERA_H7 #define CAMERA_H6 #ifndef _CAMERA_H 7 #define _CAMERA_H 8 8 9 9 #include "stdincl.h" … … 26 26 private: 27 27 WorldEntity* bound; //!< the WorldEntity the Camera is bound to 28 Placement actual _place; //!< the Camera's current position29 Placement desired _place; //!< where the Camera should be according to calculations28 Placement actualPlace; //!< the Camera's current position 29 Placement desiredPlace; //!< where the Camera should be according to calculations 30 30 World* world; 31 31 … … 54 54 CAMERA_MODE cameraMode; //!< saves the camera mode: how the camera follows the entity 55 55 56 void update _desired_place ();56 void updateDesiredPlace (); 57 57 58 58 public: … … 60 60 ~Camera (); 61 61 62 void time _slice (Uint32 deltaT);62 void timeSlice (Uint32 deltaT); 63 63 void apply (); 64 64 void bind (WorldEntity* entity); 65 65 void jump (Placement* plc); 66 void destroy(); 66 67 67 68 void setWorld(World* world); … … 69 70 }; 70 71 71 #endif 72 #endif /* _CAMERA_H */ -
orxonox/branches/sound/src/campaign.cc
r2636 r3238 27 27 Campaign::Campaign () 28 28 { 29 this->entities = new List <StoryEntity>();29 this->entities = new ListTemplate<StoryEntity>(); 30 30 this->isInit = false; 31 31 } … … 34 34 35 35 36 Error Campaign::init()36 ErrorMessage Campaign::init() 37 37 { 38 38 this->isInit = true; … … 48 48 want to queue up in the campaign. 49 49 */ 50 void Campaign::addEntity(StoryEntity* se, Uint32storyID)50 void Campaign::addEntity(StoryEntity* se, int storyID) 51 51 { 52 52 se->setStoryID(storyID); … … 60 60 61 61 62 void Campaign::removeEntity( Uint32storyID)62 void Campaign::removeEntity(int storyID) 63 63 { 64 64 this->removeEntity(this->getStoryEntity(storyID)); … … 73 73 74 74 75 Error Campaign::start()75 ErrorMessage Campaign::start() 76 76 { 77 77 this->start(0); 78 78 } 79 79 80 Error Campaign::start(Uint32storyID = 0)80 ErrorMessage Campaign::start(int storyID = 0) 81 81 { 82 82 printf("World::start() - starting new StoryEntity Nr:%i\n", storyID); 83 Error errorCode;84 if( !this->isInit) return errorCode;85 if( storyID == WORLD_ID_GAMEEND) return errorCode;83 ErrorMessage errorCode; 84 if( !this->isInit) return errorCode; 85 if( storyID == WORLD_ID_GAMEEND) return errorCode; 86 86 this->running = true; 87 87 StoryEntity* se = this->getStoryEntity(storyID); 88 while(se != NULL && this->running) 88 this->currentEntity = se; 89 while( se != NULL && this->running) 89 90 { 90 se = this->getStoryEntity(storyID); 91 this->currentEntity = se; 92 93 se->displayEntityScreen(); 91 se->displayLoadScreen(); 94 92 se->load(); 95 93 se->init(); 96 se->release EntityScreen();94 se->releaseLoadScreen(); 97 95 se->start(); 96 se->destroy(); 97 98 delete se; 98 99 99 100 int nextWorldID = se->getNextStoryID(); 100 if(nextWorldID == WORLD_ID_GAMEEND) return errorCode;101 //printf("Campaing::start() - got nextWorldID = %i\n", nextWorldID); 101 102 se = this->getStoryEntity(nextWorldID); 102 if(se == NULL) 103 printf("Campaign::start() - ERROR: world it not found, oh oh..."); 103 this->currentEntity = se; 104 if( ( nextWorldID == WORLD_ID_GAMEEND) ||( se == NULL) ) 105 { 106 printf("Campaign::start() - quitting campaing story loop\n"); 107 if(se != NULL) 108 delete se; 109 return errorCode; 110 } 111 104 112 } 105 113 } 106 114 107 Error Campaign::stop()115 ErrorMessage Campaign::stop() 108 116 { 109 117 this->running = false; … … 111 119 { 112 120 this->currentEntity->stop(); 113 delete this->currentEntity;114 this->currentEntity = NULL;121 //delete this->currentEntity; 122 //this->currentEntity = NULL; 115 123 } 116 124 } 117 125 118 Error Campaign::pause()126 ErrorMessage Campaign::pause() 119 127 { 120 128 if(this->currentEntity != NULL) … … 123 131 124 132 125 Error Campaign::resume()133 ErrorMessage Campaign::resume() 126 134 { 127 135 if(this->currentEntity != NULL) … … 130 138 131 139 140 void Campaign::destroy() 141 { 142 if(this->currentEntity != NULL) 143 { 144 this->currentEntity->destroy(); 145 delete this->currentEntity; 146 this->currentEntity = NULL; 147 } 148 } 149 150 /* 151 \brief this changes to the next level 152 */ 132 153 void Campaign::nextLevel() 133 154 { 134 printf("Campaign|nextLevel\n"); 135 int nextID = this->currentEntity->getNextStoryID(); 136 this->stop(); 137 this->start(nextID); 155 printf("Campaign:nextLevel()\n"); 156 //int nextID = this->currentEntity->getNextStoryID(); 157 //this->stop(); 158 //this->start(nextID); 159 this->currentEntity->stop(); 138 160 } 139 161 162 /* 163 \brief change to the previous level - not implemented 164 165 this propably useless 166 */ 140 167 void Campaign::previousLevel() 141 168 {} 142 169 143 170 144 StoryEntity* Campaign::getStoryEntity(Uint32 storyID) 171 /* 172 \brief lookup a entity with a given id 173 \param story id to be lookuped 174 \returns the entity found or NULL if search ended without match 175 */ 176 StoryEntity* Campaign::getStoryEntity(int storyID) 145 177 { 146 List<StoryEntity>* l; 147 StoryEntity* entity; 148 l = this->entities->get_next(); 178 //printf("Campaing::getStoryEntity(%i) - getting next Entity\n", storyID); 179 if( storyID == WORLD_ID_GAMEEND) 180 return NULL; 181 ListTemplate<StoryEntity>* l; 182 StoryEntity* entity = NULL; 183 l = this->entities->getNext(); 149 184 while( l != NULL) 150 185 { 151 entity = l->get_object(); 152 l = l->get_next(); 153 if(entity->getStoryID() == storyID) 154 return entity; 186 entity = l->getObject(); 187 l = l->getNext(); 188 int id = entity->getStoryID(); 189 //printf("Campaing::getStoryEntity() - now looping, found entity nr=%i\n", id); 190 if(id == storyID) 191 { 192 //printf("Campaing::getStoryEntity() - yea, this is what we where looking for: %id\n"); 193 return entity; 194 } 155 195 } 156 196 return NULL; -
orxonox/branches/sound/src/campaign.h
r2636 r3238 1 1 2 #ifndef CAMPAIGN_H3 #define CAMPAIGN_H2 #ifndef _CAMPAIGN_H 3 #define _CAMPAIGN_H 4 4 5 5 #include "stdincl.h" … … 17 17 StoryEntity* currentEntity; 18 18 19 virtual Error init();20 virtual Error start();21 virtual Error start(Uint32storyID);22 virtual Error stop();23 virtual Error pause();24 virtual Error resume();19 virtual ErrorMessage init(); 20 virtual ErrorMessage start(); 21 virtual ErrorMessage start(int storyID); 22 virtual ErrorMessage stop(); 23 virtual ErrorMessage pause(); 24 virtual ErrorMessage resume(); 25 25 26 void addEntity(StoryEntity* se, Uint32 storyID); 26 virtual void destroy(); 27 28 void addEntity(StoryEntity* se, int storyID); 27 29 void addEntity(StoryEntity* se); 28 void removeEntity( Uint32storyID);30 void removeEntity(int storyID); 29 31 void removeEntity(StoryEntity* se); 30 32 … … 33 35 34 36 private: 35 List <StoryEntity>* entities;37 ListTemplate<StoryEntity>* entities; 36 38 bool running; 37 39 38 StoryEntity* getStoryEntity( Uint32storyID);40 StoryEntity* getStoryEntity(int storyID); 39 41 }; 40 42 41 #endif 43 #endif /* _CAMPAIGN_H */ -
orxonox/branches/sound/src/collision.cc
r2190 r3238 28 28 CollisionCluster::CollisionCluster (float rad = 1.0, Vector mid = Vector(0,0,0)) 29 29 { 30 root = (CC _Tree*) malloc( sizeof( CC_Tree));30 root = (CCTree*) malloc( sizeof( CCTree)); 31 31 root->n = 0; 32 32 root->data.ID = 0; … … 62 62 } 63 63 64 root = load _CC_Tree (stream);64 root = loadCCTree (stream); 65 65 fclose (stream); 66 66 } … … 71 71 CollisionCluster::~CollisionCluster () 72 72 { 73 free _CC_Tree(root);73 freeCCTree(root); 74 74 } 75 75 … … 85 85 stream = fopen( filename, "wb"); 86 86 if( stream == NULL) return -1; 87 r = save _CC_Tree(root, stream);87 r = saveCCTree(root, stream); 88 88 fclose (stream); 89 89 return r; … … 99 99 \return true on collision, false otherwise. If true is returned, the flag in ahitflags that symbolises the hit subsphere is set, and impactpoint is set to the Location where the intersection occured 100 100 */ 101 bool check _trace (const Placement* pa, const CollisionCluster* a, unsigned long* ahitflags, const Line* trace, Vector* impactpoint)102 { 103 CC _Tree* t;101 bool checkTrace (const Placement* pa, const CollisionCluster* a, unsigned long* ahitflags, const Line* trace, Vector* impactpoint) 102 { 103 CCTree* t; 104 104 if( (t = a->root) == NULL) return false; 105 105 106 return cc tree_trace( pa, t, ahitflags, trace, impactpoint);106 return ccTreeTrace( pa, t, ahitflags, trace, impactpoint); 107 107 } 108 108 … … 118 118 If true is returned, all flags in ahitflags and bhitflags that symbolize intersecting subspheres in the respective CollisionCluster are set 119 119 */ 120 bool check _collision (const Placement* pa, const CollisionCluster* a, unsigned long* ahitflags, const Placement* pb, const CollisionCluster* b, unsigned long* bhitflags)121 { 122 CC _Tree* ta, *tb;120 bool checkCollision (const Placement* pa, const CollisionCluster* a, unsigned long* ahitflags, const Placement* pb, const CollisionCluster* b, unsigned long* bhitflags) 121 { 122 CCTree* ta, *tb; 123 123 if( (ta = a->root) == NULL) return false; 124 124 if( (tb = b->root) == NULL) return false; 125 125 126 return cc tree_iterate(pa, ta, ahitflags, pb, tb, bhitflags);126 return ccTreeIterate(pa, ta, ahitflags, pb, tb, bhitflags); 127 127 } 128 128 … … 135 135 \return true on intersection, false otherwise 136 136 */ 137 bool sphere _sphere_collision( Vector m1, float r1, Vector m2, float r2)137 bool sphereSphereCollision( Vector m1, float r1, Vector m2, float r2) 138 138 { 139 139 if ((m1-m2).len() < r1+r2) return true; … … 149 149 \return true on intersection, false otherwise. If true is returned, impactpoint is set to the loaction where the intersection occured 150 150 */ 151 bool trace _sphere_collision( Vector m, float r, const Line* l, Vector* impactpoint)151 bool traceSphereCollision( Vector m, float r, const Line* l, Vector* impactpoint) 152 152 { 153 153 float A, B, C, D, t[2]; … … 176 176 } 177 177 178 bool cc tree_iterate(const Placement* pa, CC_Tree* ta, unsigned long* ahitflags, const Placement* pb, CC_Tree* tb, unsigned long* bhitflags)178 bool ccTreeIterate(const Placement* pa, CCTree* ta, unsigned long* ahitflags, const Placement* pb, CCTree* tb, unsigned long* bhitflags) 179 179 { 180 180 bool r = false; … … 182 182 Vector mra = pa->r + pa->w.apply(ta->m); 183 183 Vector mrb = pb->r + pb->w.apply(tb->m); 184 CC _Tree* use_a, *use_b;185 186 if( use _a == NULL || use_b== NULL) return false;187 188 if( sphere _sphere_collision( mra, ta->r, mrb, tb->r))184 CCTree* useA, *useB; 185 186 if( useA == NULL || useB == NULL) return false; 187 188 if( sphereSphereCollision( mra, ta->r, mrb, tb->r)) 189 189 { 190 190 if( ta->n == 0 && tb->n == 0) … … 196 196 for( ia = 0; ia < ta->n || ta->n == 0; ia++) 197 197 { 198 if( ta->n == 0) use _a= ta;199 else use _a= ta->data.b[ia];198 if( ta->n == 0) useA = ta; 199 else useA = ta->data.b[ia]; 200 200 for( ib = 0; ib < tb->n || ta->n == 0; ib++) 201 201 { 202 if( ta->n == 0) use _b= ta;203 else use _b= ta->data.b[ib];202 if( ta->n == 0) useB = ta; 203 else useB = ta->data.b[ib]; 204 204 205 r = r || cc tree_iterate( pa, use_a, ahitflags, pb, use_b, bhitflags);205 r = r || ccTreeIterate( pa, useA, ahitflags, pb, useB, bhitflags); 206 206 207 207 if( tb->n == 0) break; … … 233 233 234 234 /** 235 \brief frees the memory allocated in a CC _Tree236 */ 237 void free _CC_Tree( CC_Tree* tree)235 \brief frees the memory allocated in a CCTree 236 */ 237 void freeCCTree( CCTree* tree) 238 238 { 239 239 if (tree == NULL) return; 240 240 for (int i = 0; i < tree->n; i++) 241 241 { 242 free _CC_Tree(tree->data.b[i]);242 freeCCTree(tree->data.b[i]); 243 243 } 244 244 free( tree); … … 246 246 247 247 /** 248 \brief loads a CC _Tree from a stream249 */ 250 CC _Tree* load_CC_Tree (FILE* stream)251 { 252 CC _Tree* tree = NULL;253 CC _Tree** branches = NULL;248 \brief loads a CCTree from a stream 249 */ 250 CCTree* loadCCTree (FILE* stream) 251 { 252 CCTree* tree = NULL; 253 CCTree** branches = NULL; 254 254 float buf[4]; 255 255 unsigned long n; … … 267 267 else 268 268 { 269 branches = (CC _Tree**)malloc( sizeof(CC_Tree*) * n);269 branches = (CCTree**)malloc( sizeof(CCTree*) * n); 270 270 for( int i = 0; i < n; i++) 271 271 { 272 if ((branches[i] = load _CC_Tree (stream)) == NULL)272 if ((branches[i] = loadCCTree (stream)) == NULL) 273 273 { 274 274 for( int j = 0; j < i; j++) 275 275 { 276 free _CC_Tree (branches[j]);277 free 276 freeCCTree (branches[j]); 277 free(branches); 278 278 return NULL; 279 279 } … … 283 283 284 284 // assemble 285 tree = (CC _Tree*) malloc (sizeof(CC_Tree));285 tree = (CCTree*) malloc (sizeof(CCTree)); 286 286 tree->m.x = buf[0]; 287 287 tree->m.y = buf[1]; … … 297 297 298 298 /** 299 \brief saves a CC _Tree to a stream300 */ 301 int save _CC_Tree (CC_Tree* tree, FILE* stream)299 \brief saves a CCTree to a stream 300 */ 301 int saveCCTree (CCTree* tree, FILE* stream) 302 302 { 303 303 float buf[4]; … … 321 321 for( int i = 0; i < tree->n; i++) 322 322 { 323 if ( save _CC_Tree (tree->data.b[i], stream) == -1) return -1;323 if ( saveCCTree (tree->data.b[i], stream) == -1) return -1; 324 324 } 325 325 } … … 329 329 } 330 330 331 bool cc tree_trace( const Placement* p, CC_Tree* t, unsigned long* hitflags, const Line* trace, Vector* impactpoint)331 bool ccTreeTrace( const Placement* p, CCTree* t, unsigned long* hitflags, const Line* trace, Vector* impactpoint) 332 332 { 333 333 bool r = false; 334 334 int i; 335 335 Vector mr = p->r + p->w.apply (t->m); 336 CC _Tree* use_t;336 CCTree* useT; 337 337 Vector* ips; 338 338 unsigned long* hfs; 339 339 340 if( trace _sphere_collision (mr, t->r, trace, impactpoint))340 if( traceSphereCollision (mr, t->r, trace, impactpoint)) 341 341 { 342 342 if( t->n == 0) … … 352 352 for (i = 0; i < t->n; i++) 353 353 { 354 r = r || cc tree_trace (p, t->data.b[i], &(hfs[i]), trace, &(ips[i]));354 r = r || ccTreeTrace (p, t->data.b[i], &(hfs[i]), trace, &(ips[i])); 355 355 } 356 356 if( r) -
orxonox/branches/sound/src/collision.h
r2190 r3238 4 4 */ 5 5 6 #ifndef COLLISION_H7 #define COLLISION_H6 #ifndef _COLLISION_H 7 #define _COLLISION_H 8 8 9 9 #include "vector.h" … … 14 14 15 15 //! Tree structure used by the CollisionCluster 16 typedef struct CC _Tree16 typedef struct CCTree 17 17 { 18 18 unsigned long n; 19 19 union 20 20 { 21 struct CC _Tree** b;21 struct CCTree** b; 22 22 unsigned long ID; 23 23 } data; 24 24 float r; 25 25 Vector m; 26 } CC _Tree;26 } CCTree; 27 27 28 28 //! Basic collision detection class … … 42 42 class CollisionCluster { 43 43 44 CC _Tree* root;44 CCTree* root; 45 45 46 46 … … 52 52 int store (char* filename); 53 53 54 friend bool cc tree_trace( const Placement* p, CC_Tree* t, unsigned long* hitflags, const Line* trace, Vector* impactpoint);55 friend bool cc tree_iterate(const Placement* pa, CC_Tree* ta, unsigned long* ahitflags, const Placement* pb, CC_Tree* tb, unsigned long* bhitflags);56 friend bool check _trace (const Placement* pa, const CollisionCluster* a, unsigned long* ahitflags, const Line* trace, Vector* impactpoint);57 friend bool check _collision (const Placement* pa, const CollisionCluster* a, unsigned long* ahitflags, const Placement* pb, const CollisionCluster* b, unsigned long* bhitflags);54 friend bool ccTreeTrace( const Placement* p, CCTree* t, unsigned long* hitflags, const Line* trace, Vector* impactpoint); 55 friend bool ccTreeIterate(const Placement* pa, CCTree* ta, unsigned long* ahitflags, const Placement* pb, CCTree* tb, unsigned long* bhitflags); 56 friend bool checkTrace (const Placement* pa, const CollisionCluster* a, unsigned long* ahitflags, const Line* trace, Vector* impactpoint); 57 friend bool checkCollision (const Placement* pa, const CollisionCluster* a, unsigned long* ahitflags, const Placement* pb, const CollisionCluster* b, unsigned long* bhitflags); 58 58 }; 59 59 60 bool sphere _sphere_collision( Vector m1, float r1, Vector m2, float r2);61 bool trace _sphere_collision( Vector m, float r, const Line* l, Vector* impactpoint);60 bool sphereSphereCollision( Vector m1, float r1, Vector m2, float r2); 61 bool traceSphereCollision( Vector m, float r, const Line* l, Vector* impactpoint); 62 62 63 63 void setflag( unsigned long* flags, unsigned long ID); 64 64 65 void free _CC_Tree( CC_Tree* tree);66 CC _Tree* load_CC_Tree (FILE* stream);67 int save _CC_Tree (CC_Tree* tree, FILE* stream);65 void freeCCTree( CCTree* tree); 66 CCTree* loadCCTree (FILE* stream); 67 int saveCCTree (CCTree* tree, FILE* stream); 68 68 69 #endif 69 #endif /* _COLLISION_H */ -
orxonox/branches/sound/src/command_node.cc
r2636 r3238 11 11 ### File Specific: 12 12 main-programmer: Christian Meyer 13 co-programmer: ...13 co-programmer: Patrick Boenzli 14 14 */ 15 15 … … 20 20 #include "world_entity.h" 21 21 #include "game_loader.h" 22 #include "world.h" 22 23 23 24 #include <stdio.h> … … 33 34 CommandNode::CommandNode (int ID) 34 35 { 35 bound = new List<WorldEntity>(); 36 aliases = NULL; 37 netID = ID; 38 bLocalInput = false; 36 this->bound = new tList<WorldEntity>(); 37 this->aliases = NULL; 38 this->netID = ID; 39 this->bLocalInput = false; 40 this->bEnabled = true; 41 this->world = NULL; 39 42 } 40 43 … … 45 48 CommandNode::CommandNode (char* filename = DEFAULT_KEYBIND_FILE) 46 49 { 47 aliases = NULL; 48 bLocalInput = true; 49 netID = 0; 50 bound = new List<WorldEntity>(); 51 load_bindings (filename); 50 this->aliases = NULL; 51 this->bLocalInput = true; 52 this->netID = 0; 53 this->bound = new tList<WorldEntity>(); 54 this->bEnabled = true; 55 this->world = NULL; 56 this->loadBindings (filename); 52 57 } 53 58 … … 58 63 { 59 64 if( aliases != NULL) free (aliases); 60 if( bound != NULL) delete bound; 61 } 65 if( bound != NULL) delete bound; /* \todo should this delete bound? dangerous FIX */ 66 } 67 68 69 /** 70 \brief this resets the command node 71 72 deleting all data contained in the command node to fill it up again 73 74 \todo coppling to different game-entities 75 \todo reset/destroy has to be redesigned 76 */ 77 78 void CommandNode::reset() 79 { 80 this->bound->destroy(); 81 //this->bound = NULL; /* \todo this produces a NULLpointer error.. FIX */ 82 this->bEnabled = false; 83 this->world = NULL; 84 } 85 86 void CommandNode::enable(bool bEnabled) 87 { 88 this->bEnabled = bEnabled; 89 } 90 91 92 /** 93 \brief adds Node to a GameWorld 94 95 this is usefull, if you want to catch events in a world class. usualy 96 this is done automaticaly via GameLoader. Reset it via 97 CommandNode::reset() 98 99 */ 100 void CommandNode::addToWorld(World* world) 101 { 102 this->world = world; 103 } 104 62 105 63 106 /** … … 65 108 \param filename: The path and name of the file to load the bindings from 66 109 */ 67 void CommandNode::load _bindings (char* filename)110 void CommandNode::loadBindings (char* filename) 68 111 { 69 112 FILE* stream; … … 82 125 // create parser 83 126 IniParser parser (filename); 84 if( parser.get _section ("Bindings") == -1)127 if( parser.getSection ("Bindings") == -1) 85 128 { 86 129 printf("Could not find key bindings in %s\n", filename); … … 96 139 int* index; 97 140 98 while( parser.next _var (namebuf, valuebuf) != -1)99 { 100 index = name _to_index (namebuf);141 while( parser.nextVar (namebuf, valuebuf) != -1) 142 { 143 index = nameToIndex (namebuf); 101 144 switch( index[0]) 102 145 { 103 146 case 0: 104 printf("Key binding %d(%s) set to %s\n", index[1], SDLK _to_keyname( index[1]), valuebuf);147 printf("Key binding %d(%s) set to %s\n", index[1], SDLKToKeyname( index[1]), valuebuf); 105 148 strcpy (aliases->keys[index[1]], valuebuf); 106 149 break; 107 150 case 1: 108 printf("Button binding %d(%s) set to %s\n", index[1], SDLB _to_buttonname( index[1]), valuebuf);151 printf("Button binding %d(%s) set to %s\n", index[1], SDLBToButtonname( index[1]), valuebuf); 109 152 strcpy (aliases->buttons[index[1]], valuebuf); 110 153 break; … … 123 166 void CommandNode::bind (WorldEntity* entity) 124 167 { 125 bound->add (entity , LIST_ADD_NEXT, true);168 bound->add (entity); 126 169 } 127 170 … … 132 175 void CommandNode::unbind (WorldEntity* entity) 133 176 { 134 bound->remove (entity , LIST_FIND_FW);135 } 136 137 int* CommandNode::name _to_index (char* name)177 bound->remove (entity); 178 } 179 180 int* CommandNode::nameToIndex (char* name) 138 181 { 139 182 coord[0] = -1; 140 183 coord[1] = -1; 141 184 int c; 142 if( (c = keyname _to_SDLK (name)) != -1)185 if( (c = keynameToSDLK (name)) != -1) 143 186 { 144 187 coord[1] = c; 145 188 coord[0] = 0; 146 189 } 147 if( (c = buttonname _to_SDLB (name)) != -1)190 if( (c = buttonnameToSDLB (name)) != -1) 148 191 { 149 192 coord[1] = c; … … 158 201 void CommandNode::process () 159 202 { 160 if( bLocalInput) process_local (); 161 else process_network (); 162 } 163 164 void CommandNode::process_local () 203 if( this->bEnabled) 204 { 205 if( bLocalInput) processLocal (); 206 else processNetwork (); 207 } 208 } 209 210 void CommandNode::processLocal () 165 211 { 166 212 SDL_Event event; 167 213 Command cmd; 168 169 214 while( SDL_PollEvent (&event)) 170 215 { … … 175 220 strcpy (cmd.cmd, aliases->keys[event.key.keysym.sym]); 176 221 cmd.bUp = false; 177 if( strlen (cmd.cmd) > 0) relay 222 if( strlen (cmd.cmd) > 0) relay(&cmd); 178 223 break; 179 224 case SDL_KEYUP: 180 225 strcpy( cmd.cmd, aliases->keys[event.key.keysym.sym]); 181 226 cmd.bUp = true; 182 if( strlen (cmd.cmd) > 0) relay 227 if( strlen (cmd.cmd) > 0) relay(&cmd); 183 228 break; 184 229 case SDL_MOUSEMOTION: … … 192 237 strcpy( cmd.cmd, aliases->buttons[event.button.button]); 193 238 cmd.bUp = true; 194 if( strlen (cmd.cmd) > 0) relay 239 if( strlen (cmd.cmd) > 0) relay(&cmd); 195 240 break; 196 241 case SDL_MOUSEBUTTONDOWN: 197 242 strcpy( cmd.cmd, aliases->buttons[event.button.button]); 198 243 cmd.bUp = false; 199 if( strlen (cmd.cmd) > 0) relay 244 if( strlen (cmd.cmd) > 0) relay(&cmd); 200 245 break; 201 246 case SDL_JOYAXISMOTION: … … 207 252 default: 208 253 Orxonox *orx = Orxonox::getInstance(); 209 orx->event_handler (&event); 210 254 orx->eventHandler(&event); 211 255 break; 212 256 } … … 214 258 } 215 259 216 void CommandNode::process_network () 217 { 218 219 } 260 261 void CommandNode::processNetwork () 262 { 263 264 } 265 220 266 221 267 void CommandNode::relay (Command* cmd) 222 268 { 223 //printf("CommandNode|relay()\n"); 224 List<WorldEntity>* plist = bound; 225 269 226 270 Orxonox *orx = Orxonox::getInstance(); 227 if( orx->system_command (cmd)) return; 271 if( orx->systemCommand (cmd)) return; 272 228 273 GameLoader* gl = GameLoader::getInstance(); 229 if(gl->worldCommand(cmd)) return; 230 231 if( bLocalInput) send_over_network (cmd); 232 233 while( (plist = plist->get_next()) != NULL) 234 { 235 plist->get_object()->command (cmd); 236 } 237 } 274 if( gl->worldCommand(cmd)) return; 275 276 if( bLocalInput) sendOverNetwork (cmd); 277 278 if( this->world->command(cmd)) return; 279 280 WorldEntity* entity = bound->enumerate(); 281 while( entity != NULL) 282 { 283 entity->command (cmd); 284 entity = bound->nextElement(); 285 } 286 } 287 238 288 239 289 /** … … 241 291 \param ID: the new ID to use 242 292 */ 243 void CommandNode::set _netID (int ID)293 void CommandNode::setNetID (int ID) 244 294 { 245 295 netID = ID; 246 296 } 247 297 248 void CommandNode::send _over_network (Command* cmd)249 { 250 } 298 void CommandNode::sendOverNetwork (Command* cmd) 299 { 300 } -
orxonox/branches/sound/src/command_node.h
r2190 r3238 6 6 */ 7 7 8 #ifndef COMMAND_NODE_H9 #define COMMAND_NODE_H8 #ifndef _COMMAND_NODE_H 9 #define _COMMAND_NODE_H 10 10 11 11 #include "stdincl.h" 12 12 13 13 class WorldEntity; 14 class World; 14 15 15 16 #define N_STD_KEYS SDLK_LAST … … 19 20 //! Key aliasing structure 20 21 /** 21 22 22 This structure contains the key aliasing information, e.g. the command strings that 23 have been bound to the keys. 23 24 */ 24 25 typedef struct 25 26 { 26 27 27 char keys[N_STD_KEYS][CMD_LENGHT]; 28 char buttons[N_BUTTONS][CMD_LENGHT]; 28 29 } KeyBindings; 29 30 30 31 //! Command Node 31 32 /** 32 33 34 35 36 33 This class gathers all incoming SDL_Events and processes them. Keyboard, mouse and joystick input is 34 captured and translated into command messages which are passed down to the bound WorldEntities (via WorldEntity::command()). 35 Other SDL_Events are passed to Orxonox::event_handler() to deal with them. If the CommandNode has been created 36 with bLocalInput set to false, it will query the network class for incoming commands that match his netID and pass 37 them on to it's WorldEntities. 37 38 */ 38 39 class CommandNode { 39 40 private: 40 bool bLocalInput; //!< Identifies the CommandNode that processes local input 41 int netID; //!< Unique identifier that is used to determine between remote CommandNodes 42 KeyBindings* aliases; 43 List<WorldEntity>* bound; //!< List of WorldEntites that recieve commands from this CommandNode 44 Sint32 coord[2]; 45 46 void relay (Command* cmd); 47 int* name_to_index (char* name); 48 void process_local (); 49 void process_network (); 50 void send_over_network (Command* cmd); 51 41 bool bLocalInput; //!< Identifies the CommandNode that processes local input 42 bool bEnabled; 43 int netID; //!< Unique identifier that is used to determine between remote CommandNodes 44 KeyBindings* aliases; 45 tList<WorldEntity>* bound; //!< List of WorldEntites that recieve commands from this CommandNode 46 Sint32 coord[2]; 47 World* world; 48 49 50 void relay (Command* cmd); 51 int* nameToIndex (char* name); 52 void processLocal (); 53 void processNetwork (); 54 void sendOverNetwork (Command* cmd); 55 52 56 public: 53 57 CommandNode (int ID); 54 58 CommandNode (char* filename); 55 59 ~CommandNode (); 56 57 void load_bindings (char* filename); 60 61 void reset (); 62 void enable (bool bEnabled); 63 void loadBindings (char* filename); 58 64 void bind (WorldEntity* entity); 59 65 void unbind (WorldEntity* entity); 66 void addToWorld (World* world); 60 67 void process (); 61 68 62 void set _netID (int ID);69 void setNetID (int ID); 63 70 }; 64 71 65 #endif 72 #endif /* _COMMAND_NODE_H */ -
orxonox/branches/sound/src/coordinates.h
r2551 r3238 4 4 */ 5 5 6 #ifndef COORDINATES_H7 #define COORDINATES_H6 #ifndef _COORDINATES_H 7 #define _COORDINATES_H 8 8 9 9 #include "vector.h" … … 34 34 } Placement; 35 35 36 #endif 36 #endif /* _COORDINATS_H */ -
orxonox/branches/sound/src/data_tank.h
r2190 r3238 1 1 2 #ifndef DATA_TANK_H3 #define DATA_TANK_H2 #ifndef _DATA_TANK_H 3 #define _DATA_TANK_H 4 4 5 5 … … 12 12 }; 13 13 14 #endif 14 #endif /* _DATA_TANK_H */ -
orxonox/branches/sound/src/environment.cc
r2036 r3238 16 16 */ 17 17 18 #include <iostream>19 #include <GL/glut.h>20 #include <stdlib.h>21 22 #include "data_tank.h"23 18 24 19 #include "environment.h" 20 #include "stdincl.h" 21 #include "world_entity.h" 22 #include "vector.h" 25 23 26 24 using namespace std; … … 30 28 #define LEVEL_LENGTH 500 31 29 32 Environment::Environment () 33 : WorldEntity() 30 Environment::Environment () : WorldEntity() 34 31 { 35 32 … … 60 57 Environment::~Environment () {} 61 58 59 void Environment::tick (float time) {} 62 60 61 void Environment::hit (WorldEntity* weapon, Vector loc) {} 62 63 void Environment::destroy () {} 64 65 void Environment::collide (WorldEntity* other, Uint32 ownhitflags, Uint32 otherhitflags) {} 66 67 void Environment::draw () 68 { 69 glMatrixMode(GL_MODELVIEW); 70 glLoadIdentity(); 71 float matrix[4][4]; 72 73 glTranslatef(getPlacement()->r.x,getPlacement()->r.y,getPlacement()->r.z); 74 getPlacement()->w.matrix (matrix); 75 glMultMatrixf ((float*)matrix); 76 77 glBegin(GL_TRIANGLES); 78 glColor3f(1,0,1); 79 glVertex3f(0,0,0.5); 80 glVertex3f(-0.5,0,-1); 81 glVertex3f(0.5,0,-1); 82 83 glVertex3f(0,0,0.5); 84 glVertex3f(0,0.5,-1); 85 glVertex3f(0,-0.5,-1); 86 glEnd(); 87 88 glBegin(GL_QUADS); 89 glColor3f(1,0,1); 90 glVertex3f(0.5,0.5,-1); 91 glVertex3f(0.5,-0.5,-1); 92 glVertex3f(-0.5,-0.5,-1); 93 glVertex3f(-0.5,0.5,-1); 94 glEnd(); 95 } 96 97 /* 63 98 void Environment::paint() 64 99 { 65 /*100 66 101 glPushMatrix(); 67 102 //glScalef(0.5, 0.5, 1.0); … … 95 130 96 131 glPopMatrix(); 97 */132 98 133 } 99 134 … … 103 138 } 104 139 140 */ -
orxonox/branches/sound/src/environment.h
r2036 r3238 1 2 3 4 #ifndef ENVIRONEMENT_H 5 #define ENVIRONEMENT_H 6 1 #ifndef _ENVIRONEMENT_H 2 #define _ENVIRONEMENT_H 7 3 8 4 #include "world_entity.h" 9 5 10 class Environment : public WorldEntity { 6 7 class Environment : public WorldEntity 8 { 9 friend class World; 11 10 12 11 private: … … 21 20 ~Environment (); 22 21 23 void paint(void); 24 void drawEnvironment(void); 25 void setEnvPosition(void); 26 void getEnvPosition(void); 22 23 virtual void tick (float time); 24 virtual void hit (WorldEntity* weapon, Vector loc); 25 virtual void destroy (); 26 virtual void collide (WorldEntity* other, Uint32 ownhitflags, Uint32 otherhitflags); 27 virtual void draw (); 27 28 28 29 }; 29 30 30 #endif 31 #endif /* _ENVIRONEMENT_H */ -
orxonox/branches/sound/src/error.h
r2644 r3238 22 22 */ 23 23 24 // this are the two undefined error nr. Don't use them ... 25 #define ERROR -1 26 #define NERROR 0 24 25 #ifndef _ERROR_H 26 #define _ERROR_H 27 28 // these are the two undefined error nr. Don't use them ... 29 #define oERROR -1 30 31 #define oNOERROR 0 27 32 28 33 /*! … … 54 59 char* message; 55 60 char* location; 56 } Error; 61 } ErrorMessage; 62 63 #endif /* _ERROR_H */ -
orxonox/branches/sound/src/game_loader.cc
r2636 r3238 42 42 43 43 44 /** 45 \brief this class is a singleton class 46 \returns an instance of itself 47 48 if you are unsure about singleton classes, check the theory out on the internet :) 49 */ 44 50 GameLoader* GameLoader::getInstance() 45 51 { … … 50 56 51 57 52 Error GameLoader::init()58 ErrorMessage GameLoader::init() 53 59 { 54 60 if(this->currentCampaign != NULL) … … 57 63 58 64 59 Error GameLoader::loadCampaign(char* name) 60 { 61 Error errorCode; 65 /** 66 \brief reads a campaign definition file into a campaign class 67 \param filename to be loaded 68 \returns the loaded campaign 69 70 this will interprete the map/campaign files and recursivly load a tree of worlds/campaigns 71 */ 72 ErrorMessage GameLoader::loadCampaign(char* name) 73 { 74 ErrorMessage errorCode; 62 75 63 76 this->currentCampaign = this->fileToCampaign(name); 64 77 } 65 78 66 Error GameLoader::loadDebugCampaign(Uint32 campaignID) 79 80 /** 81 \brief loads a debug campaign for test purposes only. 82 \param the identifier of the campaign. 83 \returns error message if not able to do so. 84 */ 85 ErrorMessage GameLoader::loadDebugCampaign(Uint32 campaignID) 67 86 { 68 87 switch(campaignID) … … 72 91 { 73 92 Campaign* debugCampaign = new Campaign(); 93 74 94 World* world0 = new World(DEBUG_WORLD_0); 75 world0->setNextStoryID( DEBUG_WORLD_1);95 world0->setNextStoryID(WORLD_ID_1); 76 96 debugCampaign->addEntity(world0, WORLD_ID_0); 97 77 98 World* world1 = new World(DEBUG_WORLD_1); 78 99 world1->setNextStoryID(WORLD_ID_GAMEEND); … … 85 106 } 86 107 87 Error GameLoader::start()108 ErrorMessage GameLoader::start() 88 109 { 89 110 if(this->currentCampaign != NULL) … … 92 113 93 114 94 Error GameLoader::stop()115 ErrorMessage GameLoader::stop() 95 116 { 96 117 if(this->currentCampaign != NULL) … … 100 121 101 122 102 Error GameLoader::pause()123 ErrorMessage GameLoader::pause() 103 124 { 104 125 this->isPaused = true; … … 108 129 109 130 110 Error GameLoader::resume()131 ErrorMessage GameLoader::resume() 111 132 { 112 133 this->isPaused = false; … … 115 136 } 116 137 117 Error GameLoader::free() 138 /** 139 \brief release the mem 140 */ 141 ErrorMessage GameLoader::destroy() 118 142 {} 119 143 120 144 121 122 123 145 /** 146 \brief reads a campaign definition file into a campaign class 147 \param filename to be loaded 148 \returns the loaded campaign 149 150 this will interprete the map/campaign files and recursivly load a tree of worlds/campaigns 151 */ 124 152 Campaign* GameLoader::fileToCampaign(char *name) 125 153 { … … 134 162 \brief handle keyboard commands 135 163 \param cmd: the command to handle 136 \return true if the command was handled by the system164 \returns true if the command was handled by the system 137 165 */ 138 166 bool GameLoader::worldCommand (Command* cmd) … … 165 193 return true; 166 194 } 195 else if( !strcmp( cmd->cmd, "quit")) 196 { 197 if( !cmd->bUp) this->stop(); 198 return true; 199 } 167 200 return false; 168 201 } 169 202 203 204 /* 205 \brief this changes to the next level 206 */ 170 207 void GameLoader::nextLevel() 171 208 { … … 174 211 } 175 212 213 214 /* 215 \brief change to the previous level - not implemented 216 217 this propably useless 218 */ 176 219 void GameLoader::previousLevel() 177 220 { -
orxonox/branches/sound/src/game_loader.h
r2636 r3238 1 #ifndef GAME_LOADER_H2 #define GAME_LOADER_H1 #ifndef _GAME_LOADER_H 2 #define _GAME_LOADER_H 3 3 4 4 #include "stdincl.h" … … 20 20 static GameLoader* getInstance(); 21 21 22 Error init();23 Error loadCampaign(char* name);24 Error start();25 Error stop();26 Error pause();27 Error resume();28 Error free();22 ErrorMessage init(); 23 ErrorMessage loadCampaign(char* name); 24 ErrorMessage start(); 25 ErrorMessage stop(); 26 ErrorMessage pause(); 27 ErrorMessage resume(); 28 ErrorMessage destroy(); 29 29 30 30 void nextLevel(); … … 32 32 33 33 bool worldCommand(Command* cmd); 34 Error loadDebugCampaign(Uint32 campaignID);34 ErrorMessage loadDebugCampaign(Uint32 campaignID); 35 35 36 36 private: … … 47 47 }; 48 48 49 #endif 49 #endif /* _GAME_LOADER_H */ -
orxonox/branches/sound/src/ini_parser.cc
r2551 r3238 25 25 IniParser::IniParser (char* filename) 26 26 { 27 28 29 open_file(filename);27 stream = NULL; 28 bInSection = false; 29 openFile(filename); 30 30 } 31 31 … … 35 35 IniParser::~IniParser () 36 36 { 37 37 if( stream != NULL) fclose (stream); 38 38 } 39 39 40 40 /** 41 42 43 41 \brief opens another file to parse 42 \param filename: path and name of the new file to parse 43 \return zero on success or -1 if an error occured; 44 44 */ 45 int IniParser::open _file( char* filename)45 int IniParser::openFile( char* filename) 46 46 { 47 48 49 50 51 52 53 54 55 47 if( filename == NULL) return -1; 48 if( stream != NULL) fclose (stream); 49 if( (stream = fopen (filename, "r")) == NULL) 50 { 51 printf("IniParser could not open %s\n", filename); 52 return -1; 53 } 54 bInSection = false; 55 return 0; 56 56 } 57 57 58 58 /** 59 60 61 59 \brief set the parsing cursor to the specified section 60 \param section: the name of the section to set the cursor to 61 \return zero on success or -1 if the section could not be found 62 62 */ 63 int IniParser::get _section( char* section)63 int IniParser::getSection( char* section) 64 64 { 65 65 bInSection = false; … … 95 95 96 96 /** 97 98 99 100 97 \brief gets the next VarName=VarValue pair from the parsing stream 98 \param name: a pointer to a buffer to store the name of the entry 99 \param value: a pointer to a buffer to store the value of the entry 100 \return zero if the buffers have been filled with data or -1 if there are no entries left in the current section 101 101 */ 102 int IniParser::next _var( char* name, char* value)102 int IniParser::nextVar( char* name, char* value) 103 103 { 104 if( stream == NULL) 104 if( stream == NULL) 105 { 106 bInSection = false; 107 return -1; 108 } 109 if( !bInSection) return -1; 110 111 char linebuffer[PARSELINELENGHT]; 112 char* ptr; 113 114 while( !feof( stream)) 115 { 116 // get next line 117 fgets (linebuffer, PARSELINELENGHT, stream); 118 // remove newline char 119 if( (ptr = strchr( linebuffer, '\n')) != NULL) *ptr = 0; 120 if( linebuffer[0] == '[') 105 121 { 106 107 122 bInSection = false; 123 return -1; 108 124 } 109 if( !bInSection) return -1; 110 111 char linebuffer[PARSELINELENGHT]; 112 char* ptr; 113 114 while( !feof( stream)) 125 if( (ptr = strchr( linebuffer, '=')) != NULL) 115 126 { 116 // get next line 117 fgets (linebuffer, PARSELINELENGHT, stream); 118 // remove newline char 119 if( (ptr = strchr( linebuffer, '\n')) != NULL) *ptr = 0; 120 if( linebuffer[0] == '[') 121 { 122 bInSection = false; 123 return -1; 124 } 125 if( (ptr = strchr( linebuffer, '=')) != NULL) 126 { 127 if( ptr == linebuffer) continue; 128 strcpy (value, &ptr[1]); 129 strncpy (name, linebuffer, strlen (linebuffer) - strlen (value) - 1); 130 return 0; 131 } 127 if( ptr == linebuffer) continue; 128 strcpy (value, &ptr[1]); 129 strncpy (name, linebuffer, strlen (linebuffer) - strlen (value) - 1); 130 return 0; 132 131 } 133 return -1; 132 } 133 return -1; 134 134 } 135 135 136 136 /** 137 138 139 140 141 142 143 144 137 \brief directly acesses an entry in a section 138 \param name: the name of the entry to find 139 \param section: the section where the entry is to be found 140 \param defvalue: what should be returned in case the entry cannot be found 141 \return a pointer to a buffer conatining the value of the specified entry. This buffer will contain the data specified in defvalue in case the entry wasn't found 142 143 The returned pointer points to an internal buffer, so do not free it on your own. Do not give a NULL pointer to defvalue, this will certainly 144 lead to unwanted behaviour. 145 145 */ 146 char* IniParser::get _var( char* name, char* section, char* defvalue = "")146 char* IniParser::getVar( char* name, char* section, char* defvalue = "") 147 147 { 148 strcpy (internbuf, defvalue); 149 if( get_section (section) == -1) return internbuf; 150 151 char namebuf[PARSELINELENGHT]; 152 char valuebuf[PARSELINELENGHT]; 153 154 while( next_var (namebuf, valuebuf) != -1) 148 strcpy (internbuf, defvalue); 149 if( getSection (section) == -1) return internbuf; 150 151 char namebuf[PARSELINELENGHT]; 152 char valuebuf[PARSELINELENGHT]; 153 154 while( nextVar (namebuf, valuebuf) != -1) 155 { 156 if( !strcmp (name, namebuf)) 155 157 { 156 if( !strcmp (name, namebuf)) 157 { 158 strcpy (internbuf, valuebuf); 159 return internbuf; 160 } 158 strcpy (internbuf, valuebuf); 159 return internbuf; 161 160 } 162 return internbuf; 161 } 162 return internbuf; 163 163 } -
orxonox/branches/sound/src/ini_parser.h
r2190 r3238 6 6 */ 7 7 8 #ifndef INI_PARSER_H9 #define INI_PARSER_H8 #ifndef _INI_PARSER_H 9 #define _INI_PARSER_H 10 10 11 11 #include <stdio.h> … … 29 29 ~IniParser (); 30 30 31 char* get _var( char* name, char* section, char* defvalue);32 int open _file( char* name);33 int get _section( char* section);34 int next _var( char* name, char* value);31 char* getVar( char* name, char* section, char* defvalue); 32 int openFile( char* name); 33 int getSection( char* section); 34 int nextVar( char* name, char* value); 35 35 }; 36 36 37 #endif 37 #endif /* _INI_PARSER_H */ -
orxonox/branches/sound/src/keynames.cc
r2551 r3238 13 13 co-programmer: ... 14 14 */ 15 #include <SDL/SDL.h>16 15 17 16 #include "keynames.h" … … 21 20 using namespace std; 22 21 23 int buttonname _to_SDLB( char* name)22 int buttonnameToSDLB( char* name) 24 23 { 25 24 if( !strcmp (name, "BUTTON_LEFT")) return SDL_BUTTON_LEFT; … … 31 30 } 32 31 33 char* SDLB _to_buttonname( int button)32 char* SDLBToButtonname( int button) 34 33 { 35 34 if( button == SDL_BUTTON_LEFT) return "BUTTON_LEFT"; … … 41 40 } 42 41 43 int keyname _to_SDLK( char* name)42 int keynameToSDLK( char* name) 44 43 { 45 44 if( !strcmp (name, "BACKSPACE")) return SDLK_BACKSPACE; … … 179 178 } 180 179 181 char* SDLK _to_keyname( int key)180 char* SDLKToKeyname( int key) 182 181 { 183 182 if( key == SDLK_BACKSPACE) return "BACKSPACE"; -
orxonox/branches/sound/src/keynames.h
r2551 r3238 5 5 Converts strings to SDLK/SDL_BUTTON values and vice versa 6 6 */ 7 #ifndef _KEYNAMES_H 8 #define _KEYNAMES_H 9 7 10 8 11 #ifdef __WIN32__ … … 10 13 #endif 11 14 15 #ifndef __APPLE__ 12 16 #include <SDL/SDL.h> 17 #else 18 #include <SDL.h> 19 #endif 13 20 14 21 /** … … 17 24 \return an int containing the SDL identifier of the mouse button or -1 if the button name is not valid 18 25 */ 19 int buttonname _to_SDLB( char* name);26 int buttonnameToSDLB( char* name); 20 27 21 28 /** … … 24 31 \return a pointer to a string containing the name of the mouse button 25 32 */ 26 char* SDLB _to_buttonname( int button);33 char* SDLBToButtonname( int button); 27 34 28 35 /** … … 31 38 \return the SDLK sym of the named key or -1 if the key name is not valid 32 39 */ 33 int keyname _to_SDLK( char* name);40 int keynameToSDLK( char* name); 34 41 35 42 /** … … 38 45 \return a pointer to a string containig the name of the key 39 46 */ 40 char* SDLK _to_keyname( int key);47 char* SDLKToKeyname( int key); 41 48 49 50 #endif /* _KEYNAMES_H */ -
orxonox/branches/sound/src/list.h
r2636 r3238 1 /* 2 orxonox - the future of 3D-vertical-scrollers 3 4 Copyright (C) 2004 orx 5 6 This program is free software; you can redistribute it and/or modify 7 it under the terms of the GNU General Public License as published by 8 the Free Software Foundation; either version 2, or (at your option) 9 any later version. 10 11 ### File Specific: 12 main-programmer: Christian Meyer 13 14 ADDONS/FIXES: 15 16 Patrick Boenzli : Implemented getSize() function 17 */ 18 19 20 /*! 21 \file list.h 22 \brief Contains a template for a doubly linked list 23 */ 24 25 #ifndef LIST_H 26 #define LIST_H 27 28 #include "stdlib.h" 1 2 #ifndef _LIST_H 3 #define _LIST_H 4 5 #include "stdincl.h" 29 6 30 7 //! An enum to list all the modes available when adding an object to a List 31 enum ADDMODE {LIST_ADD_NEXT, LIST_ADD_PREV,LIST_ADD_FIRST, LIST_ADD_LAST};8 //enum ADDMODE {LIST_ADD_FIRST, LIST_ADD_LAST}; 32 9 //! An enum to list the two searching directions available when removing an object from a List 33 enum FINDMODE {LIST_FIND_BW, LIST_FIND_FW}; 34 35 //! A generic doubly linked list 36 template<class T> class List 37 { 38 T* object; 39 List<T>* next; 40 List<T>* prev; 41 bool bReference; 42 int size; 10 //enum FINDMODE {LIST_FIND_BW, LIST_FIND_FW}; 11 12 13 14 class WorldEntity; 15 16 class List { 17 18 public: 19 List (); 20 ~List (); 21 22 void add(WorldEntity* entity); 23 void remove(WorldEntity* entity); 24 void destroy(); 25 WorldEntity* firstElement(); 26 bool isEmpty(); 27 int getSize(); 28 WorldEntity* enumerate(); 29 WorldEntity* nextElement(); 30 WorldEntity* toArray(); 31 void debug(); 32 33 private: 34 struct listElement 35 { 36 listElement* prev; 37 WorldEntity* curr; 38 listElement* next; 39 }; 40 Uint32 size; 41 listElement* first; 42 listElement* last; 43 listElement* currentEl; 44 45 46 }; 47 48 class Iterator 49 { 50 51 public: 52 bool hasNext(); 53 WorldEntity* next(); 54 55 private: 56 57 }; 58 59 60 template<class T> class tList 61 { 62 private: 63 struct listElement 64 { 65 listElement* prev; 66 T* curr; 67 listElement* next; 68 }; 69 70 Uint32 size; 71 listElement* first; 72 listElement* last; 73 listElement* currentEl; 43 74 44 75 public: 45 List (T* obj, List<T>* n, List<T>* p, bool bRef);46 ~ List ();76 tList (); 77 ~tList (); 47 78 48 int add (T* obj, ADDMODE mode, bool bRef); 49 T* get_object(); 50 List<T>* get_next (); 51 List<T>* get_previous (); 52 List<T>* get_last (); 53 List<T>* get_first (); 54 void set_next (List<T>* ptr); 55 void set_prev (List<T>* ptr); 56 int remove (T* obj, FINDMODE mode); 79 80 void add(WorldEntity* entity); 81 void remove(WorldEntity* entity); 82 void destroy(); 83 T* firstElement(); 84 bool isEmpty(); 57 85 int getSize(); 86 T* enumerate(); 87 T* nextElement(); 88 T* toArray(); 89 void debug(); 58 90 }; 59 91 60 92 61 /** 62 \brief Standard constructor 63 64 Call this without any parameters to generate a new List which can be filled with content. 65 DO NOT create a List element that contains an object on your own, you'll lose the data 66 contained in that object and will have trouble removing the list from your memory. 67 */ 68 template<class T> 69 List<T>::List (T* obj = NULL, List<T>* n = NULL, List<T>* p = NULL, bool bRef = false) 70 { 71 object = obj; 72 next = n; 73 prev = p; 74 bReference = bRef; 75 if(obj != NULL) 76 ++size; 77 } 78 79 /** 80 \brief Standard destructor 81 82 Call this on the initially generated base List element to remove the whole List from the memory. 83 You can safely do this to any List element you want without messing up the rest of the List, but keep in mind 84 that the contained object will be deleted as well when bRef had been set to false. 85 */ 86 template<class T> 87 List<T>::~List () 88 { 89 if (object == NULL) // deleted foot node => disband the list 90 { 91 while( next != NULL) 93 template<class T> 94 tList<T>::tList () 95 { 96 this->first = NULL; 97 this->last = NULL; 98 this->size = 0; 99 } 100 101 template<class T> 102 tList<T>::~tList () 103 {} 104 105 template<class T> 106 void tList<T>::add(WorldEntity* entity) 107 { 108 listElement* el = new listElement; 109 el->prev = this->last; 110 el->curr = entity; 111 el->next = NULL; 112 113 this->last = el; 114 115 if(this->size == 0) this->first = el; 116 else el->prev->next = el; 117 this->size++; 118 } 119 120 121 template<class T> 122 void tList<T>::remove(WorldEntity* entity) 123 { 124 this->currentEl = this->first; 125 listElement* te; 126 while( this->currentEl != NULL) 92 127 { 93 delete next; 128 if( this->currentEl->curr == entity) 129 { 130 if( this->currentEl->prev == NULL ) this->first = this->currentEl->next; 131 else this->currentEl->prev->next = this->currentEl->next; 132 133 if( this->currentEl->next == NULL) this->last = this->currentEl->prev; 134 else this->currentEl->next->prev = this->currentEl->prev; 135 136 te = this->currentEl->next; 137 delete this->currentEl; 138 this->currentEl = te; 139 return; 140 } 141 this->currentEl = this->currentEl->next; 94 142 } 95 while( prev != NULL) 143 } 144 145 146 template<class T> 147 void tList<T>::destroy() 148 { 149 this->currentEl = this->first; 150 while(this->currentEl != NULL) 96 151 { 97 delete prev; 152 listElement* le = this->currentEl->next; 153 delete this->currentEl->curr; 154 delete this->currentEl; 155 this->currentEl = le; 98 156 } 99 } 100 else 101 { 102 if (prev != NULL) prev->set_next (next); 103 if (next != NULL) next->set_prev (prev); 104 if (!bReference) delete object; 105 } 106 } 107 108 /** 109 \brief Add an object to the List 110 \param obj: A pointer to an allocated object 111 \param mode: A Value of ADDMODE (default: LIST_ADD_NEXT) 112 \param bRef: Sets whether the element is serving as a storage point or a simple listing (default: false) 113 \return 0 if the operation succeded, -1 if the element could not be added 114 115 This adds a new List element to the chain. The mode parameter can be used to specify 116 the location where the element should be added. LIST_ADD_NEXT will add the new element directly 117 after the base element. LIST_ADD_PREV will add the new element directly before the base element. 118 LIST_ADD_FIRST will add the element at the beginning of the List whereas LIST_ADD_LAST will add 119 it to the end of the chain. If the bRef parameter is set to true, the object pointer will not be deleted 120 when the element containing that object is deleted, thus the List can be used for temporary listings as 121 well as permanent data storage. 122 */ 123 template<class T> 124 int List<T>::add (T* obj, ADDMODE mode = LIST_ADD_NEXT, bool bRef = false) 125 { 126 List<T>* p; 127 if( obj == NULL) return -1; 128 switch (mode) 129 { 130 case LIST_ADD_NEXT: 131 p = new List<T>( obj, next, this, bRef); 132 if( next != NULL) next->set_prev (p); 133 next = p; 134 break; 135 case LIST_ADD_PREV: 136 p = new List<T>( obj, this, prev, bRef); 137 if( prev != NULL) prev->set_next (p); 138 prev = p; 139 break; 140 case LIST_ADD_FIRST: 141 if (prev == NULL) prev = new List<T> (obj, this, NULL, bRef); 142 else return prev->add (obj, mode, bRef); 143 break; 144 case LIST_ADD_LAST: 145 if (next == NULL) next = new List<T> (obj, NULL, this, bRef); 146 else return next->add (obj, mode, bRef); 147 break; 148 default: 149 return -1; 150 break; 151 } 152 ++size; 153 return 0; 154 } 155 156 /** 157 \brief Get the next element of the List 158 \return The List element after the current List element 159 */ 160 template<class T> 161 List<T>* List<T>::get_next () 162 { 163 return next; 164 } 165 166 /** 167 \brief Get the previous element of the List 168 \return The List element before the current List element 169 */ 170 template<class T> 171 List<T>* List<T>::get_previous () 172 { 173 return prev; 174 } 175 176 /** 177 \brief Get the last element of the List 178 \return The last List element 179 */ 180 template<class T> 181 List<T>* List<T>::get_last () 182 { 183 if (next == NULL) return this; 184 else return next->get_last(); 185 } 186 187 /** 188 \brief Get the first element of the List 189 \return The first List element 190 */ 191 template<class T> 192 List<T>* List<T>::get_first () 193 { 194 if (prev == NULL) return this; 195 else return prev->get_first(); 196 } 197 198 /** 199 \brief Removes a certain element from the List 200 \param obj: A pointer to the object that should be removed 201 \param mode: A value of FINDMODE 202 \return 0 if the element was found and removed, -1 if the element was not found 203 204 This searches the part of the List specified with mode for the object in question. 205 When the object is found it is deleted and the List element is removed from the chain. 206 If mode is LIST_FIND_FW all elements AFTER the base element are searched, if mode is 207 LIST_FIND_BW all elements BEFORE the base element are searched. Note that the object 208 contained within the List element is NOT deleted when bRef was set to true. 209 */ 210 template<class T> 211 int List<T>::remove (T* obj, FINDMODE mode = LIST_FIND_FW) 212 { 213 if (obj == NULL) return -1; 214 else 215 { 216 switch (mode) 217 { 218 case LIST_FIND_BW: 219 if (prev == NULL) return -1; 220 else 221 { 222 if( prev->get_object() == obj) 223 { 224 delete prev; 225 } 226 else 227 { 228 return prev->remove( obj, mode); 229 } 230 } 231 break; 232 case LIST_FIND_FW: 233 if (next == NULL) return -1; 234 else 235 { 236 if( next->get_object() == obj) 237 { 238 delete next; 239 } 240 else 241 { 242 return next->remove( obj, mode); 243 } 244 } 245 break; 246 default: 247 return -1; 248 } 249 } 250 --size; 251 return 0; 252 } 253 254 /** 255 \brief Set the next element of a List element 256 \param ptr: A pointer to the new next element 257 258 Sets the next element of a List element... Better not touch this, it can really mess up a List. 259 */ 260 template<class T> 261 void List<T>::set_next (List<T>* ptr) 262 { 263 next = ptr; 264 } 265 266 /** 267 \brief Set the prev element of a List element 268 \param ptr: A pointer to the new previous element 269 270 Sets the previous element of a List element... Better not touch this, it can really mess up a List. 271 */ 272 template<class T> 273 void List<T>::set_prev (List<T>* ptr) 274 { 275 prev = ptr; 276 } 277 278 /** 279 \brief Get the pointer to the object the element is containing 280 \return The contained object (will be NULL if called on the base element). 281 */ 282 template<class T> 283 T* List<T>::get_object() 284 { 285 return object; 286 } 287 288 289 /** 290 \brief Returns the current size of the List 291 \return Size of List 292 */ 293 template<class T> 294 int List<T>::getSize() 157 this->first = NULL; 158 this->last = NULL; 159 this->size = 0; 160 } 161 162 163 template<class T> 164 T* tList<T>::firstElement() 165 { 166 return this->first->curr; 167 } 168 169 170 template<class T> 171 bool tList<T>::isEmpty() 172 { 173 return (this->size==0)?true:false; 174 } 175 176 177 template<class T> 178 int tList<T>::getSize() 295 179 { 296 180 return this->size; 297 181 } 298 182 299 #endif 300 183 184 template<class T> 185 T* tList<T>::enumerate() 186 { 187 if(this->size == 0) return NULL; 188 this->currentEl = this->first; 189 return this->currentEl->curr; 190 } 191 192 193 template<class T> 194 T* tList<T>::nextElement() 195 { 196 if(this->size == 0) return NULL; 197 this->currentEl = this->currentEl->next; 198 if(this->currentEl == NULL) return NULL; 199 return this->currentEl->curr; 200 } 201 202 203 template<class T> 204 T* tList<T>::toArray() 205 {} 206 207 #endif /* _LIST_H */ -
orxonox/branches/sound/src/message_structures.h
r2551 r3238 4 4 */ 5 5 6 #ifndef _MESSAGE STRUCTURES_H7 #define _MESSAGE STRUCTURES_H6 #ifndef _MESSAGE_STRUCTURES_H 7 #define _MESSAGE_STRUCTURES_H 8 8 9 9 #define CMD_LENGHT 16 … … 26 26 } Command; 27 27 28 #endif 28 #endif /* _MESSAGE_STRUCTURES_H */ -
orxonox/branches/sound/src/npc.h
r2036 r3238 1 1 2 #ifndef NPC_H3 #define NPC_H2 #ifndef _NPC_H 3 #define _NPC_H 4 4 5 5 #include "world_entity.h" … … 41 41 }; 42 42 43 #endif 43 #endif /* _NPC_H */ -
orxonox/branches/sound/src/orxonox.cc
r2636 r3238 47 47 Orxonox::~Orxonox () 48 48 { 49 Orxonox::singleton _ref = NULL;49 Orxonox::singletonRef = NULL; 50 50 if( world != NULL) delete world; 51 51 if( localinput != NULL) delete world; … … 56 56 57 57 /* this is a singleton class to prevent duplicates */ 58 Orxonox* Orxonox::singleton _ref = 0;58 Orxonox* Orxonox::singletonRef = 0; 59 59 60 60 Orxonox* Orxonox::getInstance (void) 61 61 { 62 if (singleton _ref == NULL)63 singleton _ref = new Orxonox();64 return singleton _ref;62 if (singletonRef == NULL) 63 singletonRef = new Orxonox(); 64 return singletonRef; 65 65 } 66 66 … … 72 72 it's path and name into configfilename 73 73 */ 74 void Orxonox::get_config_file (int argc, char** argv) 75 { 76 /* char* path; 77 #ifdef __WIN32__ 78 path = getenv(""); 79 #else 80 path = getenv("HOME"); 81 #endif 82 83 if( path != NULL) strcpy (configfilename, path); 84 else strcpy (configfilename, "./"); 85 strcat (configfilename, "/.orxonox.conf");*/ 86 74 void Orxonox::getConfigFile (int argc, char** argv) 75 { 87 76 strcpy (configfilename, "orxonox.conf"); 88 77 } … … 96 85 // config file 97 86 98 get_config_file (argc, argv); 99 100 // initialize SDL 101 printf("> Initializing SDL\n"); 102 if( SDL_Init (SDL_INIT_EVERYTHING) == -1) 87 getConfigFile (argc, argv); 88 SDL_Init (SDL_INIT_TIMER); 89 // initialize everything 90 if( initVideo() == -1) return -1; 91 if( initSound() == -1) return -1; 92 printf("> Initializing input\n"); 93 if( initInput() == -1) return -1; 94 printf("> Initializing networking\n"); 95 if( initNetworking () == -1) return -1; 96 printf("> Initializing resources\n"); 97 if( initResources () == -1) return -1; 98 //printf("> Initializing world\n"); 99 //if( init_world () == -1) return -1; PB: world will be initialized when started 100 101 return 0; 102 } 103 104 /** 105 \brief initializes SDL and OpenGL 106 */ 107 int Orxonox::initVideo() 108 { 109 printf("> Initializing video\n"); 110 if (SDL_Init(SDL_INIT_VIDEO) == -1) 103 111 { 104 printf (" Could not SDL_Init(): %s\n", SDL_GetError());112 printf ("could not initialize SDL Video\n"); 105 113 return -1; 106 114 } 107 108 // initialize everything109 printf("> Initializing video\n");110 if( init_video () == -1) return -1;111 printf("> Initializing sound\n");112 if( init_sound () == -1) return -1;113 printf("> Initializing input\n");114 if( init_input () == -1) return -1;115 printf("> Initializing networking\n");116 if( init_networking () == -1) return -1;117 printf("> Initializing resources\n");118 if( init_resources () == -1) return -1;119 //printf("> Initializing world\n");120 //if( init_world () == -1) return -1; PB: world will be initialized when started121 122 return 0;123 }124 125 /**126 \brief initializes SDL and OpenGL127 */128 int Orxonox::init_video ()129 {130 115 // Set video mode 131 116 // TO DO: parse arguments for settings 132 SDL_GL_SetAttribute 133 SDL_GL_SetAttribute 134 SDL_GL_SetAttribute 135 SDL_GL_SetAttribute 117 SDL_GL_SetAttribute(SDL_GL_RED_SIZE, 5); 118 SDL_GL_SetAttribute(SDL_GL_GREEN_SIZE, 5); 119 SDL_GL_SetAttribute(SDL_GL_BLUE_SIZE, 5); 120 SDL_GL_SetAttribute(SDL_GL_DEPTH_SIZE, 16); 136 121 137 122 int bpp = 16; … … 140 125 Uint32 flags = SDL_HWSURFACE | SDL_OPENGL | SDL_GL_DOUBLEBUFFER; 141 126 142 if( 127 if((screen = SDL_SetVideoMode (width, height, bpp, flags)) == NULL) 143 128 { 144 printf 129 printf("Could not SDL_SetVideoMode(%d, %d, %d, %d): %s\n", width, height, bpp, flags, SDL_GetError()); 145 130 SDL_Quit(); 146 131 return -1; … … 148 133 149 134 // Set window labeling 150 // TO DO: Add version information to caption 151 SDL_WM_SetCaption( "Orxonox", "Orxonox"); 135 SDL_WM_SetCaption("Orxonox " PACKAGE_VERSION, "Orxonox " PACKAGE_VERSION); 152 136 153 137 // TO DO: Create a cool icon and use it here … … 158 142 glClearColor(0.0, 0.0, 0.0, 0.0); 159 143 glEnable(GL_DEPTH_TEST); 160 glEnable(GL_COLOR); 161 glShadeModel(GL_FLAT); 144 145 // LIGHTING 146 GLfloat lmodelAmbient[] = {.1, .1, .1, 1.0}; 147 GLfloat whiteLight[] = {1.0, 1.0, 1.0,1.0}; 148 GLfloat lightPosition[] = {10.0, 10, 19.0, 0.0}; 149 150 glLightfv(GL_LIGHT0, GL_DIFFUSE, whiteLight); 151 glLightfv(GL_LIGHT0, GL_SPECULAR, whiteLight); 152 glEnable(GL_LIGHTING); 153 glEnable(GL_LIGHT0); 154 glEnable(GL_DEPTH_TEST); 155 glLightfv(GL_LIGHT0, GL_POSITION, lightPosition); 156 glLightfv(GL_LIGHT0, GL_DIFFUSE, whiteLight); 157 158 // glEnable(GL_COLOR); 159 // glShadeModel(GL_SMOOTH); 162 160 163 161 // create camera 164 localcamera = new Camera(world); 165 166 return 0; 167 } 162 //localcamera = new Camera(world); /* \todo camera/input node not used anymore*/ 163 164 return 0; 165 } 166 168 167 169 168 /** 170 169 \brief initializes the sound engine 171 170 */ 172 int Orxonox::init_sound () 173 { 171 int Orxonox::initSound() 172 { 173 printf("> Initializing sound\n"); 174 // SDL_Init(SDL_INIT_AUDIO); 174 175 printf("Not yet implemented\n"); 175 176 return 0; 176 177 } 177 178 179 178 180 /** 179 181 \brief initializes input functions 180 182 */ 181 int Orxonox::init _input()183 int Orxonox::initInput() 182 184 { 183 185 // create localinput … … 187 189 } 188 190 191 189 192 /** 190 193 \brief initializes network system 191 194 */ 192 int Orxonox::init _networking()195 int Orxonox::initNetworking() 193 196 { 194 197 printf("Not yet implemented\n"); … … 196 199 } 197 200 201 198 202 /** 199 203 \brief initializes and loads resource files 200 204 */ 201 int Orxonox::init _resources()205 int Orxonox::initResources() 202 206 { 203 207 printf("Not yet implemented\n"); … … 205 209 } 206 210 211 207 212 /** 208 213 \brief initializes the world 209 214 */ 210 int Orxonox::init _world()215 int Orxonox::initWorld() 211 216 { 212 217 //world = new World(); … … 236 241 } 237 242 243 238 244 /** 239 245 \brief exits Orxonox … … 244 250 } 245 251 246 /** 247 \brief this runs all of Orxonox 248 */ 249 void Orxonox::mainLoop() 250 { 251 lastframe = SDL_GetTicks(); 252 bQuitOrxonox = false; 253 // This is where everything is run 254 printf("Orxonox|Entering main loop\n"); 255 while( !bQuitOrxonox) 256 { 257 // Network 258 synchronize(); 259 // Process input 260 handle_input(); 261 // Process time 262 time_slice(); 263 // Process collision 264 collision(); 265 // Draw 266 display(); 267 } 268 printf("Orxonox|Exiting the main loop\n"); 269 } 252 270 253 271 254 /** … … 273 256 \param event: an event not handled by the CommandNode 274 257 */ 275 void Orxonox::event _handler(SDL_Event* event)258 void Orxonox::eventHandler(SDL_Event* event) 276 259 { 277 260 // Handle special events such as reshape, quit, focus changes 278 261 } 279 280 /** 281 \brief synchronize local data with remote data 282 */ 283 void Orxonox::synchronize () 284 { 285 // Get remote input 286 // Update synchronizables 287 } 288 289 /** 290 \brief run all input processing 291 */ 292 void Orxonox::handle_input () 293 { 294 // localinput 295 localinput->process(); 296 // remoteinput 297 } 298 299 /** 300 \brief advance the timeline 301 */ 302 void Orxonox::time_slice () 303 { 304 Uint32 curframe = SDL_GetTicks(); 305 if( !pause) 306 { 307 Uint32 dt = curframe - lastframe; 308 309 if(dt > 0) 310 { 311 float fps = 1000/dt; 312 printf("fps = %f\n", fps); 313 } 314 315 world->time_slice (dt); 316 world->update (); 317 localcamera->time_slice (dt); 318 } 319 lastframe = curframe; 320 } 321 322 /** 323 \brief compute collision detection 324 */ 325 void Orxonox::collision () 326 { 327 world->collide (); 328 } 262 329 263 330 264 /** … … 333 267 \return true if the command was handled by the system or false if it may be passed to the WorldEntities 334 268 */ 335 bool Orxonox::system_command (Command* cmd) 336 { 269 bool Orxonox::systemCommand(Command* cmd) 270 { 271 /* 337 272 if( !strcmp( cmd->cmd, "quit")) 338 273 { … … 341 276 } 342 277 return false; 343 } 344 345 /** 346 \brief render the current frame 347 */ 348 void Orxonox::display () 349 { 350 // clear buffer 351 glClear( GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT); 352 // set camera 353 localcamera->apply (); 354 // draw world 355 world->draw (); 356 // draw HUD 357 // flip buffers 358 SDL_GL_SwapBuffers(); 359 } 278 */ 279 return false; 280 } 281 360 282 361 283 /** … … 363 285 \return a pointer to localcamera 364 286 */ 365 Camera* Orxonox::get _camera()287 Camera* Orxonox::getCamera() 366 288 { 367 289 return localcamera; 368 290 } 291 369 292 370 293 /** … … 372 295 \return a pointer to localinput 373 296 */ 374 CommandNode* Orxonox::get _localinput()297 CommandNode* Orxonox::getLocalInput() 375 298 { 376 299 return localinput; 377 300 } 301 378 302 379 303 /** … … 381 305 \return a pointer to world 382 306 */ 383 World* Orxonox::get _world()307 World* Orxonox::getWorld() 384 308 { 385 309 return world; 386 310 } 387 311 388 int main (int argc, char** argv) 312 313 314 315 int main(int argc, char** argv) 389 316 { 390 317 printf(">>> Starting Orxonox <<<\n"); 391 318 Orxonox *orx = Orxonox::getInstance(); 392 319 393 if( 320 if((*orx).init(argc, argv) == -1) 394 321 { 395 322 printf("! Orxonox initialization failed\n"); … … 397 324 } 398 325 399 //(*orx).mainLoop();400 401 326 orx->start(); 402 327 -
orxonox/branches/sound/src/orxonox.h
r2636 r3238 4 4 */ 5 5 6 #ifndef ORXONOX_H 7 #define ORXONOX_H 8 9 #include <SDL/SDL.h> 6 #ifndef _ORXONOX_H 7 #define _ORXONOX_H 10 8 11 9 #include "stdincl.h" … … 24 22 25 23 private: 26 static Orxonox* singleton _ref;24 static Orxonox* singletonRef; 27 25 Orxonox (); 28 26 ~Orxonox (); … … 40 38 Uint32 lastframe; 41 39 42 void get _config_file (int argc, char** argv);40 void getConfigFile (int argc, char** argv); 43 41 44 42 // main loop functions 45 void synchronize ();46 void handle_input ();47 void time_slice ();48 void collision ();49 void display ();43 // void synchronize (); 44 //void handle_input (); 45 //void time_slice (); 46 //void collision (); 47 //void display (); 50 48 51 49 // subsystem initialization 52 int init _video ();53 int init _sound ();54 int init _input ();55 int init _networking ();56 int init _resources ();57 int init _world ();50 int initVideo (); 51 int initSound (); 52 int initInput (); 53 int initNetworking (); 54 int initResources (); 55 int initWorld (); 58 56 59 57 public: … … 62 60 void quitGame(); 63 61 64 void event _handler (SDL_Event* event);65 bool system _command (Command* cmd);62 void eventHandler (SDL_Event* event); 63 bool systemCommand (Command* cmd); 66 64 67 65 int init (int argc, char** argv); 68 66 69 CommandNode* get _localinput();70 Camera* get _camera();71 World* get _world();67 CommandNode* getLocalInput(); 68 Camera* getCamera(); 69 World* getWorld(); 72 70 73 void mainLoop();71 //void mainLoop(); 74 72 }; 75 73 76 #endif 74 #endif /* _ORXONOX_H */ 77 75 -
orxonox/branches/sound/src/player.cc
r2640 r3238 25 25 Player::Player(bool isFree) : WorldEntity(isFree) 26 26 { 27 }28 27 29 Player::~Player () 28 this->obj = new Object("reaplow.obj"); 29 /* 30 objectList = glGenLists(1); 31 glNewList (objectList, GL_COMPILE); 30 32 31 {32 }33 34 void Player::post_spawn ()35 {36 travel_speed = 15.0;37 velocity = Vector();38 bUp = bDown = bLeft = bRight = bAscend = bDescend = false;39 bFire = false;40 acceleration = 10.0;41 set_collision (new CollisionCluster (1.0, Vector(0,0,0)));42 }43 44 void Player::tick (float time)45 {46 // movement47 move (time);48 }49 50 void Player::hit (WorldEntity* weapon, Vector loc)51 {52 }53 54 void Player::destroy ()55 {56 }57 58 void Player::collide (WorldEntity* other, Uint32 ownhitflags, Uint32 otherhitflags)59 {60 }61 62 void Player::command (Command* cmd)63 {64 //printf("Player|recieved command [%s]\n", cmd->cmd);65 if( !strcmp( cmd->cmd, "up")) bUp = !cmd->bUp;66 else if( !strcmp( cmd->cmd, "down")) bDown = !cmd->bUp;67 else if( !strcmp( cmd->cmd, "left")) bLeft = !cmd->bUp;68 else if( !strcmp( cmd->cmd, "right")) bRight = !cmd->bUp;69 else if( !strcmp( cmd->cmd, "fire")) bFire = !cmd->bUp;70 }71 72 void Player::draw ()73 {74 glMatrixMode(GL_MODELVIEW);75 glLoadIdentity();76 float matrix[4][4];77 78 glTranslatef(get_placement()->r.x,get_placement()->r.y,get_placement()->r.z);79 get_placement()->w.matrix (matrix);80 glMultMatrixf ((float*)matrix);81 82 33 glBegin(GL_TRIANGLES); 83 34 glColor3f(1,1,1); … … 99 50 glEnd(); 100 51 101 //printf("Player@%f/%f/%f\n", get_placement()->r.x, get_placement()->r.y, get_placement()->r.z); 52 glEndList (); 53 */ 102 54 } 103 55 104 void Player::get_lookat (Location* locbuf)56 Player::~Player() 105 57 { 106 *locbuf = *get_location(); 107 //locbuf->dist += 5.0; 58 delete this->obj; 108 59 } 109 60 110 void Player::left_world () 61 void Player::postSpawn() 62 { 63 travelSpeed = 15.0; 64 velocity = Vector(); 65 bUp = bDown = bLeft = bRight = bAscend = bDescend = false; 66 bFire = false; 67 acceleration = 10.0; 68 setCollision(new CollisionCluster(1.0, Vector(0,0,0))); 69 } 70 71 void Player::tick(float time) 72 { 73 // movement 74 move (time); 75 } 76 77 void Player::hit(WorldEntity* weapon, Vector loc) 111 78 { 112 79 } 113 80 114 void Player::move (float time) 81 void Player::destroy() 82 { 83 } 84 85 void Player::collide(WorldEntity* other, Uint32 ownhitflags, Uint32 otherhitflags) 86 { 87 } 88 89 void Player::command(Command* cmd) 90 { 91 //printf("Player|recieved command [%s]\n", cmd->cmd); 92 if( !strcmp( cmd->cmd, "up")) bUp = !cmd->bUp; 93 else if( !strcmp( cmd->cmd, "down")) bDown = !cmd->bUp; 94 else if( !strcmp( cmd->cmd, "left")) bLeft = !cmd->bUp; 95 else if( !strcmp( cmd->cmd, "right")) bRight = !cmd->bUp; 96 else if( !strcmp( cmd->cmd, "fire")) bFire = !cmd->bUp; 97 } 98 99 void Player::draw() 100 { 101 glMatrixMode(GL_MODELVIEW); 102 glLoadIdentity(); 103 float matrix[4][4]; 104 105 glTranslatef(getPlacement()->r.x, getPlacement()->r.y, getPlacement()->r.z); 106 getPlacement()->w.matrix (matrix); 107 glMultMatrixf((float*)matrix); 108 109 glMatrixMode(GL_MODELVIEW); 110 glRotatef(-90, 0,1,0); 111 obj->draw(); 112 // glCallList(objectList); 113 114 115 116 } 117 118 void Player::getLookat(Location* locbuf) 119 { 120 *locbuf = *getLocation(); 121 //locbuf->dist += 5.0; 122 } 123 124 void Player::leftWorld() 125 { 126 } 127 128 void Player::move(float time) 115 129 { 116 130 Vector accel(0.0, 0.0, 0.0); 117 /* FIXME: calculating the direction and orthDirection every time _slice is redundant! save it somewhere */118 Placement *pos = get _placement();131 /* FIXME: calculating the direction and orthDirection every timeSlice is redundant! save it somewhere */ 132 Placement *pos = getPlacement(); 119 133 /* calculate the direction in which the craft is heading */ 120 134 Vector direction(0.0, 0.0, 1.0); … … 128 142 if( bRight ) { accel = accel - (orthDirection*acceleration); } 129 143 if( bAscend ) { /* not yet implemented but just: (0,0,1)*acceleration */} 130 if( bDescend) {/* FIXME */} 144 if( bDescend) {/* FIXME */} /* \todo up and down player movement */ 131 145 132 Location* l = get _location();146 Location* l = getLocation(); 133 147 134 148 // r(t) = r(0) + v(0)*t + 1/2*a*t^2 … … 138 152 139 153 /* this the base-speed of the player: determines how fast and how the player follows the track*/ 140 l->dist = l->dist + travel _speed * time;154 l->dist = l->dist + travelSpeed * time; 141 155 142 156 /* this updates the player position on the track - user interaction */ 143 157 l->pos = l->pos + accel*time; 144 158 } 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 -
orxonox/branches/sound/src/player.h
r2551 r3238 4 4 */ 5 5 6 #ifndef PLAYER_H7 #define PLAYER_H6 #ifndef _PLAYER_H 7 #define _PLAYER_H 8 8 9 9 #include "world_entity.h" 10 #include "importer/object.h" 10 11 11 12 //! Basic controllable WorldEntity … … 15 16 16 17 public: 17 Player 18 ~Player 18 Player(bool isFree = false); 19 ~Player(); 19 20 20 virtual void post _spawn();21 virtual void tick 22 virtual void hit 23 virtual void destroy 24 virtual void collide (WorldEntity* other,Uint32 ownhitflags, Uint32 otherhitflags);25 virtual void command 21 virtual void postSpawn(); 22 virtual void tick(float time); 23 virtual void hit(WorldEntity* weapon, Vector loc); 24 virtual void destroy(); 25 virtual void collide(WorldEntity* other, Uint32 ownhitflags, Uint32 otherhitflags); 26 virtual void command(Command* cmd); 26 27 27 virtual void draw 28 virtual void get _lookat(Location* locbuf);28 virtual void draw(); 29 virtual void getLookat(Location* locbuf); 29 30 30 virtual void left _world();31 virtual void leftWorld(); 31 32 32 33 private: … … 34 35 bool bFire; 35 36 Vector velocity; 36 float travel _speed;37 float travelSpeed; 37 38 float acceleration; 39 GLuint objectList; 40 Object* obj; 38 41 39 void move 42 void move(float time); 40 43 41 44 }; 42 45 43 #endif 46 #endif /* _PLAYER_H */ -
orxonox/branches/sound/src/power_up.h
r2077 r3238 4 4 */ 5 5 6 #ifndef POWER_UP_H7 #define POWER_UP_H6 #ifndef _POWER_UP_H 7 #define _POWER_UP_H 8 8 9 9 #include "data_tank.h" … … 19 19 }; 20 20 21 #endif 21 #endif /* _POWER_UP_H */ -
orxonox/branches/sound/src/proto_class.h
r2036 r3238 1 1 2 #ifndef PROTO_CLASS_H3 #define PROTO_CLASS_H2 #ifndef _PROTO_CLASS_H 3 #define _PROTO_CLASS_H 4 4 5 5 #include "data_tank.h" … … 14 14 }; 15 15 16 #endif 16 #endif /* _PROTO_CLASS_H */ -
orxonox/branches/sound/src/shoot_laser.h
r2036 r3238 1 1 2 #ifndef SHOOT_LASER_H3 #define SHOOT_LASER_H2 #ifndef _SHOOT_LASER_H 3 #define _SHOOT_LASER_H 4 4 5 5 … … 40 40 }; 41 41 42 #endif 42 #endif /* _SHOOT_LASER_H */ -
orxonox/branches/sound/src/shoot_rocket.h
r2036 r3238 1 1 2 #ifndef SHOOT_ROCKET_H3 #define SHOOT_ROCKET_H2 #ifndef _SHOOT_ROCKET_H 3 #define _SHOOT_ROCKET_H 4 4 5 5 … … 54 54 }; 55 55 56 #endif 56 #endif /* _SHOOT_ROCKET_H */ -
orxonox/branches/sound/src/stdincl.h
r2636 r3238 1 /*! 2 \file stdincl.h 3 \brief This file includes default headers that nearly every Class needs. 4 5 no Class is defined here, but many headers to classes, and more general Headers like the openGL-header. 6 */ 1 7 2 #ifndef STDINCL_H3 #define STDINCL_H8 #ifndef _STDINCL_H 9 #define _STDINCL_H 4 10 5 #define null 0 11 #define null 0 //!< null 12 13 // this includes the information from configure/makefiles 14 #if HAVE_CONFIG_H 15 #include <config.h> 16 #endif 6 17 7 18 #ifdef __WIN32__ 8 19 #include <windows.h> 9 20 #endif 21 22 #ifndef __APPLE__ 10 23 #include <SDL/SDL.h> 11 24 #include <GL/gl.h> 12 25 #include <GL/glu.h> 26 #else 27 #include <SDL.h> 28 #include <OpenGL/gl.h> 29 #include <OpenGL/glu.h> 30 #endif 13 31 14 32 #include "vector.h" 15 33 #include "coordinates.h" 16 34 #include "list.h" 35 #include "list_template.h" 17 36 #include "error.h" 37 #include "debug.h" 18 38 #include "message_structures.h" 19 39 #include "orxonox.h" 20 40 21 #endif 41 #endif /* _STDINCL_H */ -
orxonox/branches/sound/src/story_def.h
r2636 r3238 1 1 2 #ifndef STORY_DEF_H3 #define STORY_DEF_H2 #ifndef _STORY_DEF_H 3 #define _STORY_DEF_H 4 4 5 5 6 #define DEBUG_CAMPAIGN_0 07 #define DEBUG_CAMPAIGN_1 1 8 #define DEBUG_CAMPAIGN_2 26 #define DEBUG_CAMPAIGN_0 1000 7 #define DEBUG_CAMPAIGN_1 1001 8 #define DEBUG_CAMPAIGN_2 1002 9 9 10 #define DEBUG_WORLD_0 011 #define DEBUG_WORLD_1 1 12 #define DEBUG_WORLD_2 210 #define DEBUG_WORLD_0 100 11 #define DEBUG_WORLD_1 101 12 #define DEBUG_WORLD_2 102 13 13 14 14 #define WORLD_ID_0 0 … … 20 20 #define WORLD_ID_GAMEEND 999 21 21 22 #define MAX_STORY_ENTITIES 99 ;//!> maximal StoryEntities in a Campaign22 #define MAX_STORY_ENTITIES 99 //!> maximal StoryEntities in a Campaign 23 23 24 #endif 24 #endif /* _STORY_DEF_H */ -
orxonox/branches/sound/src/story_entity.cc
r2636 r3238 30 30 /** 31 31 \brief initialize the entity before use. 32 \returns an error code if not able to apply. 32 33 33 34 After execution of this function, the Entity is ready to be played/executed, 34 35 this shifts the initialisation work before the execution - very important... 35 36 36 */ 37 Error StoryEntity::init()37 ErrorMessage StoryEntity::init() 38 38 {} 39 39 40 40 41 void StoryEntity::setStoryID(Uint32 storyID) 41 /** 42 \brief sets the story ID 43 44 sets the story id of the current entity, this enables it to be identified in a 45 global context. 46 */ 47 void StoryEntity::setStoryID(int storyID) 42 48 { 43 49 this->storyID = storyID; 44 50 } 45 51 52 53 /** 54 \brief this reads the story id of the current entity 55 \returns the story entity id 56 */ 46 57 int StoryEntity::getStoryID() 47 58 { … … 50 61 51 62 52 void StoryEntity::setNextStoryID(Uint32 nextStoryID) 63 /** 64 \brief sets the id of the next story entity 65 66 StoryEntities can choose their following entity themselfs. the entity id defined here 67 will be startet after this entity ends. this can be convenient if you want to have a 68 non linear story with switches. 69 */ 70 void StoryEntity::setNextStoryID(int nextStoryID) 53 71 { 54 72 this->nextStoryID = nextStoryID; 55 73 } 56 74 57 Uint32 StoryEntity::getNextStoryID() 75 /** 76 \brief gets the story id of the current entity 77 \returns story id 78 */ 79 int StoryEntity::getNextStoryID() 58 80 { 59 81 return this->nextStoryID; … … 61 83 62 84 63 Error StoryEntity::start(Uint32 storyID) 64 {} 85 /** 86 \brief starts the entity with the choosen id. only for entities with lists. 87 \param story id 88 \returns error code if this action has caused a error 65 89 66 Error StoryEntity::start() 67 {} 68 69 Error StoryEntity::stop() 70 {} 71 72 Error StoryEntity::pause() 73 {} 74 75 Error StoryEntity::resume() 90 this simply starts the story with the id storyID. the story with the choosen id has 91 to be part of the current entity else, this doesn't make sense. this is used for 92 campaigns or the GameLoader, they have lists of Campaigns/Worlds with their own 93 storyID. 94 */ 95 ErrorMessage StoryEntity::start(int storyID) 76 96 {} 77 97 78 98 99 /** 100 \brief starts the current entity 101 \returns error code if this action has caused a error 102 */ 103 ErrorMessage StoryEntity::start() 104 {} 105 106 107 /** 108 \brief stops the current entity 109 \returns error code if this action has caused a error 110 111 ATTENTION: this function shouldn't call other functions, or if so, they must return 112 after finishing. If you ignore or forget to do so, the current entity is not able to 113 terminate and it will run in the background or the ressources can't be freed or even 114 worse: are freed and the program will end in a segmentation fault! 115 hehehe, all seen... :) 116 */ 117 ErrorMessage StoryEntity::stop() 118 {} 119 120 121 /** 122 \brief pause the current entity 123 \returns error code if this action has caused a error 124 125 this pauses the current entity or passes this call forth to the running entity. 126 */ 127 ErrorMessage StoryEntity::pause() 128 {} 129 130 131 /** 132 \brief resumes a pause 133 \returns error code if this action has caused a error 134 135 this resumess the current entity or passes this call forth to the running entity. 136 */ 137 ErrorMessage StoryEntity::resume() 138 {} 139 140 141 /** 142 \brief loads the current entity 143 144 this is here to enable you loading maps into the entities. for all other actions you 145 should take the init() function. 146 */ 79 147 void StoryEntity::load() 80 148 {} 81 149 82 150 83 void StoryEntity::displayEntityScreen() 151 /** 152 \brief destroys and cleans up the current entity. 153 154 this cleans up ressources before the deconstructor is called. for terminating 155 the entity please use the stop() function. 156 */ 157 void StoryEntity::destroy() 84 158 {} 85 159 86 void StoryEntity::releaseEntityScreen() 160 161 /** 162 \brief this displays the load screen 163 164 it will need some time to load maps or things like that. to inform the user about 165 progress and to just show him/her something for the eyes, put here this stuff 166 */ 167 void StoryEntity::displayLoadScreen() 87 168 {} 169 170 171 /** 172 \brief undisplay the load screen 173 174 the load process has terminated, you now can release the load screen and start this 175 entity. 176 */ 177 void StoryEntity::releaseLoadScreen() 178 {} -
orxonox/branches/sound/src/story_entity.h
r2636 r3238 1 /*! 2 \file story_entity.h 3 \brief holds the base class of everything that is playable - that is part of the story 4 */ 1 5 2 #ifndef STORY_ENTITY_H 3 #define STORY_ENTITY_H 6 7 #ifndef _STORY_ENTITY_H 8 #define _STORY_ENTITY_H 4 9 5 10 #include "stdincl.h" 6 11 #include "story_def.h" 7 12 13 //! A class that represents something to play in orxonox. it is a container for worlds, movies, mission briefings, etc... 8 14 class StoryEntity { 9 15 10 16 public: 11 17 StoryEntity (); 12 ~StoryEntity ();18 virtual ~StoryEntity (); 13 19 14 bool isInit; 15 bool isPaused; 20 bool isInit; //! if the entity is initialized, this has to be true 21 bool isPaused; //! is true if the entity is paused 16 22 17 virtual Error init();18 virtual Error start(Uint32storyID);19 virtual Error start();20 virtual Error stop();21 virtual Error pause();22 virtual Error resume();23 virtual ErrorMessage init(); 24 virtual ErrorMessage start(int storyID); 25 virtual ErrorMessage start(); 26 virtual ErrorMessage stop(); 27 virtual ErrorMessage pause(); 28 virtual ErrorMessage resume(); 23 29 24 30 virtual void load(); 31 virtual void destroy(); 25 32 26 virtual void display EntityScreen();27 virtual void release EntityScreen();33 virtual void displayLoadScreen(); 34 virtual void releaseLoadScreen(); 28 35 29 void setStoryID( Uint32storyID);36 void setStoryID(int storyID); 30 37 int getStoryID(); 31 38 32 void setNextStoryID( Uint32nextStoryID);33 Uint32getNextStoryID();39 void setNextStoryID(int nextStoryID); 40 int getNextStoryID(); 34 41 35 42 36 43 private: 37 Uint32 storyID;38 Uint32 nextStoryID;44 int storyID; //! this is the number of this entity, identifying it in a list/tree... 45 int nextStoryID; //! if this entity has finished, this entity shall be called 39 46 }; 40 47 41 #endif 48 #endif /* _STORY_ENTITY_H */ -
orxonox/branches/sound/src/synchronisable.h
r2036 r3238 1 1 2 #ifndef SYNCHRONISABLE_H3 #define SYNCHRONISABLE_H2 #ifndef _SYNCHRONISABLE_H 3 #define _SYNCHRONISABLE_H 4 4 5 5 #include "data_tank.h" … … 22 22 }; 23 23 24 #endif 24 #endif /* _SYNCHRONISABLE_H */ -
orxonox/branches/sound/src/track.cc
r2636 r3238 21 21 22 22 /** 23 23 \brief creates a null Track part 24 24 */ 25 25 Track::Track () 26 26 { 27 28 29 30 27 this->ID = 0; 28 this->offset = NULL; 29 this->end = NULL; 30 this->nextID = 0; 31 31 } 32 32 33 33 /** 34 35 36 37 38 34 \brief creates a functional base Track part 35 \param number: the ID if this Track part 36 \param next: the ID of the next Track part 37 \param start: pointer to an anchor point (Vector) representing the offset of this part 38 \param finish: pointer to an anchor point (Vector) representing the end of this part 39 39 */ 40 40 Track::Track (Uint32 number, Uint32 next, Vector* start, Vector* finish) 41 41 { 42 43 44 45 42 this->ID = number; 43 this->offset = start; 44 this->end = finish; 45 this->nextID = next; 46 46 } 47 47 48 48 /** 49 49 \brief removes the Track part from memory 50 50 */ 51 51 Track::~Track () … … 68 68 at inside camera boundaries. 69 69 */ 70 void Track::map _camera (Location* lookat, Placement* camplc)70 void Track::mapCamera (Location* lookat, Placement* camplc) 71 71 { 72 72 Line trace(*offset, *end - *offset); … … 103 103 when transfering between track parts. 104 104 */ 105 bool Track::map _coords (Location* loc, Placement* plc)105 bool Track::mapCoords (Location* loc, Placement* plc) 106 106 { 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 107 Line trace(*offset, *end - *offset); 108 float l = trace.len (); 109 110 /* change to the next track? */ 111 if( loc->dist > l) 112 { 113 loc->dist -= l; 114 loc->part = nextID; 115 //FIXME: loc->track = this; 116 return true; 117 } 118 119 /* this quaternion represents the rotation from start-vector (0,0,1) to the direction of 120 * the track */ 121 Quaternion dir(trace.a, Vector(0,0,1)); 122 123 plc->r = trace.r + (trace.a * ((loc->dist) / l)) + /*dir.apply*/(loc->pos); 124 plc->w = dir * loc->rot; 125 126 return false; 127 127 } 128 128 129 129 130 /** 130 131 132 133 134 131 \brief this is called when a WorldEntity enters a Track part 132 \param entity: pointer to the WorldEntity in question 133 134 You can do stuff like add or remove effects, do some coordinate finetuning 135 or whatever in here. 135 136 */ 136 void Track::post _enter (WorldEntity* entity)137 void Track::postEnter (WorldEntity* entity) 137 138 { 138 139 } 139 140 141 140 142 /** 141 142 143 144 145 143 \brief this is called when a WorldEntity leaves a Track part 144 \param entity: pointer to the WorldEntity in question 145 146 You can do stuff like add or remove effects, do some coordinate finetuning 147 or whatever in here. 146 148 */ 147 void Track::post _leave (WorldEntity* entity)149 void Track::postLeave (WorldEntity* entity) 148 150 { 149 151 } 150 152 153 151 154 /** 152 153 154 155 155 \brief this is called every frame 156 \param deltaT: amount of time passed since the last frame in seconds 157 158 Do time based or polling scripts here. 156 159 */ 157 160 void Track::tick (float deltaT) -
orxonox/branches/sound/src/track.h
r2636 r3238 4 4 */ 5 5 6 #ifndef TRACK_H7 #define TRACK_H6 #ifndef _TRACK_H 7 #define _TRACK_H 8 8 9 9 #include "stdincl.h" … … 25 25 Uint32 nextID; 26 26 27 27 28 28 public: 29 29 Track (); … … 32 32 virtual void init(); 33 33 34 virtual void post _enter (WorldEntity* entity); // handle coordinate transition in here !!! (when dist < 0 or dist > lasttracklenght)35 virtual void post _leave (WorldEntity* entity);34 virtual void postEnter (WorldEntity* entity); // handle coordinate transition in here !!! (when dist < 0 or dist > lasttracklenght) 35 virtual void postLeave (WorldEntity* entity); 36 36 virtual void tick (float deltaT); 37 virtual void map _camera (Location* lookat, Placement* camplc);38 virtual bool map _coords (Location* loc, Placement* plc); // this should return true if the entity left track boundaries37 virtual void mapCamera (Location* lookat, Placement* camplc); 38 virtual bool mapCoords (Location* loc, Placement* plc); // this should return true if the entity left track boundaries 39 39 }; 40 40 41 #endif 41 #endif /* _TRACK_H */ -
orxonox/branches/sound/src/vector.cc
r2551 r3238 33 33 { 34 34 Vector r; 35 35 36 36 r.x = x + v.x; 37 37 r.y = y + v.y; … … 203 203 \return the angle between the vectors in radians 204 204 */ 205 float angle _rad (const Vector& v1, const Vector& v2)205 float angleRad (const Vector& v1, const Vector& v2) 206 206 { 207 207 return acos( v1 * v2 / (v1.len() * v2.len())); … … 215 215 \return the angle between the vectors in degrees 216 216 */ 217 float angle _deg (const Vector& v1, const Vector& v2)217 float angleDeg (const Vector& v1, const Vector& v2) 218 218 { 219 219 float f; … … 243 243 244 244 /** 245 \brief calculates a look _at rotation245 \brief calculates a lookAt rotation 246 246 \param dir: the direction you want to look 247 247 \param up: specify what direction up should be … … 578 578 Vector axis = x.cross( v); 579 579 axis.normalize(); 580 float angle = angle _rad( x, v);580 float angle = angleRad( x, v); 581 581 float ca = cos(angle); 582 582 float sa = sin(angle); … … 714 714 \return the rotated vector 715 715 */ 716 Vector rotate _vector( const Vector& v, const Rotation& r)716 Vector rotateVector( const Vector& v, const Rotation& r) 717 717 { 718 718 Vector t; … … 745 745 \return the distance between the Line and the point 746 746 */ 747 float Line::distance _point (const Vector& v) const747 float Line::distancePoint (const Vector& v) const 748 748 { 749 749 Vector d = v-r; … … 761 761 Vector* fp = new Vector[2]; 762 762 Plane p = Plane (r + a.cross(l.a), r, r + a); 763 fp[1] = p.intersect _line (l);763 fp[1] = p.intersectLine (l); 764 764 p = Plane (fp[1], l.a); 765 fp[0] = p.intersect _line (*this);765 fp[0] = p.intersectLine (*this); 766 766 return fp; 767 767 } … … 783 783 { 784 784 Vector t = a + r; 785 t = rotate _vector( t, rot);786 r = rotate _vector( r, rot),785 t = rotateVector( t, rot); 786 r = rotateVector( r, rot), 787 787 a = t - r; 788 788 } … … 815 815 \param l: a line 816 816 */ 817 Vector Plane::intersect _line (const Line& l) const817 Vector Plane::intersectLine (const Line& l) const 818 818 { 819 819 if (n.x*l.a.x+n.y*l.a.y+n.z*l.a.z == 0.0) return Vector(0,0,0); … … 827 827 \return the distance between the plane and the point (can be negative) 828 828 */ 829 float Plane::distance _point (const Vector& p) const829 float Plane::distancePoint (const Vector& p) const 830 830 { 831 831 float l = n.len(); … … 839 839 \return 0 if the point is contained within the Plane, positive(negative) if the point is in the positive(negative) semi-space of the Plane 840 840 */ 841 float Plane::locate _point (const Vector& p) const841 float Plane::locatePoint (const Vector& p) const 842 842 { 843 843 return (n.dot(p) + k); 844 844 } 845 846 847 /** 848 \brief Creates a new BezierCurve 849 */ 850 BezierCurve::BezierCurve (void) 851 { 852 nodeCount = 0; 853 firstNode = new PathNode; 854 currentNode = firstNode; 855 856 firstNode->position = Vector (.0, .0, .0); 857 firstNode->number = 0; 858 firstNode->next = 0; // not sure if this really points to NULL!! 859 860 return; 861 } 862 863 /** 864 \brief Deletes a BezierCurve. 865 It does this by freeing all the space taken over from the nodes 866 */ 867 BezierCurve::~BezierCurve (void) 868 { 869 PathNode* tmpNode; 870 currentNode = firstNode; 871 while (tmpNode != 0) 872 { 873 tmpNode = currentNode; 874 currentNode = currentNode->next; 875 delete tmpNode; 876 } 877 } 878 879 /** 880 \brief adds a new Node to the bezier Curve 881 \param newNode a Vector to the position of the new node 882 */ 883 void BezierCurve::addNode(const Vector& newNode) 884 { 885 PathNode* tmpNode; 886 if (nodeCount == 0 ) 887 tmpNode = firstNode; 888 else 889 { 890 tmpNode = new PathNode; 891 currentNode = currentNode->next = tmpNode; 892 } 893 tmpNode->position = newNode; 894 tmpNode->next = 0; // not sure if this really points to NULL!! 895 tmpNode->number = (++nodeCount); 896 return; 897 } 898 899 /** 900 \brief calculates the Position on the curve 901 \param t The position on the Curve (0<=t<=1) 902 \return the Position on the Path 903 */ 904 Vector BezierCurve::calcPos(float t) 905 { 906 if (nodeCount <=4) 907 { 908 // if (verbose >= 1) 909 // printf ("Please define at least 4 nodes, until now you have only defined %i.\n", nodeCount); 910 curvePoint = Vector(0,0,0); 911 } 912 PathNode* tmpNode = firstNode; 913 914 int k,kn,nn,nkn; 915 double blend,muk,munk; 916 Vector b = Vector(0.0,0.0,0.0); 917 918 muk = 1; 919 munk = pow(1-t,(double)nodeCount); 920 921 for (k=0; k<=nodeCount; k++) { 922 nn = nodeCount; 923 kn = k; 924 nkn = nodeCount - k; 925 blend = muk * munk; 926 muk *= t; 927 munk /= (1-t); 928 while (nn >= 1) { 929 blend *= nn; 930 nn--; 931 if (kn > 1) { 932 blend /= (double)kn; 933 kn--; 934 } 935 if (nkn > 1) { 936 blend /= (double)nkn; 937 nkn--; 938 } 939 } 940 b.x += tmpNode->position.x * blend; 941 b.y += tmpNode->position.y * blend; 942 b.z += tmpNode->position.z * blend; 943 944 tmpNode = tmpNode->next; 945 } 946 return b; 947 } 948 949 Vector BezierCurve::calcDirection (float t) 950 { 951 double diff = .00000000001; 952 953 Vector diffV = ((calcPos(t+diff) - calcPos(t))/diff); 954 diffV.normalize(); 955 return diffV; 956 } 957 958 /** 959 \brief returns the Position of the point calculated on the Curve 960 \return a Vector to the calculated position 961 */ 962 Vector BezierCurve::getPos() const 963 { 964 return curvePoint; 965 } -
orxonox/branches/sound/src/vector.h
r2551 r3238 6 6 */ 7 7 8 #ifndef VECTOR_H9 #define VECTOR_H8 #ifndef _VECTOR_H 9 #define _VECTOR_H 10 10 11 11 #include <math.h> … … 40 40 }; 41 41 42 float angle _deg (const Vector& v1, const Vector& v2);43 float angle _rad (const Vector& v1, const Vector& v2);42 float angleDeg (const Vector& v1, const Vector& v2); 43 float angleRad (const Vector& v1, const Vector& v2); 44 44 45 45 //! Quaternion … … 98 98 99 99 //!< Apply a rotation to a vector 100 Vector rotate _vector( const Vector& v, const Rotation& r);100 Vector rotateVector( const Vector& v, const Rotation& r); 101 101 102 102 //! 3D line … … 118 118 119 119 float distance (const Line& l) const; 120 float distance _point (const Vector& v) const;120 float distancePoint (const Vector& v) const; 121 121 Vector* footpoints (const Line& l) const; 122 122 float len () const; … … 144 144 ~Plane () {} 145 145 146 Vector intersect _line (const Line& l) const;147 float distance _point (const Vector& p) const;148 float locate _point (const Vector& p) const;146 Vector intersectLine (const Line& l) const; 147 float distancePoint (const Vector& p) const; 148 float locatePoint (const Vector& p) const; 149 149 }; 150 150 151 #endif 151 152 153 //! Bezier Curve 154 /** 155 Class to handle bezier curves in 3-dimesnsional space 156 157 needed for the Tracking system in OrxOnoX. 158 */ 159 class BezierCurve 160 { 161 private: 162 int nodeCount; 163 Vector curvePoint; 164 165 struct PathNode 166 { 167 int number; 168 Vector position; 169 PathNode* next; 170 }; 171 172 PathNode* firstNode; 173 PathNode* currentNode; 174 175 public: 176 BezierCurve (void); 177 ~BezierCurve (void); 178 void addNode (const Vector& newNode); 179 Vector calcPos (float t); 180 Vector calcDirection (float t); 181 182 Vector getPos () const; 183 }; 184 185 186 187 #endif /* _VECTOR_H */ -
orxonox/branches/sound/src/world.cc
r2644 r3238 22 22 #include "command_node.h" 23 23 #include "camera.h" 24 #include "environment.h" 24 25 25 26 using namespace std; … … 35 36 this->worldName = name; 36 37 this->debugWorldNr = -1; 37 this->entities = new List<WorldEntity>();38 this->entities = new tList<WorldEntity>(); 38 39 } 39 40 … … 42 43 this->debugWorldNr = worldID; 43 44 this->worldName = NULL; 44 this->entities = new List<WorldEntity>();45 this->entities = new tList<WorldEntity>(); 45 46 } 46 47 … … 50 51 World::~World () 51 52 { 52 Orxonox *orx = Orxonox::getInstance(); 53 orx->get_localinput()->unbind (this->localPlayer); 53 printf("World::~World() - deleting current world\n"); 54 CommandNode* cn = Orxonox::getInstance()->getLocalInput(); 55 cn->unbind(this->localPlayer); 56 cn->reset(); 57 this->localCamera->destroy(); 58 59 WorldEntity* entity = entities->enumerate(); 60 while( entity != NULL ) 61 { 62 entity->destroy(); 63 entity = entities->nextElement(); 64 } 65 this->entities->destroy(); 66 54 67 delete this->entities; 55 68 delete this->localCamera; 56 } 57 58 59 /** 60 \brief initialize the world before use. 61 */ 62 Error World::init() 69 /* this->localPlayer hasn't to be deleted explicitly, it is 70 contained in entities*/ 71 } 72 73 74 ErrorMessage World::init() 63 75 { 64 76 this->bPause = false; 65 } 66 67 Error World::start() 68 { 77 CommandNode* cn = Orxonox::getInstance()->getLocalInput(); 78 cn->addToWorld(this); 79 cn->enable(true); 80 } 81 82 ErrorMessage World::start() 83 { 84 printf("World::start() - starting current World: nr %i\n", this->debugWorldNr); 85 this->bQuitOrxonox = false; 86 this->bQuitCurrentGame = false; 69 87 this->mainLoop(); 70 88 } 71 89 72 Error World::stop() 73 { 90 ErrorMessage World::stop() 91 { 92 printf("World::stop() - got stop signal\n"); 74 93 this->bQuitCurrentGame = true; 75 this->localCamera->setWorld(NULL); 76 this->~World(); 77 } 78 79 Error World::pause() 94 } 95 96 ErrorMessage World::pause() 80 97 { 81 98 this->isPaused = true; 82 99 } 83 100 84 Error World::resume()101 ErrorMessage World::resume() 85 102 { 86 103 this->isPaused = false; 87 104 } 88 105 106 void World::destroy() 107 { 108 109 } 110 89 111 void World::load() 90 112 { … … 93 115 switch(this->debugWorldNr) 94 116 { 117 /* 118 this loads the hard-coded debug world. this only for simplicity and will be 119 removed by a reald world-loader, which interprets a world-file. 120 if you want to add an own debug world, just add a case DEBUG_WORLD_[nr] and 121 make whatever you want... 122 */ 95 123 case DEBUG_WORLD_0: 96 124 { … … 98 126 this->pathnodes = new Vector[6]; 99 127 this->pathnodes[0] = Vector(0, 0, 0); 100 this->pathnodes[1] = Vector( -100, 40, 0);101 this->pathnodes[2] = Vector(-100, 140, 0);102 this->pathnodes[3] = Vector(0, 180, 0);103 this->pathnodes[4] = Vector(100, 140, 0);104 this->pathnodes[5] = Vector(100, 40, 0);128 this->pathnodes[1] = Vector(1000, 0, 0); 129 // this->pathnodes[2] = Vector(-100, 140, 0); 130 // this->pathnodes[3] = Vector(0, 180, 0); 131 // this->pathnodes[4] = Vector(100, 140, 0); 132 // this->pathnodes[5] = Vector(100, 40, 0); 105 133 106 134 // create the tracks 107 this->tracklen = 6;108 this->track = new Track[ 6];135 this->tracklen = 2; 136 this->track = new Track[2]; 109 137 for( int i = 0; i < this->tracklen; i++) 110 138 { 111 139 this->track[i] = Track( i, (i+1)%this->tracklen, &this->pathnodes[i], &this->pathnodes[(i+1)%this->tracklen]); 112 140 } 113 141 // !\todo old track-system has to be removed 142 114 143 // create a player 115 //WorldEntity* myPlayer = (WorldEntity*) this->spawn<Player>();116 144 WorldEntity* myPlayer = new Player(); 117 145 this->spawn(myPlayer); … … 120 148 // bind input 121 149 Orxonox *orx = Orxonox::getInstance(); 122 orx->get _localinput()->bind (myPlayer);150 orx->getLocalInput()->bind (myPlayer); 123 151 124 152 // bind camera 125 153 this->localCamera = new Camera(this); 126 154 this->getCamera()->bind (myPlayer); 155 156 Placement* plc = new Placement; 157 plc->r = Vector(100, 10, 10); 158 plc->w = Quaternion(); 159 WorldEntity* env = new Environment(); 160 this->spawn(env, plc); 161 127 162 break; 128 163 } … … 145 180 this->track[i] = Track( i, (i+1)%this->tracklen, &this->pathnodes[i], &this->pathnodes[(i+1)%this->tracklen]); 146 181 } 147 182 148 183 // create a player 149 //WorldEntity* myPlayer = (WorldEntity*) this->spawn<Player>();150 184 WorldEntity* myPlayer = new Player(); 151 185 this->spawn(myPlayer); 152 this->localPlayer = myPlayer; 186 this->localPlayer = myPlayer; 153 187 154 188 // bind input 155 189 Orxonox *orx = Orxonox::getInstance(); 156 orx->get _localinput()->bind (myPlayer);190 orx->getLocalInput()->bind (myPlayer); 157 191 158 192 // bind camera … … 169 203 170 204 } 205 206 // initialize debug coord system 207 objectList = glGenLists(1); 208 glNewList (objectList, GL_COMPILE); 209 glLoadIdentity(); 210 glColor3f(1.0,0,0); 211 glBegin(GL_QUADS); 212 213 int sizeX = 100; 214 int sizeY = 80; 215 float length = 1000; 216 float width = 200; 217 float widthX = float (length /sizeX); 218 float widthY = float (width /sizeY); 219 220 float height [sizeX][sizeY]; 221 Vector normal_vectors[sizeX][sizeY]; 222 223 224 for ( int i = 0; i<sizeX-1; i+=1) 225 for (int j = 0; j<sizeY-1;j+=1) 226 //height[i][j] = rand()/20046 + (j-25)*(j-25)/30; 227 #ifdef __WIN32__ 228 height[i][j]=(sin((float)j/3)*rand()*i/182400)*.5; 229 #else 230 height[i][j]=(sin((float)j/3)*rand()*(long)i/6282450500.0)*.5; 231 #endif 232 233 //Die Hügel ein wenig glätten 234 for (int h=1; h<2;h++) 235 for (int i=1;i<sizeX-2 ;i+=1 ) 236 for(int j=1;j<sizeY-2;j+=1) 237 height[i][j]=(height[i+1][j]+height[i][j+1]+height[i-1][j]+height[i][j-1])/4; 238 239 //Berechnung von normalen Vektoren 240 241 for(int i=1;i<sizeX-2;i+=1) 242 for(int j=1;j<sizeY-2 ;j+=1) 243 { 244 Vector v1 = Vector (widthX*(1), widthY*(j) , height[i][j]); 245 Vector v2 = Vector (widthX*(i-1), widthY*(j) , height[i-1][j]); 246 Vector v3 = Vector (widthX*(i), widthY*(j+1), height[i][j+1]); 247 Vector v4 = Vector (widthX*(i+1), widthY*(j), height[i+1][j]); 248 Vector v5 = Vector (widthX*(i), widthY*(j-1), height[i][j-1]); 249 250 Vector c1 = v2 - v1; 251 Vector c2 = v3 - v1; 252 Vector c3= v4 - v1; 253 Vector c4 = v5 - v1; 254 Vector zero = Vector (0,0,0); 255 normal_vectors[i][j]=c1.cross(v4-v2)+c2.cross(v1-v3)+c3.cross(v2-v4)+c4.cross(v3-v1); 256 normal_vectors[i][j].normalize(); 257 } 258 259 int snowheight=3; 260 for ( int i = 0; i<sizeX; i+=1) 261 for (int j = 0; j<sizeY;j+=1) 262 { 263 Vector v1 = Vector (widthX*(i), widthY*(j) -width/2, height[i][j]-20 ); 264 Vector v2 = Vector (widthX*(i+1), widthY*(j) -width/2, height[i+1][j]-20); 265 Vector v3 = Vector (widthX*(i+1), widthY*(j+1)-width/2, height[i+1][j+1]-20); 266 Vector v4 = Vector (widthX*(i), widthY*(j+1)-width/2, height[i][j+1]-20); 267 float a[3]; 268 if(height[i][j]<snowheight){ 269 a[0]=0; 270 a[1]=1.0-height[i][j]/10-.3; 271 a[2]=0; 272 glMaterialfv(GL_FRONT,GL_DIFFUSE,a); 273 } 274 else{ 275 a[0]=1.0; 276 a[1]=1.0; 277 a[2]=1.0; 278 glMaterialfv(GL_FRONT,GL_DIFFUSE,a); 279 280 } 281 glNormal3f(normal_vectors[i][j].x, normal_vectors[i][j].y, normal_vectors[i][j].z); 282 glVertex3f(v1.x, v1.y, v1.z); 283 if(height[i+1][j]<snowheight){ 284 a[0]=0; 285 a[1] =1.0-height[i+1][j]/10-.3; 286 a[2]=0; 287 glMaterialfv(GL_FRONT,GL_DIFFUSE,a); 288 } 289 else{ 290 a[0]=1.0; 291 a[1]=1.0; 292 a[2]=1.0; 293 glMaterialfv(GL_FRONT,GL_DIFFUSE,a); 294 295 } 296 glNormal3f(normal_vectors[i+1][j].x, normal_vectors[i+1][j].y, normal_vectors[i+1][j].z); 297 glVertex3f(v2.x, v2.y, v2.z); 298 if(height[i+1][j+1]<snowheight){ 299 a[0]=0; 300 a[1] =1.0-height[i+1][j+1]/10-.3; 301 a[2]=0; 302 glMaterialfv(GL_FRONT,GL_DIFFUSE,a); 303 } 304 else{ 305 a[0]=1.0; 306 a[1]=1.0; 307 a[2]=1.0; 308 glMaterialfv(GL_FRONT,GL_DIFFUSE,a); 309 310 311 } 312 glNormal3f(normal_vectors[i+1][j+1].x, normal_vectors[i+1][j+1].y, normal_vectors[i+1][j+1].z); 313 glVertex3f(v3.x, v3.y, v3.z); 314 if(height[i][j+1]<snowheight){ 315 a[0]=0; 316 a[1] =1.0-height[i+1][j+1]/10-.3; 317 a[2]=0; 318 glMaterialfv(GL_FRONT,GL_DIFFUSE,a); 319 } 320 else{ 321 a[0]=1.0; 322 a[1]=1.0; 323 a[2]=1.0; 324 glMaterialfv(GL_FRONT,GL_DIFFUSE,a); 325 } 326 glNormal3f(normal_vectors[i][j+1].x, normal_vectors[i][j+1].y, normal_vectors[i][j+1].z); 327 glVertex3f(v4.x, v4.y, v4.z); 328 329 } 330 glEnd(); 331 /* 332 glBegin(GL_LINES); 333 for( float x = -128.0; x < 128.0; x += 25.0) 334 { 335 for( float y = -128.0; y < 128.0; y += 25.0) 336 { 337 glColor3f(1,0,0); 338 glVertex3f(x,y,-128.0); 339 glVertex3f(x,y,0.0); 340 glColor3f(0.5,0,0); 341 glVertex3f(x,y,0.0); 342 glVertex3f(x,y,128.0); 343 } 344 } 345 for( float y = -128.0; y < 128.0; y += 25.0) 346 { 347 for( float z = -128.0; z < 128.0; z += 25.0) 348 { 349 glColor3f(0,1,0); 350 glVertex3f(-128.0,y,z); 351 glVertex3f(0.0,y,z); 352 glColor3f(0,0.5,0); 353 glVertex3f(0.0,y,z); 354 glVertex3f(128.0,y,z); 355 } 356 } 357 for( float x = -128.0; x < 128.0; x += 25.0) 358 { 359 for( float z = -128.0; z < 128.0; z += 25.0) 360 { 361 glColor3f(0,0,1); 362 glVertex3f(x,-128.0,z); 363 glVertex3f(x,0.0,z); 364 glColor3f(0,0,0.5); 365 glVertex3f(x,0.0,z); 366 glVertex3f(x,128.0,z); 367 } 368 369 } 370 */ 371 //draw track 372 glBegin(GL_LINES); 373 glColor3f(0,1,1); 374 for( int i = 0; i < tracklen; i++) 375 { 376 glVertex3f(pathnodes[i].x,pathnodes[i].y,pathnodes[i].z); 377 glVertex3f(pathnodes[(i+1)%tracklen].x,pathnodes[(i+1)%tracklen].y,pathnodes[(i+1)%tracklen].z); 378 } 379 glEnd(); 380 glEndList(); 171 381 } 172 382 … … 181 391 void World::collide () 182 392 { 183 List<WorldEntity> *a, *b; 393 /* 394 List *a, *b; 184 395 WorldEntity *aobj, *bobj; 185 186 a = entities ->get_next();396 397 a = entities; 187 398 188 399 while( a != NULL) 189 400 { 190 aobj = a-> get_object();401 aobj = a->nextElement(); 191 402 if( aobj->bCollide && aobj->collisioncluster != NULL) 192 403 { 193 b = a-> get_next();404 b = a->nextElement(); 194 405 while( b != NULL ) 195 406 { 196 bobj = b-> get_object();407 bobj = b->nextElement(); 197 408 if( bobj->bCollide && bobj->collisioncluster != NULL ) 198 409 { … … 206 417 } 207 418 } 208 b = b-> get_next();419 b = b->nextElement(); 209 420 } 210 421 } 211 a = a->get_next(); 212 } 422 a = a->enumerate(); 423 } 424 */ 213 425 } 214 426 … … 221 433 222 434 // draw entities 223 List<WorldEntity> *l;224 435 WorldEntity* entity; 225 436 226 l = entities->get_next();227 while( l!= NULL )437 entity = this->entities->enumerate(); 438 while( entity != NULL ) 228 439 { 229 entity = l->get_object();230 440 if( entity->bDraw ) entity->draw(); 231 l = l->get_next();441 entity = this->entities->nextElement(); 232 442 } 233 443 234 444 235 445 // draw debug coord system 236 glLoadIdentity(); 237 238 239 glBegin(GL_LINES); 240 241 for( float x = -128.0; x < 128.0; x += 25.0) 242 { 243 for( float y = -128.0; y < 128.0; y += 25.0) 244 { 245 glColor3f(1,0,0); 246 glVertex3f(x,y,-128.0); 247 glVertex3f(x,y,0.0); 248 glColor3f(0.5,0,0); 249 glVertex3f(x,y,0.0); 250 glVertex3f(x,y,128.0); 251 } 252 } 253 for( float y = -128.0; y < 128.0; y += 25.0) 254 { 255 for( float z = -128.0; z < 128.0; z += 25.0) 256 { 257 glColor3f(0,1,0); 258 glVertex3f(-128.0,y,z); 259 glVertex3f(0.0,y,z); 260 glColor3f(0,0.5,0); 261 glVertex3f(0.0,y,z); 262 glVertex3f(128.0,y,z); 263 } 264 } 265 for( float x = -128.0; x < 128.0; x += 25.0) 266 { 267 for( float z = -128.0; z < 128.0; z += 25.0) 268 { 269 glColor3f(0,0,1); 270 glVertex3f(x,-128.0,z); 271 glVertex3f(x,0.0,z); 272 glColor3f(0,0,0.5); 273 glVertex3f(x,0.0,z); 274 glVertex3f(x,128.0,z); 275 } 276 277 } 278 279 //draw track 280 glColor3f(0,1,1); 281 for( int i = 0; i < tracklen; i++) 282 { 283 glVertex3f(pathnodes[i].x,pathnodes[i].y,pathnodes[i].z); 284 glVertex3f(pathnodes[(i+1)%tracklen].x,pathnodes[(i+1)%tracklen].y,pathnodes[(i+1)%tracklen].z); 285 } 286 glEnd(); 446 glCallList (objectList); 447 448 287 449 } 288 450 … … 297 459 void World::update () 298 460 { 299 List<WorldEntity> *l;461 //List<WorldEntity> *l; 300 462 WorldEntity* entity; 301 463 Location* loc; … … 303 465 Uint32 t; 304 466 305 l = entities->get_next(); 306 while( l != NULL ) 467 // l = entities->enumerate(); 468 entity = this->entities->enumerate(); 469 while( entity != NULL ) 307 470 { 308 entity = l->get_object(); 471 309 472 310 473 if( !entity->isFree() ) 311 474 { 312 loc = entity->get _location();313 plc = entity->get _placement();475 loc = entity->getLocation(); 476 plc = entity->getPlacement(); 314 477 t = loc->part; 315 478 … … 318 481 { 319 482 printf("An entity is out of the game area\n"); 320 entity->left _world ();483 entity->leftWorld (); 321 484 } 322 485 else 323 486 { 324 while( track[t].map _coords( loc, plc) )487 while( track[t].mapCoords( loc, plc) ) 325 488 { 326 track[t].post _leave (entity);489 track[t].postLeave (entity); 327 490 if( loc->part >= tracklen ) 328 491 { 329 492 printf("An entity has left the game area\n"); 330 entity->left _world ();493 entity->leftWorld (); 331 494 break; 332 495 } 333 track[loc->part].post _enter (entity);496 track[loc->part].postEnter (entity); 334 497 } 335 498 } … … 337 500 else 338 501 { 339 /* TO DO: implement check whether this particular free entity502 /* \todo: implement check whether this particular free entity 340 503 is out of the game area 341 TO DO: call function to notify the entity that it left504 \todo: call function to notify the entity that it left 342 505 the game area 343 506 */ 344 507 } 345 508 346 l = l->get_next();509 entity = entities->nextElement(); 347 510 } 348 511 … … 353 516 \param deltaT: the time passed since the last frame in milliseconds 354 517 */ 355 void World::time _slice (Uint32 deltaT)356 { 357 List<WorldEntity> *l;518 void World::timeSlice (Uint32 deltaT) 519 { 520 //List<WorldEntity> *l; 358 521 WorldEntity* entity; 359 float seconds = deltaT; 360 361 seconds /= 1000; 362 363 l = entities->get_next(); 364 while( l != NULL) 522 float seconds = deltaT / 1000.0; 523 524 entity = entities->enumerate(); 525 while( entity != NULL) 365 526 { 366 entity = l->get_object();367 527 entity->tick (seconds); 368 l = l->get_next();369 } 370 371 for( int i = 0; i < tracklen; i++) track[i].tick (seconds);528 entity = entities->nextElement(); 529 } 530 531 //for( int i = 0; i < tracklen; i++) track[i].tick (seconds); 372 532 } 373 533 … … 387 547 Camera Placement 388 548 */ 389 void World::calc _camera_pos (Location* loc, Placement* plc)390 { 391 track[loc->part].map _camera (loc, plc);549 void World::calcCameraPos (Location* loc, Placement* plc) 550 { 551 track[loc->part].mapCamera (loc, plc); 392 552 } 393 553 … … 403 563 } 404 564 565 566 567 /** 568 \brief function to put your own debug stuff into it. it can display informations about 569 the current class/procedure 570 */ 405 571 void World::debug() 406 572 { 407 List<WorldEntity> *l;573 //List<WorldEntity> *l; 408 574 WorldEntity* entity; 409 575 410 576 printf("counting all entities\n"); 411 l = entities->get_next(); 412 while( l != NULL ) 577 printf("World::debug() - enumerate()\n"); 578 entity = entities->enumerate(); 579 while( entity != NULL ) 413 580 { 414 entity = l->get_object();415 581 if( entity->bDraw ) printf("got an entity\n"); 416 l = l->get_next(); 417 } 418 } 419 420 582 entity = entities->nextElement(); 583 } 584 } 585 586 587 /* 588 \brief main loop of the world: executing all world relevant function 589 590 in this loop we synchronize (if networked), handle input events, give the heart-beat to 591 all other member-entities of the world (tick to player, enemies etc.), checking for 592 collisions drawing everything to the screen. 593 */ 421 594 void World::mainLoop() 422 595 { 423 596 this->lastFrame = SDL_GetTicks(); 424 this->bQuitOrxonox = false; 425 this->bQuitCurrentGame = false; 426 printf("World|Entering main loop\n"); 427 while(!this->bQuitOrxonox && !this->bQuitCurrentGame) /* pause pause pause ?!?!?*/ 428 { 429 //debug routine 430 //debug(); 597 printf("World::mainLoop() - Entering main loop\n"); 598 while( !this->bQuitOrxonox && !this->bQuitCurrentGame) /* \todo implement pause */ 599 { 431 600 // Network 432 601 synchronize(); 433 602 // Process input 434 handle_input(); 603 handleInput(); 604 if( this->bQuitCurrentGame || this->bQuitOrxonox) 605 { 606 printf("World::mainLoop() - leaving loop earlier...\n"); 607 break; 608 } 435 609 // Process time 436 time _slice();610 timeSlice(); 437 611 // Process collision 438 612 collision(); 439 613 // Draw 440 614 display(); 441 } 442 printf("World|Exiting the main loop\n"); 615 616 for(int i = 0; i < 10000000; i++) {} 617 } 618 printf("World::mainLoop() - Exiting the main loop\n"); 443 619 } 444 620 … … 454 630 /** 455 631 \brief run all input processing 456 */ 457 void World::handle_input () 632 633 the command node is the central input event dispatcher. the node uses the even-queue from 634 sdl and has its own event-passing-queue. 635 */ 636 void World::handleInput () 458 637 { 459 638 // localinput 460 Orxonox::getInstance()->get_localinput()->process(); 639 CommandNode* cn = Orxonox::getInstance()->getLocalInput(); 640 cn->process(); 461 641 // remoteinput 462 642 } … … 464 644 /** 465 645 \brief advance the timeline 466 */ 467 void World::time_slice () 646 647 this calculates the time used to process one frame (with all input handling, drawing, etc) 648 the time is mesured in ms and passed to all world-entities and other classes that need 649 a heart-beat. 650 */ 651 void World::timeSlice () 468 652 { 469 653 Uint32 currentFrame = SDL_GetTicks(); … … 471 655 { 472 656 Uint32 dt = currentFrame - this->lastFrame; 473 /*657 474 658 if(dt > 0) 475 659 { … … 479 663 else 480 664 { 481 printf("fps = 1000\n"); 482 } 483 */ 484 this->time_slice (dt); 665 /* the frame-rate is limited to 100 frames per second, all other things are for 666 nothing. 667 */ 668 printf("fps = 1000 - frame rate is adjusted\n"); 669 SDL_Delay(10); 670 dt = 10; 671 } 672 this->timeSlice (dt); 485 673 this->update (); 486 this->localCamera->time _slice(dt);674 this->localCamera->timeSlice(dt); 487 675 } 488 676 this->lastFrame = currentFrame; 489 677 } 490 678 679 491 680 /** 492 681 \brief compute collision detection … … 497 686 } 498 687 499 /** 500 \brief handle keyboard commands that are not meant for WorldEntities 501 \param cmd: the command to handle 502 \return true if the command was handled by the system or false if it may be passed to the WorldEntities 503 */ 504 bool World::system_command (Command* cmd) 505 { 506 if( !strcmp( cmd->cmd, "quit")) 507 { 508 if( !cmd->bUp) this->bQuitOrxonox = true; 509 return true; 510 } 511 return false; 512 } 513 514 /** 515 \brief render the current frame 688 689 /** 690 \brief render the current frame 691 692 clear all buffers and draw the world 516 693 */ 517 694 void World::display () … … 528 705 } 529 706 707 /** 708 \brief give back active camera 709 710 this passes back the actualy active camera 711 \todo ability to define more than one camera or camera-places 712 */ 530 713 Camera* World::getCamera() 531 714 { … … 534 717 535 718 719 /** 720 \brief add and spawn a new entity to this world 721 \param entity to be added 722 */ 536 723 void World::spawn(WorldEntity* entity) 537 724 { … … 539 726 Location* loc = NULL; 540 727 WorldEntity* owner; 541 //T* entity = new T(); 542 entities->add (entity, LIST_ADD_NEXT); 543 //if( loc == NULL) 544 //{ 545 zeroloc.dist = 0; 546 zeroloc.part = 0; 547 zeroloc.pos = Vector(); 548 zeroloc.rot = Quaternion(); 549 loc = &zeroloc; 550 //} 728 729 entities->add (entity); 730 zeroloc.dist = 0; 731 zeroloc.part = 0; 732 zeroloc.pos = Vector(); 733 zeroloc.rot = Quaternion(); 734 loc = &zeroloc; 551 735 entity->init (loc, owner); 552 736 if (entity->bFree) 553 737 { 554 this->track[loc->part].map_coords( loc, entity->get_placement()); 555 } 556 entity->post_spawn (); 738 this->track[loc->part].mapCoords( loc, entity->getPlacement()); 739 } 740 entity->postSpawn (); 741 } 742 743 744 /** 745 \brief add and spawn a new entity to this world 746 \param entity to be added 747 \param location where to add 748 */ 749 void World::spawn(WorldEntity* entity, Location* loc) 750 { 751 Location zeroLoc; 752 WorldEntity* owner; 753 this->entities->add (entity); 754 if( loc == NULL) 755 { 756 zeroLoc.dist = 0; 757 zeroLoc.part = 0; 758 zeroLoc.pos = Vector(); 759 zeroLoc.rot = Quaternion(); 760 loc = &zeroLoc; 761 } 762 entity->init (loc, owner); 763 if (entity->bFree) 764 { 765 this->track[loc->part].mapCoords( loc, entity->getPlacement()); 766 } 767 entity->postSpawn (); 557 768 //return entity; 558 769 } 770 771 772 /** 773 \brief add and spawn a new entity to this world 774 \param entity to be added 775 \param place where to be added 776 */ 777 void World::spawn(WorldEntity* entity, Placement* plc) 778 { 779 Placement zeroPlc; 780 WorldEntity* owner; 781 if( plc == NULL) 782 { 783 zeroPlc.r = Vector(); 784 zeroPlc.w = Quaternion(); 785 plc = &zeroPlc; 786 } 787 this->entities->add (entity); 788 entity->init (plc, owner); 789 entity->postSpawn (); 790 //return entity; 791 } 792 793 794 /* 795 \brief commands that the world must catch 796 \returns false if not used by the world 797 */ 798 bool World::command(Command* cmd) 799 { 800 return false; 801 } -
orxonox/branches/sound/src/world.h
r2644 r3238 4 4 */ 5 5 6 #ifndef WORLD_H7 #define WORLD_H6 #ifndef _WORLD_H 7 #define _WORLD_H 8 8 9 9 #include "stdincl.h" … … 22 22 World (char* name); 23 23 World (int worldID); 24 ~World ();24 virtual ~World (); 25 25 26 26 template<typename T> 27 T* spawn (Location* loc, WorldEntity* owner); // template to be able to spawn any derivation of WorldEntity27 T* spawn (Location* loc, WorldEntity* owner); // template to be able to spawn any derivation of WorldEntity 28 28 template<typename T> 29 T* spawn (Placement* plc, WorldEntity* owner);29 T* spawn (Placement* plc, WorldEntity* owner); 30 30 31 virtual Error init();32 virtual Error start();33 virtual Error stop();34 virtual Error pause();35 virtual Error resume();31 virtual ErrorMessage init (); 32 virtual ErrorMessage start (); 33 virtual ErrorMessage stop (); 34 virtual ErrorMessage pause (); 35 virtual ErrorMessage resume (); 36 36 37 virtual void load(); 37 virtual void load (); 38 virtual void destroy (); 38 39 39 void time _slice (Uint32 deltaT);40 void timeSlice (Uint32 deltaT); 40 41 void collide (); 41 42 void draw (); 42 43 void update (); // maps Locations to Placements 43 void calc _camera_pos (Location* loc, Placement* plc);44 void calcCameraPos (Location* loc, Placement* plc); 44 45 45 46 void unload (); 47 bool command (Command* cmd); 46 48 47 void setTrackLen(Uint32 tracklen); 48 int getTrackLen(); 49 bool system_command (Command* cmd); 50 Camera* getCamera(); 51 //private: 49 void setTrackLen (Uint32 tracklen); 50 int getTrackLen (); 51 //bool system_command (Command* cmd); 52 Camera* getCamera (); 52 53 53 void spawn(WorldEntity* entity); 54 void spawn (WorldEntity* entity); 55 void spawn (WorldEntity* entity, Location* loc); 56 void spawn (WorldEntity* entity, Placement* plc); 54 57 55 List<WorldEntity>* entities;58 tList<WorldEntity>* entities; 56 59 57 60 // base level data … … 69 72 char* worldName; 70 73 int debugWorldNr; 74 GLuint objectList; 71 75 72 76 WorldEntity* localPlayer; 73 77 74 void mainLoop ();75 void synchronize ();76 void handle _input();77 void time _slice();78 void collision ();79 void display ();80 void debug ();78 void mainLoop (); 79 void synchronize (); 80 void handleInput (); 81 void timeSlice (); 82 void collision (); 83 void display (); 84 void debug (); 81 85 }; 82 86 83 /** 84 \brief spawn a new WorldEntity at a Location 85 \param loc: the Location where the Entity should be spawned 86 \param owner: a pointer to the parent of the Entity 87 \return a pointer to the new WorldEntity or NULL if there was an error 88 89 You can use this function to spawn any derivation of WorldEntity you want, just specify the desired 90 class within the template specification brackets. Do not attempt to spawn any classes that have NOT been 91 derived from WorldEntity, you won't even be able to compile the code. Note that this version of spawn() 92 works with both free and bound WorldEntities. 93 */ 94 template<typename T> T* World::spawn(Location* loc = NULL, WorldEntity* owner = NULL) 95 { 96 Location zeroloc; 97 T* entity = new T(); 98 entities->add ((WorldEntity*)entity, LIST_ADD_NEXT); 99 if( loc == NULL) 100 { 101 zeroloc.dist = 0; 102 zeroloc.part = 0; 103 zeroloc.pos = Vector(); 104 zeroloc.rot = Quaternion(); 105 loc = &zeroloc; 106 } 107 entity->init (loc, owner); 108 if (entity->bFree) 109 { 110 track[loc->part].map_coords( loc, entity->get_placement()); 111 } 112 entity->post_spawn (); 113 return entity; 114 } 115 116 /** 117 \brief spawn a new WorldEntity at a Placement 118 \param lplc: the placement where the Entity should be spawned 119 \param owner: a pointer to the parent of the Entity 120 \return a pointer to the new WorldEntity or NULL if there was an error 121 122 You can use this function to spawn any FREE derivation of WorldEntity you want, just specify the desired 123 class within the template specification brackets. Do not attempt to spawn any classes that have NOT been 124 derived from WorldEntity, you won't even be able to compile the code. Note that this version of spawn() 125 works with free WorldEntities only, you will provoke an error message if you try to spawn a bound Entity with 126 a Placement. 127 */ 128 template<typename T> T* World::spawn(Placement* plc, WorldEntity* owner = NULL) 129 { 130 T* entity = new T(); 131 entities->add ((WorldEntity*)entity, LIST_ADD_NEXT); 132 entity->init (plc, owner); 133 if (!entity->bFree) 134 { 135 printf("Can't spawn unfree entity with placement\n"); 136 entities->remove( (WorldEntity*)entity, LIST_FIND_FW); 137 return NULL; 138 } 139 entity->post_spawn (); 140 return entity; 141 } 142 143 #endif 87 #endif /* _WORLD_H */ -
orxonox/branches/sound/src/world_entity.cc
r2190 r3238 36 36 WorldEntity::WorldEntity (bool isFree) : bFree(isFree) 37 37 { 38 collisioncluster = NULL; 39 owner = NULL; 38 this->bDraw = true; 39 collisioncluster = NULL; 40 owner = NULL; 40 41 } 41 42 … … 45 46 WorldEntity::~WorldEntity () 46 47 { 47 48 if( collisioncluster != NULL) delete collisioncluster; 48 49 } 49 50 50 51 /** 51 52 52 \brief get the Location of the WorldEntity 53 \return a pointer to location 53 54 */ 54 Location* WorldEntity::get _location ()55 Location* WorldEntity::getLocation () 55 56 { 56 57 return &loc; 57 58 } 58 59 59 60 /** 60 61 61 \brief get the Placement of the WorldEntity 62 \return a pointer to placement 62 63 */ 63 Placement* WorldEntity::get _placement ()64 Placement* WorldEntity::getPlacement () 64 65 { 65 66 return &place; 66 67 } 67 68 68 69 /** 69 70 70 \brief query whether the WorldEntity in question is free 71 \return true if the WorldEntity is free or false if it isn't 71 72 */ 72 73 bool WorldEntity::isFree () … … 76 77 77 78 /** 78 79 80 81 79 \brief set the WorldEntity's collision hull 80 \param newhull: a pointer to a completely assembled CollisionCluster 81 82 Any previously assigned collision hull will be deleted on reassignment 82 83 */ 83 void WorldEntity::set _collision (CollisionCluster* newhull)84 void WorldEntity::setCollision (CollisionCluster* newhull) 84 85 { 85 86 87 86 if( newhull == NULL) return; 87 if( collisioncluster != NULL) delete collisioncluster; 88 collisioncluster = newhull; 88 89 } 89 90 90 91 /** 91 92 93 94 92 \brief this method is called every frame 93 \param time: the time in seconds that has passed since the last tick 94 95 Handle all stuff that should update with time inside this method (movement, animation, etc.) 95 96 */ 96 97 void WorldEntity::tick(float time) … … 100 101 /** 101 102 \brief the entity is drawn onto the screen with this function 102 103 103 104 This is a central function of an entity: call it to let the entity painted to the screen. Just override this function with whatever you want to be drawn. 104 105 */ … … 108 109 109 110 /** 110 111 112 113 111 \brief this function is called, when two entities collide 112 \param other: the world entity with whom it collides 113 \param ownhitflags: flags to the CollisionCluster subsections that registered an impact 114 \param otherhitflags: flags to the CollisionCluster subsections of the other entity that registered an impact 114 115 115 116 Implement behaviour like damage application or other miscellaneous collision stuff in this function 116 117 */ 117 118 void WorldEntity::collide(WorldEntity* other, Uint32 ownhitflags, Uint32 otherhitflags) {} … … 135 136 136 137 /** 137 138 \brief basic initialisation for bound Entities 138 139 */ 139 140 void WorldEntity::init( Location* spawnloc, WorldEntity* spawnowner) 140 141 { 141 142 142 loc = *spawnloc; 143 owner = spawnowner; 143 144 } 144 145 145 146 /** 146 147 \brief basic initialisation for free Entities 147 148 */ 148 149 void WorldEntity::init( Placement* spawnplc, WorldEntity* spawnowner) 149 150 { 150 151 151 place = *spawnplc; 152 owner = spawnowner; 152 153 } 153 154 154 155 /** 155 156 157 158 156 \brief this is called immediately after the Entity has been constructed and initialized 157 158 Put any initialisation code that requires knowledge of location (placement if the Entity is free) and owner of the entity here. 159 DO NOT place such code in the constructor, those variables are set AFTER the entity is constucted. 159 160 */ 160 void WorldEntity::post _spawn ()161 void WorldEntity::postSpawn () 161 162 { 162 163 } 163 164 164 165 /** 165 166 167 168 169 166 \brief this handles incoming command messages 167 \param cmd: a pointer to the incoming Command structure 168 169 Put all code that handles Command messages here, this will mainly be called by the assigned CommandNode but can also be used 170 to send commands from one WorldEntity to another. 170 171 */ 171 172 void WorldEntity::command (Command* cmd) … … 174 175 175 176 /** 176 177 177 \brief this is called by the local Camera to determine the point it should look at on the WorldEntity 178 \param locbuf: a pointer to the buffer to fill with a location to look at 178 179 179 180 180 You may put any Location you want into locbuf, the Camera will determine via the corresponding Track how 181 to look at the location you return with this. 181 182 */ 182 void WorldEntity::get _lookat (Location* locbuf)183 void WorldEntity::getLookat (Location* locbuf) 183 184 { 184 185 } 185 186 186 187 /** 187 188 189 190 188 \brief this method is called by the world if the WorldEntity leaves valid gamespace 189 190 For free entities this means it left the Track boundaries. With bound entities it means its Location adresses a 191 place that is not in the world anymore. In both cases you might have to take extreme measures (a.k.a. call destroy). 191 192 */ 192 void WorldEntity::left _world ()193 void WorldEntity::leftWorld () 193 194 { 194 195 } -
orxonox/branches/sound/src/world_entity.h
r2551 r3238 4 4 */ 5 5 6 #ifndef WORLD_ENTITY_H7 #define WORLD_ENTITY_H6 #ifndef _WORLD_ENTITY_H 7 #define _WORLD_ENTITY_H 8 8 9 9 #include "stdincl.h" … … 18 18 public: 19 19 WorldEntity (bool isFree = false); 20 ~WorldEntity ();20 virtual ~WorldEntity (); 21 21 22 Location* get _location ();23 Placement* get _placement ();24 void set _collision (CollisionCluster* newhull);22 Location* getLocation (); 23 Placement* getPlacement (); 24 void setCollision (CollisionCluster* newhull); 25 25 26 26 bool isFree (); … … 29 29 //void removeAbility(Ability* ability); 30 30 31 virtual void post _spawn ();31 virtual void postSpawn (); 32 32 virtual void tick (float time); 33 33 virtual void hit (WorldEntity* weapon, Vector loc); … … 37 37 38 38 virtual void draw (); 39 virtual void get _lookat (Location* locbuf);39 virtual void getLookat (Location* locbuf); 40 40 41 virtual void left _world ();41 virtual void leftWorld (); 42 42 43 43 private: … … 55 55 }; 56 56 57 #endif 57 #endif /* _WORLD_ENTITY_H */
Note: See TracChangeset
for help on using the changeset viewer.