Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Changeset 3238 in orxonox.OLD for orxonox/branches/nico/src


Ignore:
Timestamp:
Dec 20, 2004, 2:42:54 AM (20 years ago)
Author:
bensch
Message:

orxonox/branches: updated branches: buerli, nico, sound. And moved bezierTrack to old.bezierTrack. Conflicts resolved in a usefull order.
Conflics mostly resolved in favor of trunk
merge.

Location:
orxonox/branches/nico/src
Files:
6 deleted
50 edited
49 copied

Legend:

Unmodified
Added
Removed
  • orxonox/branches/nico/src/Makefile.am

    r2990 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=""
     2AM_LDFLAGS= $(MWINDOWS)
    33
    44#"-O3 -pedantic -fPIC -ffast-math -I/usr/X11R6/include"
     
    77bin_PROGRAMS=orxonox
    88
    9 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 object.cc environment.cc array.cc material.cc list.cc
    10 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 object.h array.h material.h list_template.h story_entity.h story_def.h game_loader.h campaign.h
     9orxonox_SOURCES= orxonox.cc \
     10                 world.cc \
     11                 player.cc \
     12                 collision.cc \
     13                 data_tank.cc \
     14                 world_entity.cc \
     15                 vector.cc \
     16                 camera.cc \
     17                 command_node.cc \
     18                 ini_parser.cc \
     19                 keynames.cc \
     20                 track.cc \
     21                 base_entity.cc \
     22                 game_loader.cc \
     23                 campaign.cc \
     24                 story_entity.cc \
     25                 environment.cc \
     26                 importer/object.cc \
     27                 importer/array.cc \
     28                 importer/material.cc \
     29                 list.cc
    1130
     31noinst_HEADERS = ability.h \
     32                 data_tank.h \
     33                 collision.h \
     34                 npc.h \
     35                 stdincl.h \
     36                 ai.h \
     37                 environment.h \
     38                 orxonox.h \
     39                 synchronisable.h \
     40                 base_entity.h \
     41                 error.h \
     42                 player.h \
     43                 track.h \
     44                 camera.h \
     45                 ini_parser.h \
     46                 power_up.h \
     47                 vector.h \
     48                 keynames.h \
     49                 proto_class.h \
     50                 world.h \
     51                 command_node.h \
     52                 list.h \
     53                 shoot_laser.h \
     54                 world_entity.h \
     55                 coordinates.h \
     56                 message_structures.h \
     57                 shoot_rocket.h \
     58                 list_template.h \
     59                 story_entity.h \
     60                 story_def.h \
     61                 game_loader.h \
     62                 campaign.h
    1263
     64## orxonox.conf will be used from home-dir instead.
     65EXTRA_DIST = orxonox.conf
    1366
    14 #  uncomment the following if bencoder requires the math library
     67### GTK_RELATED
     68if HAVE_GTK2
     69  GTK_PROGS =console
     70else
     71  GTK_PROGS =
     72endif
     73
     74SUBDIRS = . \
     75          importer \
     76          gui \
     77          $(GTK_PROGS)
     78
     79#  uncomment the following if orxonox requires the math library
    1580#orxonox_LDADD=-lm
    1681
  • orxonox/branches/nico/src/Makefile.in

    r2991 r3238  
    5454PROGRAMS = $(bin_PROGRAMS)
    5555am_orxonox_OBJECTS = orxonox.$(OBJEXT) world.$(OBJEXT) \
    56         player.$(OBJEXT) data_tank.$(OBJEXT) world_entity.$(OBJEXT) \
    57         vector.$(OBJEXT) camera.$(OBJEXT) collision.$(OBJEXT) \
     56        player.$(OBJEXT) collision.$(OBJEXT) data_tank.$(OBJEXT) \
     57        world_entity.$(OBJEXT) vector.$(OBJEXT) camera.$(OBJEXT) \
    5858        command_node.$(OBJEXT) ini_parser.$(OBJEXT) keynames.$(OBJEXT) \
    5959        track.$(OBJEXT) base_entity.$(OBJEXT) game_loader.$(OBJEXT) \
    60         campaign.$(OBJEXT) story_entity.$(OBJEXT) object.$(OBJEXT) \
    61         environment.$(OBJEXT) array.$(OBJEXT) material.$(OBJEXT) \
    62         list.$(OBJEXT)
     60        campaign.$(OBJEXT) story_entity.$(OBJEXT) \
     61        environment.$(OBJEXT) object.$(OBJEXT) array.$(OBJEXT) \
     62        material.$(OBJEXT) list.$(OBJEXT)
    6363orxonox_OBJECTS = $(am_orxonox_OBJECTS)
    6464orxonox_LDADD = $(LDADD)
     
    8686SOURCES = $(orxonox_SOURCES)
    8787DIST_SOURCES = $(orxonox_SOURCES)
     88RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
     89        html-recursive info-recursive install-data-recursive \
     90        install-exec-recursive install-info-recursive \
     91        install-recursive installcheck-recursive installdirs-recursive \
     92        pdf-recursive ps-recursive uninstall-info-recursive \
     93        uninstall-recursive
    8894HEADERS = $(noinst_HEADERS)
    8995ETAGS = etags
    9096CTAGS = ctags
     97DIST_SUBDIRS = . importer gui console
    9198DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
    9299ACLOCAL = @ACLOCAL@
     
    107114CXXFLAGS = @CXXFLAGS@
    108115CYGPATH_W = @CYGPATH_W@
     116DEBUG = @DEBUG@
    109117DEFS = @DEFS@
    110118DEPDIR = @DEPDIR@
     119DOXYGEN = @DOXYGEN@
     120DOXYGEN_FALSE = @DOXYGEN_FALSE@
     121DOXYGEN_TRUE = @DOXYGEN_TRUE@
    111122ECHO_C = @ECHO_C@
    112123ECHO_N = @ECHO_N@
     
    136147PACKAGE_VERSION = @PACKAGE_VERSION@
    137148PATH_SEPARATOR = @PATH_SEPARATOR@
    138 PKG_CONFIG = @PKG_CONFIG@
    139149SET_MAKE = @SET_MAKE@
    140150SHELL = @SHELL@
     
    183193target_os = @target_os@
    184194target_vendor = @target_vendor@
    185 AM_CXXFLAGS = "-I/usr/X11R6/include"
    186 AM_LDFLAGS = "-L/usr/Mesa-6.0.1/lib  -L/usr/X11R6/lib -lXt -lX11" $(MWINDOWS)
    187 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 object.cc environment.cc array.cc material.cc list.cc
    188 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 object.h array.h material.h list_template.h story_entity.h story_def.h game_loader.h campaign.h
    189 all: all-am
     195
     196#AM_CXXFLAGS=""
     197AM_LDFLAGS = $(MWINDOWS)
     198orxonox_SOURCES = orxonox.cc \
     199                 world.cc \
     200                 player.cc \
     201                 collision.cc \
     202                 data_tank.cc \
     203                 world_entity.cc \
     204                 vector.cc \
     205                 camera.cc \
     206                 command_node.cc \
     207                 ini_parser.cc \
     208                 keynames.cc \
     209                 track.cc \
     210                 base_entity.cc \
     211                 game_loader.cc \
     212                 campaign.cc \
     213                 story_entity.cc \
     214                 environment.cc \
     215                 importer/object.cc \
     216                 importer/array.cc \
     217                 importer/material.cc \
     218                 list.cc
     219
     220noinst_HEADERS = ability.h \
     221                 data_tank.h \
     222                 collision.h \
     223                 npc.h \
     224                 stdincl.h \
     225                 ai.h \
     226                 environment.h \
     227                 orxonox.h \
     228                 synchronisable.h \
     229                 base_entity.h \
     230                 error.h \
     231                 player.h \
     232                 track.h \
     233                 camera.h \
     234                 ini_parser.h \
     235                 power_up.h \
     236                 vector.h \
     237                 keynames.h \
     238                 proto_class.h \
     239                 world.h \
     240                 command_node.h \
     241                 list.h \
     242                 shoot_laser.h \
     243                 world_entity.h \
     244                 coordinates.h \
     245                 message_structures.h \
     246                 shoot_rocket.h \
     247                 list_template.h \
     248                 story_entity.h \
     249                 story_def.h \
     250                 game_loader.h \
     251                 campaign.h
     252
     253EXTRA_DIST = orxonox.conf
     254@HAVE_GTK2_FALSE@GTK_PROGS =
     255
     256### GTK_RELATED
     257@HAVE_GTK2_TRUE@GTK_PROGS = console
     258SUBDIRS = . \
     259          importer \
     260          gui \
     261          $(GTK_PROGS)
     262
     263all: all-recursive
    190264
    191265.SUFFIXES:
     
    200274          esac; \
    201275        done; \
    202         echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  src/Makefile'; \
     276        echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign  src/Makefile'; \
    203277        cd $(top_srcdir) && \
    204           $(AUTOMAKE) --gnu  src/Makefile
     278          $(AUTOMAKE) --foreign  src/Makefile
    205279.PRECIOUS: Makefile
    206280Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
     
    290364@AMDEP_TRUE@@am__fastdepCXX_FALSE@      $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
    291365@am__fastdepCXX_FALSE@  $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
     366
     367object.o: importer/object.cc
     368@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; \
     369@am__fastdepCXX_TRUE@   then mv -f "$(DEPDIR)/object.Tpo" "$(DEPDIR)/object.Po"; else rm -f "$(DEPDIR)/object.Tpo"; exit 1; fi
     370@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='importer/object.cc' object='object.o' libtool=no @AMDEPBACKSLASH@
     371@AMDEP_TRUE@@am__fastdepCXX_FALSE@      depfile='$(DEPDIR)/object.Po' tmpdepfile='$(DEPDIR)/object.TPo' @AMDEPBACKSLASH@
     372@AMDEP_TRUE@@am__fastdepCXX_FALSE@      $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     373@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
     374
     375object.obj: importer/object.cc
     376@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`; \
     377@am__fastdepCXX_TRUE@   then mv -f "$(DEPDIR)/object.Tpo" "$(DEPDIR)/object.Po"; else rm -f "$(DEPDIR)/object.Tpo"; exit 1; fi
     378@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='importer/object.cc' object='object.obj' libtool=no @AMDEPBACKSLASH@
     379@AMDEP_TRUE@@am__fastdepCXX_FALSE@      depfile='$(DEPDIR)/object.Po' tmpdepfile='$(DEPDIR)/object.TPo' @AMDEPBACKSLASH@
     380@AMDEP_TRUE@@am__fastdepCXX_FALSE@      $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     381@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`
     382
     383array.o: importer/array.cc
     384@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; \
     385@am__fastdepCXX_TRUE@   then mv -f "$(DEPDIR)/array.Tpo" "$(DEPDIR)/array.Po"; else rm -f "$(DEPDIR)/array.Tpo"; exit 1; fi
     386@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='importer/array.cc' object='array.o' libtool=no @AMDEPBACKSLASH@
     387@AMDEP_TRUE@@am__fastdepCXX_FALSE@      depfile='$(DEPDIR)/array.Po' tmpdepfile='$(DEPDIR)/array.TPo' @AMDEPBACKSLASH@
     388@AMDEP_TRUE@@am__fastdepCXX_FALSE@      $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     389@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
     390
     391array.obj: importer/array.cc
     392@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`; \
     393@am__fastdepCXX_TRUE@   then mv -f "$(DEPDIR)/array.Tpo" "$(DEPDIR)/array.Po"; else rm -f "$(DEPDIR)/array.Tpo"; exit 1; fi
     394@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='importer/array.cc' object='array.obj' libtool=no @AMDEPBACKSLASH@
     395@AMDEP_TRUE@@am__fastdepCXX_FALSE@      depfile='$(DEPDIR)/array.Po' tmpdepfile='$(DEPDIR)/array.TPo' @AMDEPBACKSLASH@
     396@AMDEP_TRUE@@am__fastdepCXX_FALSE@      $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     397@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`
     398
     399material.o: importer/material.cc
     400@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; \
     401@am__fastdepCXX_TRUE@   then mv -f "$(DEPDIR)/material.Tpo" "$(DEPDIR)/material.Po"; else rm -f "$(DEPDIR)/material.Tpo"; exit 1; fi
     402@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='importer/material.cc' object='material.o' libtool=no @AMDEPBACKSLASH@
     403@AMDEP_TRUE@@am__fastdepCXX_FALSE@      depfile='$(DEPDIR)/material.Po' tmpdepfile='$(DEPDIR)/material.TPo' @AMDEPBACKSLASH@
     404@AMDEP_TRUE@@am__fastdepCXX_FALSE@      $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     405@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
     406
     407material.obj: importer/material.cc
     408@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`; \
     409@am__fastdepCXX_TRUE@   then mv -f "$(DEPDIR)/material.Tpo" "$(DEPDIR)/material.Po"; else rm -f "$(DEPDIR)/material.Tpo"; exit 1; fi
     410@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='importer/material.cc' object='material.obj' libtool=no @AMDEPBACKSLASH@
     411@AMDEP_TRUE@@am__fastdepCXX_FALSE@      depfile='$(DEPDIR)/material.Po' tmpdepfile='$(DEPDIR)/material.TPo' @AMDEPBACKSLASH@
     412@AMDEP_TRUE@@am__fastdepCXX_FALSE@      $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     413@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`
    292414uninstall-info-am:
     415
     416# This directory's subdirectories are mostly independent; you can cd
     417# into them and run `make' without going through this Makefile.
     418# To change the values of `make' variables: instead of editing Makefiles,
     419# (1) if the variable is set in `config.status', edit `config.status'
     420#     (which will cause the Makefiles to be regenerated when you run `make');
     421# (2) otherwise, pass the desired values on the `make' command line.
     422$(RECURSIVE_TARGETS):
     423        @set fnord $$MAKEFLAGS; amf=$$2; \
     424        dot_seen=no; \
     425        target=`echo $@ | sed s/-recursive//`; \
     426        list='$(SUBDIRS)'; for subdir in $$list; do \
     427          echo "Making $$target in $$subdir"; \
     428          if test "$$subdir" = "."; then \
     429            dot_seen=yes; \
     430            local_target="$$target-am"; \
     431          else \
     432            local_target="$$target"; \
     433          fi; \
     434          (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
     435           || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
     436        done; \
     437        if test "$$dot_seen" = "no"; then \
     438          $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
     439        fi; test -z "$$fail"
     440
     441mostlyclean-recursive clean-recursive distclean-recursive \
     442maintainer-clean-recursive:
     443        @set fnord $$MAKEFLAGS; amf=$$2; \
     444        dot_seen=no; \
     445        case "$@" in \
     446          distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
     447          *) list='$(SUBDIRS)' ;; \
     448        esac; \
     449        rev=''; for subdir in $$list; do \
     450          if test "$$subdir" = "."; then :; else \
     451            rev="$$subdir $$rev"; \
     452          fi; \
     453        done; \
     454        rev="$$rev ."; \
     455        target=`echo $@ | sed s/-recursive//`; \
     456        for subdir in $$rev; do \
     457          echo "Making $$target in $$subdir"; \
     458          if test "$$subdir" = "."; then \
     459            local_target="$$target-am"; \
     460          else \
     461            local_target="$$target"; \
     462          fi; \
     463          (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
     464           || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
     465        done && test -z "$$fail"
     466tags-recursive:
     467        list='$(SUBDIRS)'; for subdir in $$list; do \
     468          test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
     469        done
     470ctags-recursive:
     471        list='$(SUBDIRS)'; for subdir in $$list; do \
     472          test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
     473        done
    293474
    294475ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
     
    302483tags: TAGS
    303484
    304 TAGS: $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
     485TAGS: tags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
    305486                $(TAGS_FILES) $(LISP)
    306487        tags=; \
    307488        here=`pwd`; \
     489        if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
     490          include_option=--etags-include; \
     491          empty_fix=.; \
     492        else \
     493          include_option=--include; \
     494          empty_fix=; \
     495        fi; \
     496        list='$(SUBDIRS)'; for subdir in $$list; do \
     497          if test "$$subdir" = .; then :; else \
     498            test ! -f $$subdir/TAGS || \
     499              tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \
     500          fi; \
     501        done; \
    308502        list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
    309503        unique=`for i in $$list; do \
     
    318512        fi
    319513ctags: CTAGS
    320 CTAGS: $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
     514CTAGS: ctags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
    321515                $(TAGS_FILES) $(LISP)
    322516        tags=; \
     
    367561          fi; \
    368562        done
     563        list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
     564          if test "$$subdir" = .; then :; else \
     565            test -d "$(distdir)/$$subdir" \
     566            || mkdir "$(distdir)/$$subdir" \
     567            || exit 1; \
     568            (cd $$subdir && \
     569              $(MAKE) $(AM_MAKEFLAGS) \
     570                top_distdir="../$(top_distdir)" \
     571                distdir="../$(distdir)/$$subdir" \
     572                distdir) \
     573              || exit 1; \
     574          fi; \
     575        done
    369576check-am: all-am
    370 check: check-am
     577check: check-recursive
    371578all-am: Makefile $(PROGRAMS) $(HEADERS)
    372 installdirs:
     579installdirs: installdirs-recursive
     580installdirs-am:
    373581        for dir in "$(DESTDIR)$(bindir)"; do \
    374582          test -z "$$dir" || $(mkdir_p) "$$dir"; \
    375583        done
    376 install: install-am
    377 install-exec: install-exec-am
    378 install-data: install-data-am
    379 uninstall: uninstall-am
     584install: install-recursive
     585install-exec: install-exec-recursive
     586install-data: install-data-recursive
     587uninstall: uninstall-recursive
    380588
    381589install-am: all-am
    382590        @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
    383591
    384 installcheck: installcheck-am
     592installcheck: installcheck-recursive
    385593install-strip:
    386594        $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
     
    398606        @echo "This command is intended for maintainers to use"
    399607        @echo "it deletes files that may require special tools to rebuild."
    400 clean: clean-am
     608clean: clean-recursive
    401609
    402610clean-am: clean-binPROGRAMS clean-generic mostlyclean-am
    403611
    404 distclean: distclean-am
     612distclean: distclean-recursive
    405613        -rm -rf ./$(DEPDIR)
    406614        -rm -f Makefile
     
    408616        distclean-tags
    409617
    410 dvi: dvi-am
     618dvi: dvi-recursive
    411619
    412620dvi-am:
    413621
    414 html: html-am
    415 
    416 info: info-am
     622html: html-recursive
     623
     624info: info-recursive
    417625
    418626info-am:
     
    422630install-exec-am: install-binPROGRAMS
    423631
    424 install-info: install-info-am
     632install-info: install-info-recursive
    425633
    426634install-man:
     
    428636installcheck-am:
    429637
    430 maintainer-clean: maintainer-clean-am
     638maintainer-clean: maintainer-clean-recursive
    431639        -rm -rf ./$(DEPDIR)
    432640        -rm -f Makefile
    433641maintainer-clean-am: distclean-am maintainer-clean-generic
    434642
    435 mostlyclean: mostlyclean-am
     643mostlyclean: mostlyclean-recursive
    436644
    437645mostlyclean-am: mostlyclean-compile mostlyclean-generic
    438646
    439 pdf: pdf-am
     647pdf: pdf-recursive
    440648
    441649pdf-am:
    442650
    443 ps: ps-am
     651ps: ps-recursive
    444652
    445653ps-am:
     
    447655uninstall-am: uninstall-binPROGRAMS uninstall-info-am
    448656
    449 .PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \
    450         clean-generic ctags distclean distclean-compile \
    451         distclean-generic distclean-tags distdir dvi dvi-am html \
     657uninstall-info: uninstall-info-recursive
     658
     659.PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am check check-am \
     660        clean clean-binPROGRAMS clean-generic clean-recursive ctags \
     661        ctags-recursive distclean distclean-compile distclean-generic \
     662        distclean-recursive distclean-tags distdir dvi dvi-am html \
    452663        html-am info info-am install install-am install-binPROGRAMS \
    453664        install-data install-data-am install-exec install-exec-am \
    454665        install-info install-info-am install-man install-strip \
    455         installcheck installcheck-am installdirs maintainer-clean \
    456         maintainer-clean-generic mostlyclean mostlyclean-compile \
    457         mostlyclean-generic pdf pdf-am ps ps-am tags uninstall \
    458         uninstall-am uninstall-binPROGRAMS uninstall-info-am
    459 
    460 
    461 #  uncomment the following if bencoder requires the math library
     666        installcheck installcheck-am installdirs installdirs-am \
     667        maintainer-clean maintainer-clean-generic \
     668        maintainer-clean-recursive mostlyclean mostlyclean-compile \
     669        mostlyclean-generic mostlyclean-recursive pdf pdf-am ps ps-am \
     670        tags tags-recursive uninstall uninstall-am \
     671        uninstall-binPROGRAMS uninstall-info-am
     672
     673
     674#  uncomment the following if orxonox requires the math library
    462675#orxonox_LDADD=-lm
    463676
  • orxonox/branches/nico/src/ability.h

    r2043 r3238  
    11
    2 #ifndef ABILITY_H
    3 #define ABILITY_H
     2#ifndef _ABILITY_H
     3#define _ABILITY_H
    44
    55#include "data_tank.h"
     
    1414};
    1515
    16 #endif
     16#endif /* _ABILITY_H */
  • orxonox/branches/nico/src/ai.h

    r1956 r3238  
    11
    2 #ifndef AI_H
    3 #define AI_H
     2#ifndef _AI_H
     3#define _AI_H
    44
    55#include "data_tank.h"
     
    1313};
    1414
    15 #endif
     15#endif /* _AI_H */
  • orxonox/branches/nico/src/base_entity.h

    r2551 r3238  
    11
    2 #ifndef BASE_ENTITY_H
    3 #define BASE_ENTITY_H
     2#ifndef _BASE_ENTITY_H
     3#define _BASE_ENTITY_H
    44
    55#include "stdincl.h"
     
    1414};
    1515
    16 #endif
     16#endif /* _BASE_ENTITY_H */
  • orxonox/branches/nico/src/camera.cc

    r2636 r3238  
    3030{
    3131  this->world = world;
    32   bound = NULL;
     32  this->bound = NULL;
    3333  /* 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;
    4747}
    4848
     
    6161   as smooth camera movement or swaying).
    6262*/
    63 void Camera::time_slice (Uint32 deltaT)
    64 {
    65   if(t <= deltaTime)
    66     {t += deltaT;}
     63void Camera::timeSlice (Uint32 deltaT)
     64{
     65  if( this->t <= deltaTime)
     66    {this->t += deltaT;}
    6767  //printf("time is: t=%f\n", t );
    68   update_desired_place ();
    69   jump (NULL);
     68  updateDesiredPlace();
     69  jump(NULL);
    7070}
    7171
     
    7676   bound entity's position on the track.
    7777*/
    78 void Camera::update_desired_place ()
     78void Camera::updateDesiredPlace ()
    7979{
    8080  switch(cameraMode)
     
    8989        if( bound != NULL)
    9090          {
    91             bound->get_lookat (&lookat);
    92             orx->get_world()->calc_camera_pos (&lookat, &plFocus);
     91            bound->getLookat (&lookat);
     92            orx->getWorld()->calcCameraPos (&lookat, &plFocus);
    9393            Quaternion *fr;
    9494            if(t < 20.0)
     
    101101               
    102102                Vector op(1.0, 0.0, 0.0);
    103                 float angle = angle_deg(op, *start);
     103                float angle = angleDeg(op, *start);
    104104                printf("angle is: %f\n", angle);
    105105
     
    144144
    145145            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);
    149149            //plLastBPlace = *bound->get_placement();
    150150          }
     
    153153    case SMOTH_FOLLOW:
    154154      {
    155         Placement *plBound = bound->get_placement();
     155        Placement *plBound = bound->getPlacement();
    156156        Location lcBound;
    157157        if(bound != null)
    158158          {
    159             bound->get_lookat(&lcBound);
     159            bound->getLookat(&lcBound);
    160160            Vector vDirection(0.0, 0.0, 1.0);
    161161            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);
    163163          }
    164164        break;
     
    169169        if(bound != null)
    170170          {
    171             Placement *plBound = bound->get_placement();
     171            Placement *plBound = bound->getPlacement();
    172172            Vector vDirection(0.0, 0.0, 1.0);
    173173            Vector eclipticOffset(0.0, 0.0, 5.0);
    174174            vDirection = plBound->w.apply(vDirection);
    175             desired_place.r = plBound->r - vDirection*10 + eclipticOffset;
     175            desiredPlace.r = plBound->r - vDirection*10 + eclipticOffset;
    176176          }
    177177        break;
     
    182182      if( bound != NULL && world != NULL )
    183183        {
    184           bound->get_lookat (&lookat);
    185           world->calc_camera_pos (&lookat, &desired_place);
     184          bound->getLookat (&lookat);
     185          world->calcCameraPos (&lookat, &desiredPlace);
    186186        }
    187187      else
    188188        {
    189           desired_place.r = Vector (0,0,0);
    190           desired_place.w = Quaternion ();
     189          desiredPlace.r = Vector (0,0,0);
     190          desiredPlace.w = Quaternion ();
    191191        }
    192192      break;
     
    206206  // view
    207207  // 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 
    209211  //Vector up(0,0,1);
    210212  //Vector dir(1,0,0);
     
    235237  // rotation
    236238  float matrix[4][4];
    237   actual_place.w.conjugate().matrix (matrix);
     239  actualPlace.w.conjugate().matrix (matrix);
    238240  /* orientation and */
    239241  glMultMatrixf ((float*)matrix);
    240242  /*  translation */
    241   glTranslatef (-actual_place.r.x, -actual_place.r.y,- actual_place.r.z);
    242   //Placement *plBound = bound->get_placement();
     243  glTranslatef (-actualPlace.r.x, -actualPlace.r.y,- actualPlace.r.z);
     244//Placement *plBound = bound->get_placement();
    243245
    244246  // ===== second camera control calculation option
    245247  /*
    246     gluLookAt(actual_place.r.x, actual_place.r.y, actual_place.r.z,
     248   gluLookAt(actual_place.r.x, actual_place.r.y, actual_place.r.z,
    247249              plBound->r.x, plBound->r.y, plBound->r.z,
    248250              0.0, 0.0, 1.0);
     
    263265  if( plc == NULL)
    264266    {
    265       actual_place = desired_place;
     267      actualPlace = desiredPlace;
    266268      //printf("Camera|jump: camer@ %f, %f, %f\n\n", actual_place.r.x, actual_place.r.y, actual_place.r.z);
    267269    }
    268270  else
    269271    {
    270       desired_place = *plc;
    271       actual_place = *plc;
     272      desiredPlace = *plc;
     273      actualPlace = *plc;
    272274    }
    273275}
     
    277279  \param entity: The enitity to bind the camera to
    278280       
    279         This sets the focus of the camera to the given entity. This means that it will use the given WorldEntity's
    280         Location and get_lookat() to determine the viewpoint the camera will render from.
    281         Note that you cannot bind a camera to a free entity.
     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.
    282284*/
    283285void Camera::bind (WorldEntity* entity)
     
    285287  if( entity != NULL)
    286288    {
    287       if( entity->isFree ()) printf("Cannot bind camera to free entity");
     289      if( entity->isFree()) printf("Cannot bind camera to free entity");
    288290      else
    289291        {
    290           bound = entity;
     292          this->bound = entity;
    291293        }
    292294    }
     
    298300  this->world = world;
    299301}
     302
     303
     304/**
     305   \brief destroy, reset the camera so that it doesn't perform anything anymore
     306
     307*/
     308void Camera::destroy()
     309{
     310  this->bound = NULL;
     311  this->world = NULL;
     312}
  • orxonox/branches/nico/src/camera.h

    r2636 r3238  
    44*/
    55
    6 #ifndef CAMERA_H
    7 #define CAMERA_H
     6#ifndef _CAMERA_H
     7#define _CAMERA_H
    88
    99#include "stdincl.h"
     
    2626 private:
    2727  WorldEntity* bound;           //!< the WorldEntity the Camera is bound to
    28   Placement actual_place;               //!< the Camera's current position
    29   Placement desired_place;        //!< where the Camera should be according to calculations
     28  Placement actualPlace;                //!< the Camera's current position
     29  Placement desiredPlace;        //!< where the Camera should be according to calculations
    3030  World* world;
    3131 
     
    5454  CAMERA_MODE cameraMode; //!< saves the camera mode: how the camera follows the entity
    5555 
    56   void update_desired_place ();
     56  void updateDesiredPlace ();
    5757 
    5858 public:
     
    6060  ~Camera ();
    6161 
    62   void time_slice (Uint32 deltaT);
     62  void timeSlice (Uint32 deltaT);
    6363  void apply ();
    6464  void bind (WorldEntity* entity);
    6565  void jump (Placement* plc);
     66  void destroy();
    6667
    6768  void setWorld(World* world); 
     
    6970};
    7071
    71 #endif
     72#endif /* _CAMERA_H */
  • orxonox/branches/nico/src/campaign.cc

    r2816 r3238  
    3434
    3535
    36 Error Campaign::init()
     36ErrorMessage Campaign::init()
    3737{
    3838  this->isInit = true;
     
    4848    want to queue up in the campaign.
    4949*/
    50 void Campaign::addEntity(StoryEntity* se, Uint32 storyID)
     50void Campaign::addEntity(StoryEntity* se, int storyID)
    5151{
    5252  se->setStoryID(storyID);
     
    6060
    6161
    62 void Campaign::removeEntity(Uint32 storyID)
     62void Campaign::removeEntity(int storyID)
    6363{
    6464  this->removeEntity(this->getStoryEntity(storyID));
     
    7373
    7474
    75 Error Campaign::start()
     75ErrorMessage Campaign::start()
    7676{
    7777  this->start(0);
    7878}
    7979
    80 Error Campaign::start(Uint32 storyID = 0)
     80ErrorMessage Campaign::start(int storyID = 0)
    8181{
    8282  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;
    8686  this->running = true;
    8787  StoryEntity* se = this->getStoryEntity(storyID);
    88   while(se != NULL && this->running)
     88  this->currentEntity = se;
     89  while( se != NULL && this->running)
    8990    {
    90       se = this->getStoryEntity(storyID);
    91       this->currentEntity = se;
    92      
    93       se->displayEntityScreen();
     91      se->displayLoadScreen();
    9492      se->load();
    9593      se->init();
    96       se->releaseEntityScreen();
     94      se->releaseLoadScreen();
    9795      se->start();
     96      se->destroy();
     97     
     98      delete se;
    9899
    99100      int nextWorldID = se->getNextStoryID();
    100       if(nextWorldID == WORLD_ID_GAMEEND) return errorCode;
     101      //printf("Campaing::start() - got nextWorldID = %i\n", nextWorldID);
    101102      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     
    104112    }
    105113}
    106114
    107 Error Campaign::stop()
     115ErrorMessage Campaign::stop()
    108116{
    109117  this->running = false;
     
    111119    {
    112120      this->currentEntity->stop();
    113       delete this->currentEntity;
    114       this->currentEntity = NULL;
     121      //delete this->currentEntity;
     122      //this->currentEntity = NULL;
    115123    }
    116124}
    117125
    118 Error Campaign::pause()
     126ErrorMessage Campaign::pause()
    119127{
    120128  if(this->currentEntity != NULL)
     
    123131
    124132
    125 Error Campaign::resume()
     133ErrorMessage Campaign::resume()
    126134{
    127135  if(this->currentEntity != NULL)
     
    130138
    131139
     140void 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*/
    132153void Campaign::nextLevel()
    133154{
    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();
    138160}
    139161
     162/*
     163  \brief change to the previous level - not implemented
     164
     165  this propably useless
     166*/
    140167void Campaign::previousLevel()
    141168{}
    142169
    143170
    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*/
     176StoryEntity* Campaign::getStoryEntity(int storyID)
    145177{
     178  //printf("Campaing::getStoryEntity(%i) - getting next Entity\n", storyID);
     179  if( storyID == WORLD_ID_GAMEEND)
     180    return NULL;
    146181  ListTemplate<StoryEntity>* l;
    147   StoryEntity* entity;
    148   l = this->entities->get_next(); 
     182  StoryEntity* entity = NULL;
     183  l = this->entities->getNext(); 
    149184  while( l != NULL)
    150185    {
    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        }
    155195    }
    156196  return NULL;
  • orxonox/branches/nico/src/campaign.h

    r2816 r3238  
    11
    2 #ifndef CAMPAIGN_H
    3 #define CAMPAIGN_H
     2#ifndef _CAMPAIGN_H
     3#define _CAMPAIGN_H
    44
    55#include "stdincl.h"
     
    1717  StoryEntity* currentEntity;
    1818
    19   virtual Error init();
    20   virtual Error start();
    21   virtual Error start(Uint32 storyID);
    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();
    2525
    26   void addEntity(StoryEntity* se, Uint32 storyID);
     26  virtual void destroy();
     27
     28  void addEntity(StoryEntity* se, int storyID);
    2729  void addEntity(StoryEntity* se);
    28   void removeEntity(Uint32 storyID);
     30  void removeEntity(int storyID);
    2931  void removeEntity(StoryEntity* se);
    3032 
     
    3638  bool running;
    3739
    38   StoryEntity* getStoryEntity(Uint32 storyID);
     40  StoryEntity* getStoryEntity(int storyID);
    3941};
    4042
    41 #endif
     43#endif /* _CAMPAIGN_H */
  • orxonox/branches/nico/src/collision.cc

    r2190 r3238  
    2828CollisionCluster::CollisionCluster (float rad = 1.0, Vector mid = Vector(0,0,0))
    2929{
    30   root = (CC_Tree*) malloc( sizeof( CC_Tree));
     30  root = (CCTree*) malloc( sizeof( CCTree));
    3131  root->n = 0;
    3232  root->data.ID = 0;
     
    6262  }
    6363 
    64   root = load_CC_Tree (stream);
     64  root = loadCCTree (stream);
    6565  fclose (stream);
    6666}
     
    7171CollisionCluster::~CollisionCluster ()
    7272{
    73   free_CC_Tree( root);
     73  freeCCTree(root);
    7474}
    7575
     
    8585  stream = fopen( filename, "wb");
    8686  if( stream == NULL) return -1;
    87   r = save_CC_Tree (root, stream);
     87  r = saveCCTree(root, stream);
    8888  fclose (stream);
    8989  return r;
     
    9999   \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
    100100*/
    101 bool check_trace (const Placement* pa, const CollisionCluster* a, unsigned long* ahitflags, const Line* trace, Vector* impactpoint)
    102 {
    103         CC_Tree* t;
     101bool checkTrace (const Placement* pa, const CollisionCluster* a, unsigned long* ahitflags, const Line* trace, Vector* impactpoint)
     102{
     103        CCTree* t;
    104104        if( (t = a->root) == NULL) return false;
    105105       
    106   return cctree_trace( pa, t, ahitflags, trace, impactpoint);
     106  return ccTreeTrace( pa, t, ahitflags, trace, impactpoint);
    107107}
    108108
     
    118118   If true is returned, all flags in ahitflags and bhitflags that symbolize intersecting subspheres in the respective CollisionCluster are set
    119119*/
    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;
     120bool checkCollision (const Placement* pa, const CollisionCluster* a, unsigned long* ahitflags, const Placement* pb, const CollisionCluster* b, unsigned long* bhitflags)
     121{
     122  CCTree* ta, *tb;
    123123  if( (ta = a->root) == NULL) return false;
    124124  if( (tb = b->root) == NULL) return false;
    125125 
    126   return cctree_iterate(pa, ta, ahitflags, pb, tb, bhitflags);
     126  return ccTreeIterate(pa, ta, ahitflags, pb, tb, bhitflags);
    127127}
    128128
     
    135135   \return true on intersection, false otherwise
    136136*/
    137 bool sphere_sphere_collision( Vector m1, float r1, Vector m2, float r2)
     137bool sphereSphereCollision( Vector m1, float r1, Vector m2, float r2)
    138138{
    139139  if ((m1-m2).len() < r1+r2) return true;
     
    149149   \return true on intersection, false otherwise. If true is returned, impactpoint is set to the loaction where the intersection occured
    150150*/
    151 bool trace_sphere_collision( Vector m, float r, const Line* l, Vector* impactpoint)
     151bool traceSphereCollision( Vector m, float r, const Line* l, Vector* impactpoint)
    152152{
    153153  float A, B, C, D, t[2];
     
    176176}
    177177
    178 bool cctree_iterate(const Placement* pa, CC_Tree* ta, unsigned long* ahitflags, const Placement* pb, CC_Tree* tb, unsigned long* bhitflags)
     178bool ccTreeIterate(const Placement* pa, CCTree* ta, unsigned long* ahitflags, const Placement* pb, CCTree* tb, unsigned long* bhitflags)
    179179{
    180180  bool r = false;
     
    182182  Vector mra = pa->r + pa->w.apply(ta->m);
    183183  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))
    189189  {
    190190    if( ta->n == 0 && tb->n == 0)
     
    196196    for( ia = 0; ia < ta->n || ta->n == 0; ia++)
    197197    {
    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];
    200200      for( ib = 0; ib < tb->n || ta->n == 0; ib++)
    201201      {
    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];
    204204       
    205         r = r || cctree_iterate( pa, use_a, ahitflags, pb, use_b, bhitflags);
     205        r = r || ccTreeIterate( pa, useA, ahitflags, pb, useB, bhitflags);
    206206       
    207207        if( tb->n == 0) break;
     
    233233
    234234/**
    235    \brief frees the memory allocated in a CC_Tree
    236 */
    237 void free_CC_Tree( CC_Tree* tree)
     235   \brief frees the memory allocated in a CCTree
     236*/
     237void freeCCTree( CCTree* tree)
    238238{
    239239  if (tree == NULL) return;
    240240  for (int i = 0; i < tree->n; i++)
    241241  {
    242     free_CC_Tree( tree->data.b[i]);
     242    freeCCTree(tree->data.b[i]);
    243243  }
    244244  free( tree);
     
    246246
    247247/**
    248    \brief loads a CC_Tree from a stream
    249 */
    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*/
     250CCTree* loadCCTree (FILE* stream)
     251{
     252  CCTree* tree = NULL;
     253  CCTree** branches = NULL;
    254254  float buf[4];
    255255  unsigned long n;
     
    267267  else
    268268  {
    269     branches = (CC_Tree**)malloc( sizeof(CC_Tree*) * n);
     269    branches = (CCTree**)malloc( sizeof(CCTree*) * n);
    270270    for( int i = 0; i < n; i++)
    271271    {
    272       if ((branches[i] = load_CC_Tree (stream)) == NULL)
     272      if ((branches[i] = loadCCTree (stream)) == NULL)
    273273      {
    274274        for( int j = 0; j < i; j++)
    275275        {
    276           free_CC_Tree (branches[j]);
    277           free (branches);
     276          freeCCTree (branches[j]);
     277          free(branches);
    278278          return NULL;
    279279        }
     
    283283 
    284284  // assemble
    285   tree = (CC_Tree*) malloc (sizeof(CC_Tree));
     285  tree = (CCTree*) malloc (sizeof(CCTree));
    286286  tree->m.x = buf[0];
    287287  tree->m.y = buf[1];
     
    297297
    298298/**
    299    \brief saves a CC_Tree to a stream
    300 */
    301 int save_CC_Tree (CC_Tree* tree, FILE* stream)
     299   \brief saves a CCTree to a stream
     300*/
     301int saveCCTree (CCTree* tree, FILE* stream)
    302302{
    303303  float buf[4];
     
    321321    for( int i = 0; i < tree->n; i++)
    322322    {
    323       if ( save_CC_Tree (tree->data.b[i], stream) == -1) return -1;
     323      if ( saveCCTree (tree->data.b[i], stream) == -1) return -1;
    324324    }
    325325  }
     
    329329}
    330330
    331 bool cctree_trace( const Placement* p, CC_Tree* t, unsigned long* hitflags, const Line* trace, Vector* impactpoint)
     331bool ccTreeTrace( const Placement* p, CCTree* t, unsigned long* hitflags, const Line* trace, Vector* impactpoint)
    332332{
    333333  bool r = false;
    334334  int i;
    335335  Vector mr = p->r + p->w.apply (t->m);
    336   CC_Tree* use_t;
     336  CCTree* useT;
    337337  Vector* ips;
    338338  unsigned long* hfs;
    339339 
    340   if( trace_sphere_collision (mr, t->r, trace, impactpoint))
     340  if( traceSphereCollision (mr, t->r, trace, impactpoint))
    341341  {
    342342        if( t->n == 0)
     
    352352                for (i = 0; i < t->n; i++)
    353353                {
    354                         r = r || cctree_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]));
    355355                }
    356356                if( r)
  • orxonox/branches/nico/src/collision.h

    r2190 r3238  
    44*/
    55
    6 #ifndef COLLISION_H
    7 #define COLLISION_H
     6#ifndef _COLLISION_H
     7#define _COLLISION_H
    88
    99#include "vector.h"
     
    1414
    1515//! Tree structure used by the CollisionCluster
    16 typedef struct CC_Tree
     16typedef struct CCTree
    1717{
    1818  unsigned long n;
    1919  union
    2020  {
    21   struct CC_Tree** b;
     21  struct CCTree** b;
    2222  unsigned long ID;
    2323  } data;
    2424  float r;
    2525  Vector m;
    26 } CC_Tree;
     26} CCTree;
    2727
    2828//! Basic collision detection class
     
    4242class CollisionCluster {
    4343 
    44   CC_Tree* root;
     44  CCTree* root;
    4545 
    4646 
     
    5252  int store (char* filename);
    5353 
    54   friend bool cctree_trace( const Placement* p, CC_Tree* t, unsigned long* hitflags, const Line* trace, Vector* impactpoint);
    55   friend bool cctree_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);
    5858};
    5959
    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);
     60bool sphereSphereCollision( Vector m1, float r1, Vector m2, float r2);
     61bool traceSphereCollision( Vector m, float r, const Line* l, Vector* impactpoint);
    6262
    6363void setflag( unsigned long* flags, unsigned long ID);
    6464
    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);
     65void freeCCTree( CCTree* tree);
     66CCTree* loadCCTree (FILE* stream);
     67int saveCCTree (CCTree* tree, FILE* stream);
    6868
    69 #endif
     69#endif /* _COLLISION_H */
  • orxonox/branches/nico/src/command_node.cc

    r2816 r3238  
    2020#include "world_entity.h"
    2121#include "game_loader.h"
     22#include "world.h"
    2223
    2324#include <stdio.h>
     
    3334CommandNode::CommandNode (int ID)
    3435{
    35   bound = new List();
    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;
    3942}
    4043
     
    4548CommandNode::CommandNode (char* filename = DEFAULT_KEYBIND_FILE)
    4649{
    47   aliases = NULL;
    48   bLocalInput = true;
    49   netID = 0;
    50   bound = new List();
    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);
    5257}
    5358
     
    5863{
    5964  if( aliases != NULL) free (aliases);
    60   if( bound != NULL) delete bound;
    61 }
    62 
     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*/
    6377
    6478void CommandNode::reset()
    6579{
    66   this->bound->clear();
    67 }
     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
     86void 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*/
     100void CommandNode::addToWorld(World* world)
     101{
     102  this->world = world;
     103}
     104
    68105
    69106/**
     
    71108   \param filename: The path and name of the file to load the bindings from
    72109*/
    73 void CommandNode::load_bindings (char* filename)
     110void CommandNode::loadBindings (char* filename)
    74111{
    75112  FILE* stream;
     
    88125  // create parser
    89126  IniParser parser (filename);
    90   if( parser.get_section ("Bindings") == -1)
     127  if( parser.getSection ("Bindings") == -1)
    91128    {
    92129      printf("Could not find key bindings in %s\n", filename);
     
    102139  int* index;
    103140 
    104   while( parser.next_var (namebuf, valuebuf) != -1)
    105     {
    106       index = name_to_index (namebuf);
     141  while( parser.nextVar (namebuf, valuebuf) != -1)
     142    {
     143      index = nameToIndex (namebuf);
    107144      switch( index[0])
    108145        {
    109146        case 0:
    110           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);
    111148          strcpy (aliases->keys[index[1]], valuebuf);
    112149          break;
    113150        case 1:
    114           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);
    115152          strcpy (aliases->buttons[index[1]], valuebuf);
    116153          break;
     
    141178}
    142179
    143 int* CommandNode::name_to_index (char* name)
     180int* CommandNode::nameToIndex (char* name)
    144181{
    145182  coord[0] = -1;
    146183  coord[1] = -1;
    147184  int c;
    148   if( (c = keyname_to_SDLK (name)) != -1)
     185  if( (c = keynameToSDLK (name)) != -1)
    149186    {
    150187      coord[1] = c;
    151188      coord[0] = 0;
    152189    }
    153   if( (c = buttonname_to_SDLB (name)) != -1)
     190  if( (c = buttonnameToSDLB (name)) != -1)
    154191    {
    155192      coord[1] = c;
     
    164201void CommandNode::process ()
    165202{
    166   if( bLocalInput) process_local ();
    167   else process_network ();
    168 }
    169 
    170 void CommandNode::process_local ()
     203  if( this->bEnabled)
     204    {
     205      if( bLocalInput) processLocal ();
     206      else processNetwork ();
     207    }
     208}
     209
     210void CommandNode::processLocal ()
    171211{
    172212  SDL_Event event;
    173213  Command cmd;
    174  
    175214  while( SDL_PollEvent (&event))
    176215    {
     
    181220          strcpy (cmd.cmd, aliases->keys[event.key.keysym.sym]);
    182221          cmd.bUp = false;
    183           if( strlen (cmd.cmd) > 0) relay (&cmd);
     222          if( strlen (cmd.cmd) > 0) relay(&cmd);
    184223          break;
    185224        case SDL_KEYUP:
    186225          strcpy( cmd.cmd, aliases->keys[event.key.keysym.sym]);
    187226          cmd.bUp = true;
    188           if( strlen (cmd.cmd) > 0) relay (&cmd);
     227          if( strlen (cmd.cmd) > 0) relay(&cmd);
    189228          break;
    190229        case SDL_MOUSEMOTION:
     
    198237          strcpy( cmd.cmd, aliases->buttons[event.button.button]);
    199238          cmd.bUp = true;
    200           if( strlen (cmd.cmd) > 0) relay (&cmd);
     239          if( strlen (cmd.cmd) > 0) relay(&cmd);
    201240          break;
    202241        case SDL_MOUSEBUTTONDOWN:
    203242          strcpy( cmd.cmd, aliases->buttons[event.button.button]);
    204243          cmd.bUp = false;
    205           if( strlen (cmd.cmd) > 0) relay (&cmd);
     244          if( strlen (cmd.cmd) > 0) relay(&cmd);
    206245          break;
    207246        case SDL_JOYAXISMOTION:
     
    213252        default:
    214253          Orxonox *orx = Orxonox::getInstance();
    215           orx->event_handler (&event);
    216          
     254          orx->eventHandler(&event);
    217255          break;
    218256        }
     
    221259
    222260
    223 void CommandNode::process_network ()
     261void CommandNode::processNetwork ()
    224262{
    225263
     
    229267void CommandNode::relay (Command* cmd)
    230268{
    231  
     269
    232270  Orxonox *orx = Orxonox::getInstance();
    233   if( orx->system_command (cmd)) return;
     271  if( orx->systemCommand (cmd)) return;
     272
    234273  GameLoader* gl = GameLoader::getInstance();
    235   if(gl->worldCommand(cmd)) return;
    236  
    237   if( bLocalInput) send_over_network (cmd);
    238  
     274  if( gl->worldCommand(cmd)) return;
     275
     276  if( bLocalInput) sendOverNetwork (cmd);
     277 
     278  if( this->world->command(cmd)) return;
     279
    239280  WorldEntity* entity = bound->enumerate();
    240   while(  entity != NULL)
     281  while( entity != NULL)
    241282    {
    242283      entity->command (cmd);
     
    250291   \param ID: the new ID to use
    251292*/
    252 void CommandNode::set_netID (int ID)
     293void CommandNode::setNetID (int ID)
    253294{
    254295  netID = ID;
    255296}
    256297
    257 void CommandNode::send_over_network (Command* cmd)
    258 {
    259 }
     298void CommandNode::sendOverNetwork (Command* cmd)
     299{
     300}
  • orxonox/branches/nico/src/command_node.h

    r2816 r3238  
    66*/
    77
    8 #ifndef COMMAND_NODE_H
    9 #define COMMAND_NODE_H
     8#ifndef _COMMAND_NODE_H
     9#define _COMMAND_NODE_H
    1010
    1111#include "stdincl.h"
    1212
    1313class WorldEntity;
     14class World;
    1415
    1516#define N_STD_KEYS SDLK_LAST
     
    3940 private:
    4041  bool bLocalInput;     //!< Identifies the CommandNode that processes local input
     42  bool bEnabled;
    4143  int netID;    //!< Unique identifier that is used to determine between remote CommandNodes
    4244  KeyBindings* aliases;
    43   List* bound;  //!< List of WorldEntites that recieve commands from this CommandNode
     45  tList<WorldEntity>* bound;    //!< List of WorldEntites that recieve commands from this CommandNode
    4446  Sint32 coord[2];
     47  World* world;
    4548 
    4649
    4750  void relay (Command* cmd);
    48   int* name_to_index (char* name);
    49   void process_local ();
    50   void process_network ();
    51   void send_over_network (Command* cmd);
     51  int* nameToIndex (char* name);
     52  void processLocal ();
     53  void processNetwork ();
     54  void sendOverNetwork (Command* cmd);
    5255 
    5356 public:
     
    5659  ~CommandNode ();
    5760
    58   void reset(); 
    59   void load_bindings (char* filename);
     61  void reset ();
     62  void enable (bool bEnabled);
     63  void loadBindings (char* filename);
    6064  void bind (WorldEntity* entity);
    6165  void unbind (WorldEntity* entity);
     66  void addToWorld (World* world);
    6267  void process ();
    6368 
    64   void set_netID (int ID);
     69  void setNetID (int ID);
    6570};
    6671
    67 #endif
     72#endif /* _COMMAND_NODE_H */
  • orxonox/branches/nico/src/coordinates.h

    r2551 r3238  
    44*/
    55
    6 #ifndef COORDINATES_H
    7 #define COORDINATES_H
     6#ifndef _COORDINATES_H
     7#define _COORDINATES_H
    88
    99#include "vector.h"
     
    3434} Placement;
    3535
    36 #endif
     36#endif /* _COORDINATS_H */
  • orxonox/branches/nico/src/data_tank.h

    r2190 r3238  
    11
    2 #ifndef DATA_TANK_H
    3 #define DATA_TANK_H
     2#ifndef _DATA_TANK_H
     3#define _DATA_TANK_H
    44
    55
     
    1212};
    1313
    14 #endif
     14#endif /* _DATA_TANK_H */
  • orxonox/branches/nico/src/environment.cc

    r2816 r3238  
    6767void Environment::draw ()
    6868{
    69   printf("Environment::draw()");
    70 
    7169  glMatrixMode(GL_MODELVIEW);
    7270  glLoadIdentity();
    7371  float matrix[4][4];
    7472 
    75   glTranslatef(get_placement()->r.x,get_placement()->r.y,get_placement()->r.z);
    76   get_placement()->w.matrix (matrix);
     73  glTranslatef(getPlacement()->r.x,getPlacement()->r.y,getPlacement()->r.z);
     74  getPlacement()->w.matrix (matrix);
    7775  glMultMatrixf ((float*)matrix);
    7876
    7977  glBegin(GL_TRIANGLES);
    80   glColor3f(1,1,1);
     78  glColor3f(1,0,1);
    8179  glVertex3f(0,0,0.5);
    8280  glVertex3f(-0.5,0,-1);
     
    8987   
    9088  glBegin(GL_QUADS);
    91   glColor3f(0,0,1);
     89  glColor3f(1,0,1);
    9290  glVertex3f(0.5,0.5,-1);
    9391  glVertex3f(0.5,-0.5,-1);
  • orxonox/branches/nico/src/environment.h

    r2816 r3238  
    1 #ifndef ENVIRONEMENT_H
    2 #define ENVIRONEMENT_H
     1#ifndef _ENVIRONEMENT_H
     2#define _ENVIRONEMENT_H
    33
    44#include "world_entity.h"
     
    2929};
    3030
    31 #endif
     31#endif /* _ENVIRONEMENT_H */
  • orxonox/branches/nico/src/error.h

    r2644 r3238  
    2222*/
    2323
    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
    2732
    2833/*!
     
    5459  char* message;
    5560  char* location;
    56 } Error;
     61} ErrorMessage;
     62
     63#endif /* _ERROR_H */
  • orxonox/branches/nico/src/game_loader.cc

    r2636 r3238  
    4242
    4343
     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*/
    4450GameLoader* GameLoader::getInstance()
    4551{
     
    5056
    5157
    52 Error GameLoader::init()
     58ErrorMessage GameLoader::init()
    5359{
    5460  if(this->currentCampaign != NULL)
     
    5763
    5864
    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*/
     72ErrorMessage GameLoader::loadCampaign(char* name)
     73{
     74  ErrorMessage errorCode;
    6275 
    6376  this->currentCampaign = this->fileToCampaign(name);
    6477}
    6578
    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*/
     85ErrorMessage GameLoader::loadDebugCampaign(Uint32 campaignID)
    6786{
    6887  switch(campaignID)
     
    7291      {
    7392        Campaign* debugCampaign = new Campaign();
     93
    7494        World* world0 = new World(DEBUG_WORLD_0);
    75         world0->setNextStoryID(DEBUG_WORLD_1);
     95        world0->setNextStoryID(WORLD_ID_1);
    7696        debugCampaign->addEntity(world0, WORLD_ID_0);
     97
    7798        World* world1 = new World(DEBUG_WORLD_1);
    7899        world1->setNextStoryID(WORLD_ID_GAMEEND);
     
    85106}
    86107
    87 Error GameLoader::start()
     108ErrorMessage GameLoader::start()
    88109{
    89110  if(this->currentCampaign != NULL)
     
    92113
    93114
    94 Error GameLoader::stop()
     115ErrorMessage GameLoader::stop()
    95116{
    96117  if(this->currentCampaign != NULL)
     
    100121
    101122
    102 Error GameLoader::pause()
     123ErrorMessage GameLoader::pause()
    103124{
    104125  this->isPaused = true;
     
    108129
    109130
    110 Error GameLoader::resume()
     131ErrorMessage GameLoader::resume()
    111132{
    112133  this->isPaused = false;
     
    115136}
    116137
    117 Error GameLoader::free()
     138/**
     139   \brief release the mem
     140 */
     141ErrorMessage GameLoader::destroy()
    118142{}
    119143
    120144
    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*/
    124152Campaign* GameLoader::fileToCampaign(char *name)
    125153{
     
    134162   \brief handle keyboard commands
    135163   \param cmd: the command to handle
    136    \return true if the command was handled by the system
     164   \returns true if the command was handled by the system
    137165*/
    138166bool GameLoader::worldCommand (Command* cmd)
     
    165193      return true;
    166194    }
     195  else if( !strcmp( cmd->cmd, "quit"))
     196    {
     197      if( !cmd->bUp) this->stop();
     198      return true;
     199    }
    167200  return false;
    168201}
    169202
     203
     204/*
     205  \brief this changes to the next level
     206*/
    170207void GameLoader::nextLevel()
    171208{
     
    174211}
    175212
     213
     214/*
     215  \brief change to the previous level - not implemented
     216
     217  this propably useless
     218*/
    176219void GameLoader::previousLevel()
    177220{
  • orxonox/branches/nico/src/game_loader.h

    r2636 r3238  
    1 #ifndef GAME_LOADER_H
    2 #define GAME_LOADER_H
     1#ifndef _GAME_LOADER_H
     2#define _GAME_LOADER_H
    33
    44#include "stdincl.h"
     
    2020  static GameLoader* getInstance();
    2121
    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();
    2929
    3030  void nextLevel();
     
    3232
    3333  bool worldCommand(Command* cmd);
    34   Error loadDebugCampaign(Uint32 campaignID);
     34  ErrorMessage loadDebugCampaign(Uint32 campaignID);
    3535 
    3636 private:
     
    4747};
    4848
    49 #endif
     49#endif /* _GAME_LOADER_H */
  • orxonox/branches/nico/src/ini_parser.cc

    r2551 r3238  
    2525IniParser::IniParser (char* filename)
    2626{
    27         stream = NULL;
    28         bInSection = false;
    29         open_file (filename);
     27  stream = NULL;
     28  bInSection = false;
     29  openFile(filename);
    3030}
    3131
     
    3535IniParser::~IniParser ()
    3636{
    37         if( stream != NULL) fclose (stream);
     37  if( stream != NULL) fclose (stream);
    3838}
    3939
    4040/**
    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;
     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;
    4444*/
    45 int IniParser::open_file( char* filename)
     45int IniParser::openFile( char* filename)
    4646{
    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;
     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;
    5656}
    5757
    5858/**
    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
     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
    6262*/
    63 int IniParser::get_section( char* section)
     63int IniParser::getSection( char* section)
    6464{
    6565  bInSection = false;
     
    9595
    9696/**
    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
     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
    101101*/
    102 int IniParser::next_var( char* name, char* value)
     102int IniParser::nextVar( char* name, char* value)
    103103{
    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] == '[')
    105121        {
    106                 bInSection = false;
    107                 return -1;
     122          bInSection = false;
     123          return -1;
    108124        }
    109         if( !bInSection) return -1;
    110        
    111         char linebuffer[PARSELINELENGHT];
    112         char* ptr;
    113 
    114         while( !feof( stream))
     125      if( (ptr = strchr( linebuffer, '=')) != NULL)
    115126        {
    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;
    132131        }
    133         return -1;     
     132    }
     133  return -1;   
    134134}
    135135
    136136/**
    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.
     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.
    145145*/
    146 char* IniParser::get_var( char* name, char* section, char* defvalue = "")
     146char* IniParser::getVar( char* name, char* section, char* defvalue = "")
    147147{
    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))
    155157        {
    156                 if( !strcmp (name, namebuf))
    157                 {
    158                         strcpy (internbuf, valuebuf);
    159                         return internbuf;
    160                 }
     158          strcpy (internbuf, valuebuf);
     159          return internbuf;
    161160        }
    162         return internbuf;
     161    }
     162  return internbuf;
    163163}
  • orxonox/branches/nico/src/ini_parser.h

    r2190 r3238  
    66*/
    77
    8 #ifndef INI_PARSER_H
    9 #define INI_PARSER_H
     8#ifndef _INI_PARSER_H
     9#define _INI_PARSER_H
    1010
    1111#include <stdio.h>
     
    2929  ~IniParser ();
    3030 
    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);
    3535};
    3636
    37 #endif
     37#endif /* _INI_PARSER_H */
  • orxonox/branches/nico/src/keynames.cc

    r2995 r3238  
    2020using namespace std;
    2121
    22 int buttonname_to_SDLB( char* name)
     22int buttonnameToSDLB( char* name)
    2323{
    2424        if( !strcmp (name, "BUTTON_LEFT")) return SDL_BUTTON_LEFT;
     
    3030}
    3131
    32 char* SDLB_to_buttonname( int button)
     32char* SDLBToButtonname( int button)
    3333{
    3434        if( button == SDL_BUTTON_LEFT) return "BUTTON_LEFT";
     
    4040}
    4141
    42 int keyname_to_SDLK( char* name)
     42int keynameToSDLK( char* name)
    4343{
    4444        if( !strcmp (name, "BACKSPACE")) return SDLK_BACKSPACE;
     
    178178}
    179179
    180 char* SDLK_to_keyname( int key)
     180char* SDLKToKeyname( int key)
    181181{
    182182        if( key == SDLK_BACKSPACE) return "BACKSPACE";
  • orxonox/branches/nico/src/keynames.h

    r2995 r3238  
    55                Converts strings to SDLK/SDL_BUTTON values and vice versa
    66*/
     7#ifndef _KEYNAMES_H
     8#define _KEYNAMES_H
     9
    710
    811#ifdef __WIN32__
     
    2124        \return an int containing the SDL identifier of the mouse button or -1 if the button name is not valid
    2225*/
    23 int buttonname_to_SDLB( char* name);
     26int buttonnameToSDLB( char* name);
    2427
    2528/**
     
    2831        \return a pointer to a string containing the name of the mouse button
    2932*/
    30 char* SDLB_to_buttonname( int button);
     33char* SDLBToButtonname( int button);
    3134
    3235/**
     
    3538        \return the SDLK sym of the named key or -1 if the key name is not valid
    3639*/
    37 int keyname_to_SDLK( char* name);
     40int keynameToSDLK( char* name);
    3841
    3942/**
     
    4245        \return a pointer to a string containig the name of the key
    4346*/
    44 char* SDLK_to_keyname( int key);
     47char* SDLKToKeyname( int key);
    4548
     49
     50#endif /* _KEYNAMES_H */
  • orxonox/branches/nico/src/list.cc

    r2818 r3238  
    7777
    7878
    79 void List::clear()
     79void List::destroy()
    8080{
    8181  printf("List::clear() - clearing all world objects, releasing mem\n");
    8282  this->currentEl = this->first;
     83  listElement* le = NULL;
    8384  while(this->currentEl != NULL)
    8485    {
    85       listElement* le = this->currentEl->next;
     86      le = this->currentEl->next;
    8687      delete this->currentEl->curr;
    8788      delete this->currentEl;
  • orxonox/branches/nico/src/list.h

    r2822 r3238  
    11
    2 #ifndef LIST_H
    3 #define LIST_H
     2#ifndef _LIST_H
     3#define _LIST_H
    44
    55#include "stdincl.h"
     
    2222  void add(WorldEntity* entity);
    2323  void remove(WorldEntity* entity);
    24   void clear();
     24  void destroy();
    2525  WorldEntity* firstElement();
    2626  bool isEmpty();
     
    8080  void add(WorldEntity* entity);
    8181  void remove(WorldEntity* entity);
    82   void clear();
     82  void destroy();
    8383  T* firstElement();
    8484  bool isEmpty();
     
    106106void tList<T>::add(WorldEntity* entity)
    107107{
    108   printf("tList<T>::add() \n");
    109108  listElement* el = new listElement;
    110109  el->prev = this->last;
     
    128127    {
    129128      if( this->currentEl->curr == entity)
    130         {
    131           printf("tList<T>::remove() - object found\n");
    132          
     129        {
    133130          if( this->currentEl->prev  == NULL ) this->first = this->currentEl->next;
    134131          else this->currentEl->prev->next = this->currentEl->next;
     
    148145
    149146template<class T>
    150 void tList<T>::clear()
    151 {
    152   printf("tList<T>::clear() - clearing all world objects, releasing mem\n");
     147void tList<T>::destroy()
     148{
    153149  this->currentEl = this->first;
    154150  while(this->currentEl != NULL)
     
    209205{}
    210206
    211 #endif
     207#endif /* _LIST_H */
  • orxonox/branches/nico/src/list_template.h

    r2816 r3238  
    2323*/
    2424
    25 #ifndef LIST_TEMPLATE_H
    26 #define LIST_TEMPLATE_H
     25#ifndef _LIST_TEMPLATE_H
     26#define _LIST_TEMPLATE_H
    2727
    2828#include "stdincl.h"
     
    4646  ~ListTemplate ();
    4747 
    48   int add (T* obj, ADDMODE mode, bool bRef);
    49   T* get_object();
    50   ListTemplate<T>* get_next ();
    51   ListTemplate<T>* get_previous ();
    52   ListTemplate<T>* get_last ();
    53   ListTemplate<T>* get_first ();
    54   void set_next (ListTemplate<T>* ptr);
    55   void set_prev (ListTemplate<T>* ptr);
     48  int add(T* obj, ADDMODE mode, bool bRef);
     49  T* getObject();
     50  ListTemplate<T>* getNext();
     51  ListTemplate<T>* getPrevious();
     52  ListTemplate<T>* getLast();
     53  ListTemplate<T>* getFirst();
     54  void setNext(ListTemplate<T>* ptr);
     55  void setPrev(ListTemplate<T>* ptr);
    5656  int remove (T* obj, FINDMODE mode);
    5757  int getSize();
     58  void destroy();
    5859};
    5960
     
    100101  else
    101102  {
    102     if (prev != NULL) prev->set_next (next);
    103     if (next != NULL) next->set_prev (prev);
     103    if (prev != NULL) prev->setNext (next);
     104    if (next != NULL) next->setPrev (prev);
    104105    if (!bReference) delete object;
    105106  }
     
    130131    case LIST_ADD_NEXT:
    131132      p = new ListTemplate<T>( obj, next, this, bRef);
    132       if( next != NULL) next->set_prev (p);
     133      if( next != NULL) next->setPrev (p);
    133134      next = p;
    134135      break;
    135136    case LIST_ADD_PREV:
    136137      p = new ListTemplate<T>( obj, this, prev, bRef);
    137       if( prev != NULL) prev->set_next (p);
     138      if( prev != NULL) prev->setNext (p);
    138139      prev = p;
    139140      break;
     
    159160*/
    160161template<class T>
    161 ListTemplate<T>* ListTemplate<T>::get_next ()
     162ListTemplate<T>* ListTemplate<T>::getNext ()
    162163{
    163164  return next;
     
    169170*/
    170171template<class T>
    171 ListTemplate<T>* ListTemplate<T>::get_previous ()
     172ListTemplate<T>* ListTemplate<T>::getPrevious ()
    172173{
    173174  return prev;
     
    179180*/
    180181template<class T>
    181 ListTemplate<T>* ListTemplate<T>::get_last ()
     182ListTemplate<T>* ListTemplate<T>::getLast ()
    182183{
    183184  if (next == NULL) return this;
    184   else return next->get_last();
     185  else return next->getLast();
    185186}
    186187
     
    190191*/
    191192template<class T>
    192 ListTemplate<T>* ListTemplate<T>::get_first ()
     193ListTemplate<T>* ListTemplate<T>::getFirst ()
    193194{
    194195  if (prev == NULL) return this;
    195   else return prev->get_first();
     196  else return prev->getFirst();
    196197}
    197198
     
    220221        else
    221222        {
    222           if( prev->get_object() == obj)
     223          if( prev->getObject() == obj)
    223224          {
    224225            delete prev;
     
    234235        else
    235236        {
    236           if( next->get_object() == obj)
     237          if( next->getObject() == obj)
    237238          {
    238239            delete next;
     
    259260*/
    260261template<class T>
    261 void ListTemplate<T>::set_next (ListTemplate<T>* ptr)
     262void ListTemplate<T>::setNext (ListTemplate<T>* ptr)
    262263{
    263264  next = ptr;
     
    271272*/
    272273template<class T>
    273 void ListTemplate<T>::set_prev (ListTemplate<T>* ptr)
     274void ListTemplate<T>::setPrev (ListTemplate<T>* ptr)
    274275{
    275276  prev = ptr;
     
    281282*/
    282283template<class T>
    283 T* ListTemplate<T>::get_object()
     284T* ListTemplate<T>::getObject()
    284285{
    285286  return object;
     
    297298}
    298299
    299 #endif
    300 
     300
     301template<class T>
     302void ListTemplate<T>::destroy()
     303{
     304  /* \todo at the moment - doing nothing. should delete everything */
     305}
     306
     307#endif /* _LIST_TENMPLATE_H */
     308
  • orxonox/branches/nico/src/message_structures.h

    r2551 r3238  
    44*/
    55
    6 #ifndef _MESSAGESTRUCTURES_H
    7 #define _MESSAGESTRUCTURES_H
     6#ifndef _MESSAGE_STRUCTURES_H
     7#define _MESSAGE_STRUCTURES_H
    88
    99#define CMD_LENGHT 16
     
    2626} Command;
    2727
    28 #endif
     28#endif /* _MESSAGE_STRUCTURES_H */
  • orxonox/branches/nico/src/npc.h

    r2036 r3238  
    11
    2 #ifndef NPC_H
    3 #define NPC_H
     2#ifndef _NPC_H
     3#define _NPC_H
    44
    55#include "world_entity.h"
     
    4141};
    4242
    43 #endif
     43#endif /* _NPC_H */
  • orxonox/branches/nico/src/orxonox.cc

    r2817 r3238  
    4747Orxonox::~Orxonox ()
    4848{
    49   Orxonox::singleton_ref = NULL;
     49  Orxonox::singletonRef = NULL;
    5050  if( world != NULL) delete world;
    5151  if( localinput != NULL) delete world;
     
    5656
    5757/* this is a singleton class to prevent duplicates */
    58 Orxonox* Orxonox::singleton_ref = 0;
     58Orxonox* Orxonox::singletonRef = 0;
    5959
    6060Orxonox* Orxonox::getInstance (void)
    6161{
    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;
    6565}
    6666
     
    7272   it's path and name into configfilename
    7373*/
    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  
     74void Orxonox::getConfigFile (int argc, char** argv)
     75{
    8776  strcpy (configfilename, "orxonox.conf");
    8877}
     
    9685  // config file
    9786 
    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*/
     107int Orxonox::initVideo()
     108{
     109  printf("> Initializing video\n");
     110  if (SDL_Init(SDL_INIT_VIDEO) == -1)
    103111    {
    104       printf ("Could not SDL_Init(): %s\n", SDL_GetError());
     112      printf ("could not initialize SDL Video\n");
    105113      return -1;
    106114    }
    107  
    108   // initialize everything
    109   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 started
    121  
    122   return 0;
    123 }
    124 
    125 /**
    126    \brief initializes SDL and OpenGL
    127 */
    128 int Orxonox::init_video ()
    129 {
    130115  // Set video mode
    131116  // TO DO: parse arguments for settings
    132   SDL_GL_SetAttribute (SDL_GL_RED_SIZE, 5);
    133   SDL_GL_SetAttribute (SDL_GL_GREEN_SIZE, 5);
    134   SDL_GL_SetAttribute (SDL_GL_BLUE_SIZE, 5);
    135   SDL_GL_SetAttribute (SDL_GL_DEPTH_SIZE, 16);
     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);
    136121 
    137122  int bpp = 16;
     
    140125  Uint32 flags = SDL_HWSURFACE | SDL_OPENGL | SDL_GL_DOUBLEBUFFER;
    141126 
    142   if( (screen = SDL_SetVideoMode (width, height, bpp, flags)) == NULL)
     127  if((screen = SDL_SetVideoMode (width, height, bpp, flags)) == NULL)
    143128  {
    144     printf ("Could not SDL_SetVideoMode(%d, %d, %d, %d): %s\n", width, height, bpp, flags, SDL_GetError());
     129    printf("Could not SDL_SetVideoMode(%d, %d, %d, %d): %s\n", width, height, bpp, flags, SDL_GetError());
    145130    SDL_Quit();
    146131    return -1;
     
    148133 
    149134  // 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);
    152136 
    153137  // TO DO: Create a cool icon and use it here
     
    176160 
    177161  // create camera
    178   localcamera = new Camera(world);
    179  
    180   return 0;
    181 }
     162  //localcamera = new Camera(world); /* \todo camera/input node not used anymore*/
     163 
     164  return 0;
     165}
     166
    182167
    183168/**
    184169   \brief initializes the sound engine
    185170*/
    186 int Orxonox::init_sound ()
    187 {
     171int Orxonox::initSound()
     172{
     173  printf("> Initializing sound\n");
     174  // SDL_Init(SDL_INIT_AUDIO);
    188175  printf("Not yet implemented\n");
    189176  return 0;
    190177}
    191178
     179
    192180/**
    193181   \brief initializes input functions
    194182*/
    195 int Orxonox::init_input ()
     183int Orxonox::initInput()
    196184{
    197185  // create localinput
     
    201189}
    202190
     191
    203192/**
    204193   \brief initializes network system
    205194*/
    206 int Orxonox::init_networking ()
     195int Orxonox::initNetworking()
    207196{
    208197  printf("Not yet implemented\n");
     
    210199}
    211200
     201
    212202/**
    213203   \brief initializes and loads resource files
    214204*/
    215 int Orxonox::init_resources ()
     205int Orxonox::initResources()
    216206{
    217207  printf("Not yet implemented\n");
     
    219209}
    220210
     211
    221212/**
    222213   \brief initializes the world
    223214*/
    224 int Orxonox::init_world ()
     215int Orxonox::initWorld()
    225216{
    226217  //world = new World();
     
    250241}
    251242
     243
    252244/**
    253245   \brief exits Orxonox
     
    258250}
    259251
    260 /**
    261    \brief this runs all of Orxonox
    262 */
    263 void Orxonox::mainLoop()
    264 {
    265   lastframe = SDL_GetTicks();
    266   bQuitOrxonox = false;
    267   // This is where everything is run
    268   printf("Orxonox|Entering main loop\n");
    269   while( !bQuitOrxonox)
    270     {
    271       // Network
    272       synchronize();
    273       // Process input
    274       handle_input();
    275       // Process time
    276       time_slice();
    277       // Process collision
    278       collision();
    279       // Draw
    280       display();
    281     }
    282   printf("Orxonox|Exiting the main loop\n");
    283 }
     252
    284253
    285254/**
     
    287256   \param event: an event not handled by the CommandNode
    288257*/
    289 void Orxonox::event_handler (SDL_Event* event)
     258void Orxonox::eventHandler(SDL_Event* event)
    290259{
    291260  // Handle special events such as reshape, quit, focus changes
    292261}
    293 
    294 /**
    295    \brief synchronize local data with remote data
    296 */
    297 void Orxonox::synchronize ()
    298 {
    299   // Get remote input
    300   // Update synchronizables
    301 }
    302 
    303 /**
    304    \brief run all input processing
    305 */
    306 void Orxonox::handle_input ()
    307 {
    308   // localinput
    309   localinput->process();
    310   // remoteinput
    311 }
    312 
    313 /**
    314    \brief advance the timeline
    315 */
    316 void Orxonox::time_slice ()
    317 {
    318   Uint32 curframe = SDL_GetTicks();
    319   if( !pause)
    320     {
    321       Uint32 dt = curframe - lastframe;
    322      
    323       if(dt > 0)
    324         {
    325           float fps = 1000/dt;
    326           printf("fps = %f\n", fps);
    327         }
    328      
    329       world->time_slice (dt);
    330       world->update ();
    331       localcamera->time_slice (dt);
    332     }
    333   lastframe = curframe;
    334 }
    335 
    336 /**
    337    \brief compute collision detection
    338 */
    339 void Orxonox::collision ()
    340 {
    341   world->collide ();
    342 }
     262 
    343263
    344264/**
     
    347267   \return true if the command was handled by the system or false if it may be passed to the WorldEntities
    348268*/
    349 bool Orxonox::system_command (Command* cmd)
    350 {
     269bool Orxonox::systemCommand(Command* cmd)
     270{
     271  /*
    351272  if( !strcmp( cmd->cmd, "quit"))
    352273    {
     
    355276    }
    356277  return false;
    357 }
    358 
    359 /**
    360    \brief render the current frame
    361 */
    362 void Orxonox::display ()
    363 {
    364   // clear buffer
    365   glClear( GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
    366   // set camera
    367   localcamera->apply ();
    368   // draw world
    369   world->draw ();
    370   // draw HUD
    371   // flip buffers
    372   SDL_GL_SwapBuffers();
    373 }
     278  */
     279  return false;
     280}
     281
    374282
    375283/**
     
    377285   \return a pointer to localcamera
    378286*/
    379 Camera* Orxonox::get_camera ()
     287Camera* Orxonox::getCamera()
    380288{
    381289  return localcamera;
    382290}
     291
    383292
    384293/**
     
    386295   \return a pointer to localinput
    387296*/
    388 CommandNode* Orxonox::get_localinput ()
     297CommandNode* Orxonox::getLocalInput()
    389298{
    390299  return localinput;
    391300}
     301
    392302
    393303/**
     
    395305   \return a pointer to world
    396306*/
    397 World* Orxonox::get_world ()
     307World* Orxonox::getWorld()
    398308{
    399309  return world;
    400310}
    401311
    402 int main (int argc, char** argv)
     312
     313
     314
     315int main(int argc, char** argv)
    403316
    404317  printf(">>> Starting Orxonox <<<\n");
    405318  Orxonox *orx = Orxonox::getInstance();
    406319 
    407   if( (*orx).init(argc, argv) == -1)
     320  if((*orx).init(argc, argv) == -1)
    408321    {
    409322      printf("! Orxonox initialization failed\n");
     
    411324    }
    412325 
    413   //(*orx).mainLoop();
    414 
    415326  orx->start();
    416327 
  • orxonox/branches/nico/src/orxonox.h

    r2995 r3238  
    44*/
    55
    6 #ifndef ORXONOX_H
    7 #define ORXONOX_H
     6#ifndef _ORXONOX_H
     7#define _ORXONOX_H
    88
    99#include "stdincl.h"
     
    2222
    2323 private:
    24   static Orxonox* singleton_ref;
     24  static Orxonox* singletonRef;
    2525  Orxonox ();
    2626  ~Orxonox ();
     
    3838  Uint32 lastframe;
    3939 
    40   void get_config_file (int argc, char** argv);
     40  void getConfigFile (int argc, char** argv);
    4141 
    4242  // main loop functions
    43   void synchronize ();
    44   void handle_input ();
    45   void time_slice ();
    46   void collision ();
    47   void display ();
     43  //  void synchronize ();
     44  //void handle_input ();
     45  //void time_slice ();
     46  //void collision ();
     47  //void display ();
    4848 
    4949        // subsystem initialization
    50   int init_video ();
    51   int init_sound ();
    52   int init_input ();
    53   int init_networking ();
    54   int init_resources ();
    55   int init_world ();
     50  int initVideo ();
     51  int initSound ();
     52  int initInput ();
     53  int initNetworking ();
     54  int initResources ();
     55  int initWorld ();
    5656 
    5757 public:
     
    6060  void quitGame();
    6161
    62   void event_handler (SDL_Event* event);
    63   bool system_command (Command* cmd);
     62  void eventHandler (SDL_Event* event);
     63  bool systemCommand (Command* cmd);
    6464
    6565  int init (int argc, char** argv);
    6666 
    67   CommandNode* get_localinput();
    68   Camera* get_camera();
    69   World* get_world();
     67  CommandNode* getLocalInput();
     68  Camera* getCamera();
     69  World* getWorld();
    7070 
    71   void mainLoop();
     71  //void mainLoop();
    7272};
    7373
    74 #endif
     74#endif /* _ORXONOX_H */
    7575
  • orxonox/branches/nico/src/player.cc

    r2969 r3238  
    2626{
    2727
    28   obj = new Object ("reaplow.obj");
     28  this->obj = new Object("reaplow.obj");
    2929  /*
    3030  objectList = glGenLists(1);
     
    5454}
    5555
    56 Player::~Player ()
    57 
     56Player::~Player()
    5857{
     58  delete this->obj;
    5959}
    6060
    61 void Player::post_spawn ()
     61void Player::postSpawn()
    6262{
    63   travel_speed = 15.0;
     63  travelSpeed = 15.0;
    6464  velocity = Vector();
    6565  bUp = bDown = bLeft = bRight = bAscend = bDescend = false;
    6666  bFire = false;
    6767  acceleration = 10.0;
    68   set_collision (new CollisionCluster (1.0, Vector(0,0,0)));
     68  setCollision(new CollisionCluster(1.0, Vector(0,0,0)));
    6969}
    7070
    71 void Player::tick (float time)
     71void Player::tick(float time)
    7272{
    73         // movement
    74         move (time);
     73  // movement
     74  move (time);
    7575}
    7676
    77 void Player::hit (WorldEntity* weapon, Vector loc)
     77void Player::hit(WorldEntity* weapon, Vector loc)
    7878{
    7979}
    8080
    81 void Player::destroy ()
     81void Player::destroy()
    8282{
    8383}
    8484
    85 void Player::collide (WorldEntity* other, Uint32 ownhitflags, Uint32 otherhitflags)
     85void Player::collide(WorldEntity* other, Uint32 ownhitflags, Uint32 otherhitflags)
    8686{
    8787}
    8888
    89 void Player::command (Command* cmd)
     89void Player::command(Command* cmd)
    9090{
    9191  //printf("Player|recieved command [%s]\n", cmd->cmd);
     
    9797}
    9898
    99 void Player::draw ()
     99void Player::draw()
    100100{
    101101  glMatrixMode(GL_MODELVIEW);
     
    103103  float matrix[4][4];
    104104 
    105   glTranslatef(get_placement()->r.x,get_placement()->r.y,get_placement()->r.z);
    106   get_placement()->w.matrix (matrix);
    107   glMultMatrixf ((float*)matrix);
     105  glTranslatef(getPlacement()->r.x, getPlacement()->r.y, getPlacement()->r.z);
     106  getPlacement()->w.matrix (matrix);
     107  glMultMatrixf((float*)matrix);
    108108 
    109   glMatrixMode (GL_MODELVIEW);
    110   glRotatef (-90, 0,1,0);
     109  glMatrixMode(GL_MODELVIEW);
     110  glRotatef(-90, 0,1,0);
    111111  obj->draw();
    112   //  glCallList (objectList);
     112  // glCallList(objectList);
    113113
    114114 
    115115 
    116   //printf("Player@%f/%f/%f\n", get_placement()->r.x, get_placement()->r.y, get_placement()->r.z);
    117116}
    118117
    119 void Player::get_lookat (Location* locbuf)
     118void Player::getLookat(Location* locbuf)
    120119{
    121         *locbuf = *get_location();
    122         //locbuf->dist += 5.0;
     120  *locbuf = *getLocation();
     121  //locbuf->dist += 5.0;
    123122}
    124123
    125 void Player::left_world ()
     124void Player::leftWorld()
    126125{
    127126}
    128127
    129 void Player::move (float time)
     128void Player::move(float time)
    130129{
    131130  Vector accel(0.0, 0.0, 0.0);
    132   /* FIXME: calculating the direction and orthDirection every time_slice is redundant! save it somewhere */
    133   Placement *pos = get_placement();
     131  /* FIXME: calculating the direction and orthDirection every timeSlice is redundant! save it somewhere */
     132  Placement *pos = getPlacement();
    134133  /* calculate the direction in which the craft is heading  */
    135134  Vector direction(0.0, 0.0, 1.0);
     
    143142  if( bRight ) { accel = accel - (orthDirection*acceleration); }
    144143  if( bAscend ) { /* not yet implemented but just: (0,0,1)*acceleration */}
    145   if( bDescend) {/* FIXME */}
     144  if( bDescend) {/* FIXME */} /* \todo up and down player movement */
    146145
    147   Location* l = get_location();
     146  Location* l = getLocation();
    148147 
    149148  // r(t) = r(0) + v(0)*t + 1/2*a*t^2
     
    153152
    154153  /* this the base-speed of the player: determines how fast and how the player follows the track*/
    155   l->dist = l->dist + travel_speed * time;
     154  l->dist = l->dist + travelSpeed * time;
    156155
    157156  /* this updates the player position on the track - user interaction */
    158157  l->pos = l->pos + accel*time;
    159158}
    160 
    161 
    162 
    163 
    164 
    165 
    166 
    167 
    168 
    169 
    170 
    171 
    172 
    173 
    174 
    175 
    176 
    177 
  • orxonox/branches/nico/src/player.h

    r2811 r3238  
    44*/
    55
    6 #ifndef PLAYER_H
    7 #define PLAYER_H
     6#ifndef _PLAYER_H
     7#define _PLAYER_H
    88
    99#include "world_entity.h"
    10 #include "object.h"
     10#include "importer/object.h"
    1111
    1212//! Basic controllable WorldEntity
     
    1616 
    1717 public:
    18   Player (bool isFree = false);
    19   ~Player ();
     18  Player(bool isFree = false);
     19  ~Player();
    2020 
    21   virtual void post_spawn ();
    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);
     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);
    2727 
    28   virtual void draw ();
    29   virtual void get_lookat (Location* locbuf);
     28  virtual void draw();
     29  virtual void getLookat(Location* locbuf);
    3030 
    31   virtual void left_world ();
     31  virtual void leftWorld();
    3232 
    3333 private:
     
    3535  bool bFire;
    3636  Vector velocity;
    37   float travel_speed;
     37  float travelSpeed;
    3838  float acceleration;
    3939  GLuint objectList;
    4040  Object* obj;
    4141 
    42   void move (float time);
     42  void move(float time);
    4343 
    4444};
    4545
    46 #endif
     46#endif /* _PLAYER_H */
  • orxonox/branches/nico/src/power_up.h

    r2077 r3238  
    44*/
    55
    6 #ifndef POWER_UP_H
    7 #define POWER_UP_H
     6#ifndef _POWER_UP_H
     7#define _POWER_UP_H
    88
    99#include "data_tank.h"
     
    1919};
    2020
    21 #endif
     21#endif /* _POWER_UP_H */
  • orxonox/branches/nico/src/proto_class.h

    r2036 r3238  
    11
    2 #ifndef PROTO_CLASS_H
    3 #define PROTO_CLASS_H
     2#ifndef _PROTO_CLASS_H
     3#define _PROTO_CLASS_H
    44
    55#include "data_tank.h"
     
    1414};
    1515
    16 #endif
     16#endif /* _PROTO_CLASS_H */
  • orxonox/branches/nico/src/shoot_laser.h

    r2036 r3238  
    11
    2 #ifndef SHOOT_LASER_H
    3 #define SHOOT_LASER_H
     2#ifndef _SHOOT_LASER_H
     3#define _SHOOT_LASER_H
    44
    55
     
    4040};
    4141
    42 #endif
     42#endif /* _SHOOT_LASER_H */
  • orxonox/branches/nico/src/shoot_rocket.h

    r2036 r3238  
    11
    2 #ifndef SHOOT_ROCKET_H
    3 #define SHOOT_ROCKET_H
     2#ifndef _SHOOT_ROCKET_H
     3#define _SHOOT_ROCKET_H
    44
    55
     
    5454};
    5555
    56 #endif
     56#endif /* _SHOOT_ROCKET_H */
  • orxonox/branches/nico/src/stdincl.h

    r2995 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*/
    17
    2 #ifndef STDINCL_H
    3 #define STDINCL_H
     8#ifndef _STDINCL_H
     9#define _STDINCL_H
    410
    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
    617
    718#ifdef __WIN32__
     
    1122#ifndef __APPLE__
    1223#include <SDL/SDL.h>
     24#include <GL/gl.h>
     25#include <GL/glu.h>
    1326#else
    1427#include <SDL.h>
     28#include <OpenGL/gl.h>
     29#include <OpenGL/glu.h>
    1530#endif
    16 
    17 #include <GL/gl.h>
    18 #include <GL/glu.h>
    1931
    2032#include "vector.h"
     
    2335#include "list_template.h"
    2436#include "error.h"
     37#include "debug.h"
    2538#include "message_structures.h"
    2639#include "orxonox.h"
    2740
    28 #endif
     41#endif /* _STDINCL_H */
  • orxonox/branches/nico/src/story_def.h

    r2636 r3238  
    11
    2 #ifndef STORY_DEF_H
    3 #define STORY_DEF_H
     2#ifndef _STORY_DEF_H
     3#define _STORY_DEF_H
    44
    55
    6 #define DEBUG_CAMPAIGN_0 0
    7 #define DEBUG_CAMPAIGN_1 1
    8 #define DEBUG_CAMPAIGN_2 2
     6#define DEBUG_CAMPAIGN_0 1000
     7#define DEBUG_CAMPAIGN_1 1001
     8#define DEBUG_CAMPAIGN_2 1002
    99
    10 #define DEBUG_WORLD_0 0
    11 #define DEBUG_WORLD_1 1
    12 #define DEBUG_WORLD_2 2
     10#define DEBUG_WORLD_0 100
     11#define DEBUG_WORLD_1 101
     12#define DEBUG_WORLD_2 102
    1313
    1414#define WORLD_ID_0 0
     
    2020#define WORLD_ID_GAMEEND 999
    2121
    22 #define MAX_STORY_ENTITIES 99; //!> maximal StoryEntities in a Campaign
     22#define MAX_STORY_ENTITIES 99 //!> maximal StoryEntities in a Campaign
    2323
    24 #endif
     24#endif /* _STORY_DEF_H */
  • orxonox/branches/nico/src/story_entity.cc

    r2636 r3238  
    3030/**
    3131    \brief initialize the entity before use.
     32    \returns an error code if not able to apply.
    3233
    3334    After execution of this function, the Entity is ready to be played/executed,
    3435    this shifts the initialisation work before the execution - very important...
    35    
    3636*/
    37 Error StoryEntity::init()
     37ErrorMessage StoryEntity::init()
    3838{}
    3939
    4040
    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*/
     47void StoryEntity::setStoryID(int storyID)
    4248{
    4349  this->storyID = storyID;
    4450}
    4551
     52
     53/**
     54    \brief this reads the story id of the current entity
     55    \returns the story entity id
     56*/
    4657int StoryEntity::getStoryID()
    4758{
     
    5061
    5162
    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*/
     70void StoryEntity::setNextStoryID(int nextStoryID)
    5371{
    5472  this->nextStoryID = nextStoryID;
    5573}
    5674
    57 Uint32 StoryEntity::getNextStoryID()
     75/**
     76    \brief gets the story id of the current entity
     77    \returns story id
     78*/
     79int StoryEntity::getNextStoryID()
    5880{
    5981  return this->nextStoryID;
     
    6183
    6284
    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
    6589
    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*/
     95ErrorMessage StoryEntity::start(int storyID)
    7696{}
    7797
    7898
     99/**
     100    \brief starts the current entity
     101    \returns error code if this action has caused a error   
     102*/
     103ErrorMessage 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*/
     117ErrorMessage 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*/
     127ErrorMessage 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*/
     137ErrorMessage 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*/
    79147void StoryEntity::load()
    80148{}
    81149
    82150
    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*/
     157void StoryEntity::destroy()
    84158{}
    85159
    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*/
     167void StoryEntity::displayLoadScreen()
    87168{}
     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*/
     177void StoryEntity::releaseLoadScreen()
     178{}
  • orxonox/branches/nico/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*/
    15
    2 #ifndef STORY_ENTITY_H
    3 #define STORY_ENTITY_H
     6
     7#ifndef _STORY_ENTITY_H
     8#define _STORY_ENTITY_H
    49
    510#include "stdincl.h"
    611#include "story_def.h"
    712
     13//! A class that represents something to play in orxonox. it is a container for worlds, movies, mission briefings, etc...
    814class StoryEntity {
    915
    1016 public:
    1117  StoryEntity ();
    12   ~StoryEntity ();
     18  virtual ~StoryEntity ();
    1319
    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
    1622
    17   virtual Error init();
    18   virtual Error start(Uint32 storyID);
    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();
    2329
    2430  virtual void load();
     31  virtual void destroy();
    2532
    26   virtual void displayEntityScreen();
    27   virtual void releaseEntityScreen();
     33  virtual void displayLoadScreen();
     34  virtual void releaseLoadScreen();
    2835
    29   void setStoryID(Uint32 storyID);
     36  void setStoryID(int storyID);
    3037  int getStoryID();
    3138
    32   void setNextStoryID(Uint32 nextStoryID);
    33   Uint32 getNextStoryID();
     39  void setNextStoryID(int nextStoryID);
     40  int getNextStoryID();
    3441
    3542
    3643 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
    3946};
    4047
    41 #endif
     48#endif /* _STORY_ENTITY_H */
  • orxonox/branches/nico/src/synchronisable.h

    r2036 r3238  
    11
    2 #ifndef SYNCHRONISABLE_H
    3 #define SYNCHRONISABLE_H
     2#ifndef _SYNCHRONISABLE_H
     3#define _SYNCHRONISABLE_H
    44
    55#include "data_tank.h"
     
    2222};
    2323
    24 #endif
     24#endif /* _SYNCHRONISABLE_H */
  • orxonox/branches/nico/src/track.cc

    r3005 r3238  
    2121
    2222/**
    23         \brief creates a null Track part
     23   \brief creates a null Track part
    2424*/
    2525Track::Track ()
    2626{
    27         ID = 0;
    28         offset = NULL;
    29         end = NULL;
    30         nextID = 0;
     27  this->ID = 0;
     28  this->offset = NULL;
     29  this->end = NULL;
     30  this->nextID = 0;
    3131}
    3232
    3333/**
    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
     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
    3939*/
    4040Track::Track (Uint32 number, Uint32 next, Vector* start, Vector* finish)
    4141{
    42         ID = number;
    43         offset = start;
    44         end = finish;
    45         nextID = next;
     42  this->ID = number;
     43  this->offset = start;
     44  this->end = finish;
     45  this->nextID = next;
    4646}
    4747
    4848/**
    49         \brief removes the Track part from memory
     49   \brief removes the Track part from memory
    5050*/
    5151Track::~Track ()
     
    6868   at inside camera boundaries.
    6969*/
    70 void Track::map_camera (Location* lookat, Placement* camplc)
     70void Track::mapCamera (Location* lookat, Placement* camplc)
    7171{
    7272  Line trace(*offset, *end - *offset);
     
    103103   when transfering between track parts.
    104104*/
    105 bool Track::map_coords (Location* loc, Placement* plc)
     105bool Track::mapCoords (Location* loc, Placement* plc)
    106106{
    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;
     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;
    127127}
    128128
     129
    129130/**
    130         \brief this is called when a WorldEntity enters a Track part
    131         \param entity: pointer to the WorldEntity in question
    132        
    133         You can do stuff like add or remove effects, do some coordinate finetuning
    134         or whatever in here.
     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.
    135136*/
    136 void Track::post_enter (WorldEntity* entity)
     137void Track::postEnter (WorldEntity* entity)
    137138{
    138139}
    139140
     141
    140142/**
    141         \brief this is called when a WorldEntity leaves a Track part
    142         \param entity: pointer to the WorldEntity in question
    143        
    144         You can do stuff like add or remove effects, do some coordinate finetuning
    145         or whatever in here.
     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.
    146148*/
    147 void Track::post_leave (WorldEntity* entity)
     149void Track::postLeave (WorldEntity* entity)
    148150{
    149151}
    150152
     153
    151154/**
    152         \brief this is called every frame
    153         \param deltaT: amount of time passed since the last frame in seconds
    154        
    155         Do time based or polling scripts here.
     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.
    156159*/
    157160void Track::tick (float deltaT)
  • orxonox/branches/nico/src/track.h

    r2636 r3238  
    44*/
    55
    6 #ifndef TRACK_H
    7 #define TRACK_H
     6#ifndef _TRACK_H
     7#define _TRACK_H
    88
    99#include "stdincl.h"
     
    2525  Uint32 nextID;
    2626 
    27         
     27  
    2828 public:
    2929  Track ();
     
    3232  virtual void init();
    3333 
    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);
    3636  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 boundaries
     37  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
    3939};
    4040
    41 #endif
     41#endif /* _TRACK_H */
  • orxonox/branches/nico/src/vector.cc

    r3004 r3238  
    203203   \return the angle between the vectors in radians
    204204*/
    205 float angle_rad (const Vector& v1, const Vector& v2)
     205float angleRad (const Vector& v1, const Vector& v2)
    206206{
    207207  return acos( v1 * v2 / (v1.len() * v2.len()));
     
    215215   \return the angle between the vectors in degrees
    216216*/
    217 float angle_deg (const Vector& v1, const Vector& v2)
     217float angleDeg (const Vector& v1, const Vector& v2)
    218218{
    219219  float f;
     
    243243
    244244/**
    245    \brief calculates a look_at rotation
     245   \brief calculates a lookAt rotation
    246246   \param dir: the direction you want to look
    247247   \param up: specify what direction up should be
     
    578578  Vector axis = x.cross( v);
    579579  axis.normalize();
    580   float angle = angle_rad( x, v);
     580  float angle = angleRad( x, v);
    581581  float ca = cos(angle);
    582582  float sa = sin(angle);
     
    714714   \return the rotated vector
    715715*/
    716 Vector rotate_vector( const Vector& v, const Rotation& r)
     716Vector rotateVector( const Vector& v, const Rotation& r)
    717717{
    718718  Vector t;
     
    745745   \return the distance between the Line and the point
    746746*/
    747 float Line::distance_point (const Vector& v) const
     747float Line::distancePoint (const Vector& v) const
    748748{
    749749  Vector d = v-r;
     
    761761  Vector* fp = new Vector[2];
    762762  Plane p = Plane (r + a.cross(l.a), r, r + a);
    763   fp[1] = p.intersect_line (l);
     763  fp[1] = p.intersectLine (l);
    764764  p = Plane (fp[1], l.a);
    765   fp[0] = p.intersect_line (*this);
     765  fp[0] = p.intersectLine (*this);
    766766  return fp;
    767767}
     
    783783{
    784784  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),
    787787  a = t - r;
    788788}
     
    815815   \param l: a line
    816816*/
    817 Vector Plane::intersect_line (const Line& l) const
     817Vector Plane::intersectLine (const Line& l) const
    818818{
    819819  if (n.x*l.a.x+n.y*l.a.y+n.z*l.a.z == 0.0) return Vector(0,0,0);
     
    827827   \return the distance between the plane and the point (can be negative)
    828828*/
    829 float Plane::distance_point (const Vector& p) const
     829float Plane::distancePoint (const Vector& p) const
    830830{
    831831  float l = n.len();
     
    839839   \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
    840840*/
    841 float Plane::locate_point (const Vector& p) const
     841float Plane::locatePoint (const Vector& p) const
    842842{
    843843  return (n.dot(p) + k);
  • orxonox/branches/nico/src/vector.h

    r3004 r3238  
    66*/
    77
    8 #ifndef VECTOR_H
    9 #define VECTOR_H
     8#ifndef _VECTOR_H
     9#define _VECTOR_H
    1010
    1111#include <math.h>
     
    4040};
    4141
    42 float angle_deg (const Vector& v1, const Vector& v2);
    43 float angle_rad (const Vector& v1, const Vector& v2);
     42float angleDeg (const Vector& v1, const Vector& v2);
     43float angleRad (const Vector& v1, const Vector& v2);
    4444
    4545//! Quaternion
     
    9898
    9999//!< Apply a rotation to a vector
    100 Vector rotate_vector( const Vector& v, const Rotation& r);
     100Vector rotateVector( const Vector& v, const Rotation& r);
    101101
    102102//! 3D line
     
    118118 
    119119  float distance (const Line& l) const;
    120   float distance_point (const Vector& v) const;
     120  float distancePoint (const Vector& v) const;
    121121  Vector* footpoints (const Line& l) const;
    122122  float len () const;
     
    144144  ~Plane () {}
    145145 
    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;
    149149};
    150150
     
    185185
    186186
    187 #endif
     187#endif /* _VECTOR_H */
  • orxonox/branches/nico/src/world.cc

    r3005 r3238  
    5151World::~World ()
    5252{
    53   Orxonox *orx = Orxonox::getInstance();
    54   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
    5567  delete this->entities;
    5668  delete this->localCamera;
    57 }
    58 
    59 
    60 /**
    61     \brief initialize the world before use.
    62 */
    63 Error World::init()
     69  /* this->localPlayer hasn't to be deleted explicitly, it is
     70     contained in entities*/
     71}
     72
     73
     74ErrorMessage World::init()
    6475{
    6576  this->bPause = false;
    66 }
    67 
    68 Error World::start()
    69 {
     77  CommandNode* cn = Orxonox::getInstance()->getLocalInput();
     78  cn->addToWorld(this);
     79  cn->enable(true);
     80}
     81
     82ErrorMessage World::start()
     83{
     84  printf("World::start() - starting current World: nr %i\n", this->debugWorldNr);
     85  this->bQuitOrxonox = false;
     86  this->bQuitCurrentGame = false;
    7087  this->mainLoop();
    7188}
    7289
    73 Error World::stop()
    74 {
     90ErrorMessage World::stop()
     91{
     92  printf("World::stop() - got stop signal\n");
    7593  this->bQuitCurrentGame = true;
    76   this->localCamera->setWorld(NULL);
    77   this->entities->clear();
    78   Orxonox::getInstance()->get_localinput()->reset();
    79   this->~World();
    80 }
    81 
    82 Error World::pause()
     94}
     95
     96ErrorMessage World::pause()
    8397{
    8498  this->isPaused = true;
    8599}
    86100
    87 Error World::resume()
     101ErrorMessage World::resume()
    88102{
    89103  this->isPaused = false;
    90104}
    91105
     106void World::destroy()
     107{
     108
     109}
     110
    92111void World::load()
    93112{
     
    96115      switch(this->debugWorldNr)
    97116        {
     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           */
    98123        case DEBUG_WORLD_0:
    99124          {
     
    114139                this->track[i] = Track( i, (i+1)%this->tracklen, &this->pathnodes[i], &this->pathnodes[(i+1)%this->tracklen]);
    115140              }
    116            
     141            // !\todo old track-system has to be removed
     142
    117143            // create a player
    118144            WorldEntity* myPlayer = new Player();
     
    122148            // bind input
    123149            Orxonox *orx = Orxonox::getInstance();
    124             orx->get_localinput()->bind (myPlayer);
     150            orx->getLocalInput()->bind (myPlayer);
    125151           
    126152            // bind camera
     
    154180                this->track[i] = Track( i, (i+1)%this->tracklen, &this->pathnodes[i], &this->pathnodes[(i+1)%this->tracklen]);
    155181              }
    156            
     182
    157183            // create a player
    158             //WorldEntity* myPlayer = (WorldEntity*) this->spawn<Player>();
    159184            WorldEntity* myPlayer = new Player();
    160185            this->spawn(myPlayer);
    161             this->localPlayer = myPlayer;
     186            this->localPlayer = myPlayer;           
    162187           
    163188            // bind input
    164189            Orxonox *orx = Orxonox::getInstance();
    165             orx->get_localinput()->bind (myPlayer);
     190            orx->getLocalInput()->bind (myPlayer);
    166191           
    167192            // bind camera
     
    185210  glColor3f(1.0,0,0);
    186211  glBegin(GL_QUADS);
    187   float height [500][100];
    188   float size = 2.0;
    189     for ( int i = 0; i<=200; i+=1)
     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)
    190243      {
    191         for (int j = 0; j<=50;j+=1)
    192           {
    193             height[i][j] = rand()/200321400 + (j-25)*(j-25)/30;
     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);
    194279           
    195           }
     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       
    196329      }
    197     for ( int i = 0; i<=200; i+=1)
    198       {
    199         for (int j = 0; j<=50;j+=1)
    200           {       
    201             Vector* v1 = new Vector (size*i,        size*j-25*size,      height[i][j] -20);
    202             Vector* v2 = new Vector (size*i+size,    size*j-25*size,      height[i+1][j]-20);
    203             Vector* v3 = new Vector (size*i+size,    size*j+size-25*size,  height[i+1][j+1]-20);
    204             Vector* v4 = new Vector (size*i,        size*j+size -25*size,  height[i][j+1]-20);
    205            
    206             Vector c1 = *v2 - *v1;
    207             Vector c2 = *v3 - *v2;
    208             Vector c3 = *v4 - *v3;
    209             Vector c4 = *v1 - *v4;
    210            
    211             c1.cross(*v4 - *v1);
    212             c2.cross(*v1 - *v2);
    213             c3.cross(*v2 - *v3);
    214             c4.cross(*v3 - *v4);
    215 
    216 
    217             glVertex3f(v1->x, v1->y, v1->z);
    218 
    219             glVertex3f(v2->x, v2->y, v2->z);
    220 
    221             glVertex3f(v3->x, v3->y, v3->z);
    222             glNormal3f(c4.x, c4.y, c4.z);
    223             glVertex3f(v4->x, v4->y, v4->z);
    224 
    225           }
    226       }
    227 glEnd();
    228 /* 
     330  glEnd();
     331  /* 
    229332  glBegin(GL_LINES);
    230333  for( float x = -128.0; x < 128.0; x += 25.0)
     
    370473      if( !entity->isFree() )
    371474        {
    372           loc = entity->get_location();
    373           plc = entity->get_placement();
     475          loc = entity->getLocation();
     476          plc = entity->getPlacement();
    374477          t = loc->part;
    375478         
     
    378481            {
    379482              printf("An entity is out of the game area\n");
    380               entity->left_world ();
     483              entity->leftWorld ();
    381484            }
    382485          else
    383486            {
    384               while( track[t].map_coords( loc, plc) )
     487              while( track[t].mapCoords( loc, plc) )
    385488                {
    386                   track[t].post_leave (entity);
     489                  track[t].postLeave (entity);
    387490                  if( loc->part >= tracklen )
    388491                    {
    389492                      printf("An entity has left the game area\n");
    390                       entity->left_world ();
     493                      entity->leftWorld ();
    391494                      break;
    392495                    }
    393                   track[loc->part].post_enter (entity);
     496                  track[loc->part].postEnter (entity);
    394497                }
    395498            }
     
    397500      else
    398501        {
    399           /* TO DO: implement check whether this particular free entity
     502          /* \todo: implement check whether this particular free entity
    400503             is out of the game area
    401              TO DO: call function to notify the entity that it left
     504             \todo: call function to notify the entity that it left
    402505             the game area
    403506          */
     
    413516    \param deltaT: the time passed since the last frame in milliseconds
    414517*/
    415 void World::time_slice (Uint32 deltaT)
     518void World::timeSlice (Uint32 deltaT)
    416519{
    417520  //List<WorldEntity> *l;
    418521  WorldEntity* entity;
    419   float seconds = deltaT;
    420  
    421   seconds /= 1000;
     522  float seconds = deltaT / 1000.0;
    422523 
    423524  entity = entities->enumerate();
     
    428529    }
    429530
    430   for( int i = 0; i < tracklen; i++) track[i].tick (seconds);
     531  //for( int i = 0; i < tracklen; i++) track[i].tick (seconds);
    431532}
    432533
     
    446547   Camera Placement
    447548*/
    448 void World::calc_camera_pos (Location* loc, Placement* plc)
    449 {
    450   track[loc->part].map_camera (loc, plc);
     549void World::calcCameraPos (Location* loc, Placement* plc)
     550{
     551  track[loc->part].mapCamera (loc, plc);
    451552}
    452553
     
    462563}
    463564
     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*/
    464571void World::debug()
    465572{
     
    478585
    479586
     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*/
    480594void World::mainLoop()
    481595{
    482596  this->lastFrame = SDL_GetTicks();
    483   this->bQuitOrxonox = false;
    484   this->bQuitCurrentGame = false;
    485   printf("World|Entering main loop\n");
    486   while(!this->bQuitOrxonox && !this->bQuitCurrentGame) /* pause pause pause ?!?!?*/
    487     {
    488       //debug routine
    489       //debug();
     597  printf("World::mainLoop() - Entering main loop\n");
     598  while( !this->bQuitOrxonox && !this->bQuitCurrentGame) /* \todo implement pause */
     599    {
    490600      // Network
    491601      synchronize();
    492602      // Process input
    493       handle_input();
     603      handleInput();
     604      if( this->bQuitCurrentGame || this->bQuitOrxonox)
     605        {
     606          printf("World::mainLoop() - leaving loop earlier...\n");
     607          break;
     608        }
    494609      // Process time
    495       time_slice();
     610      timeSlice();
    496611      // Process collision
    497612      collision();
     
    499614      display();
    500615 
    501       //for(int i = 0; i < 1000000; i++){}
    502 
    503     }
    504   printf("World|Exiting the main loop\n");
     616      for(int i = 0; i < 10000000; i++) {}
     617    }
     618  printf("World::mainLoop() - Exiting the main loop\n");
    505619}
    506620
     
    516630/**
    517631   \brief run all input processing
    518 */
    519 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*/
     636void World::handleInput ()
    520637{
    521638  // localinput
    522   Orxonox::getInstance()->get_localinput()->process();
     639  CommandNode* cn = Orxonox::getInstance()->getLocalInput();
     640  cn->process();
    523641  // remoteinput
    524642}
     
    526644/**
    527645   \brief advance the timeline
    528 */
    529 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*/
     651void World::timeSlice ()
    530652{
    531653  Uint32 currentFrame = SDL_GetTicks();
     
    541663      else
    542664        {
    543           printf("fps = 1000 but 0ms!\n");
    544         }
    545      
    546       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);
    547673      this->update ();
    548       this->localCamera->time_slice (dt);
     674      this->localCamera->timeSlice(dt);
    549675    }
    550676  this->lastFrame = currentFrame;
    551677}
    552678
     679
    553680/**
    554681   \brief compute collision detection
     
    559686}
    560687
    561 /**
    562    \brief handle keyboard commands that are not meant for WorldEntities
    563    \param cmd: the command to handle
    564    \return true if the command was handled by the system or false if it may be passed to the WorldEntities
    565 */
    566 bool World::system_command (Command* cmd)
    567 {
    568   if( !strcmp( cmd->cmd, "quit"))
    569     {
    570       if( !cmd->bUp) this->bQuitOrxonox = true;
    571       return true;
    572     }
    573   return false;
    574 }
    575 
    576 /**
    577         \brief render the current frame
     688
     689/**
     690   \brief render the current frame
     691   
     692   clear all buffers and draw the world
    578693*/
    579694void World::display ()
     
    590705}
    591706
     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*/
    592713Camera* World::getCamera()
    593714{
     
    596717
    597718
     719/**
     720   \brief add and spawn a new entity to this world
     721   \param entity to be added
     722*/
    598723void World::spawn(WorldEntity* entity)
    599724{
     
    611736  if (entity->bFree)
    612737    {
    613       this->track[loc->part].map_coords( loc, entity->get_placement());
    614     }
    615   entity->post_spawn ();
    616 }
    617 
    618 
     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*/
    619749void World::spawn(WorldEntity* entity, Location* loc)
    620750{
     
    633763  if (entity->bFree)
    634764    {
    635       this->track[loc->part].map_coords( loc, entity->get_placement());
    636     }
    637   entity->post_spawn ();
     765      this->track[loc->part].mapCoords( loc, entity->getPlacement());
     766    }
     767  entity->postSpawn ();
    638768  //return entity;
    639769}
    640770
    641771
     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*/
    642777void World::spawn(WorldEntity* entity, Placement* plc)
    643778{
     
    652787  this->entities->add (entity);
    653788  entity->init (plc, owner);
    654   entity->post_spawn ();
     789  entity->postSpawn ();
    655790  //return entity;
    656791}
     792
     793
     794/*
     795  \brief commands that the world must catch
     796  \returns false if not used by the world
     797*/
     798bool World::command(Command* cmd)
     799{
     800  return false;
     801}
  • orxonox/branches/nico/src/world.h

    r2822 r3238  
    44*/
    55
    6 #ifndef WORLD_H
    7 #define WORLD_H
     6#ifndef _WORLD_H
     7#define _WORLD_H
    88
    99#include "stdincl.h"
     
    2222  World (char* name);
    2323  World (int worldID);
    24   ~World ();
     24  virtual ~World ();
    2525
    2626  template<typename T>
    27     T* spawn(Location* loc, WorldEntity* owner);        // template to be able to spawn any derivation of WorldEntity
     27    T* spawn (Location* loc, WorldEntity* owner);       // template to be able to spawn any derivation of WorldEntity
    2828  template<typename T>
    29     T* spawn(Placement* plc, WorldEntity* owner);
     29    T* spawn (Placement* plc, WorldEntity* owner);
    3030 
    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 ();
    3636
    37   virtual void load();
     37  virtual void load ();
     38  virtual void destroy ();
    3839
    39   void time_slice (Uint32 deltaT);
     40  void timeSlice (Uint32 deltaT);
    4041  void collide ();
    4142  void draw ();
    4243  void update ();       // maps Locations to Placements
    43   void calc_camera_pos (Location* loc, Placement* plc);
     44  void calcCameraPos (Location* loc, Placement* plc);
    4445       
    4546  void unload ();
     47  bool command (Command* cmd);
    4648 
    47   void setTrackLen(Uint32 tracklen);
    48   int getTrackLen();
    49   bool system_command (Command* cmd);
    50   Camera* getCamera();
     49  void setTrackLen (Uint32 tracklen);
     50  int getTrackLen ();
     51  //bool system_command (Command* cmd);
     52  Camera* getCamera ();
    5153
    52   void spawn(WorldEntity* entity);
    53   void spawn(WorldEntity* entity, Location* loc);
    54   void spawn(WorldEntity* entity, Placement* plc);
     54  void spawn (WorldEntity* entity);
     55  void spawn (WorldEntity* entity, Location* loc);
     56  void spawn (WorldEntity* entity, Placement* plc);
    5557
    5658  tList<WorldEntity>* entities;
     
    7476  WorldEntity* localPlayer;
    7577 
    76   void mainLoop();
    77   void synchronize();
    78   void handle_input();
    79   void time_slice();
    80   void collision();
    81   void display();
    82   void debug();
     78  void mainLoop ();
     79  void synchronize ();
     80  void handleInput ();
     81  void timeSlice ();
     82  void collision ();
     83  void display ();
     84  void debug ();
    8385};
    8486
    85 /**
    86     \brief spawn a new WorldEntity at a Location
    87     \param loc: the Location where the Entity should be spawned
    88     \param owner: a pointer to the parent of the Entity
    89     \return a pointer to the new WorldEntity or NULL if there was an error
    90    
    91     You can use this function to spawn any derivation of WorldEntity you want, just specify the desired
    92     class within the template specification brackets. Do not attempt to spawn any classes that have NOT been
    93     derived from WorldEntity, you won't even be able to compile the code. Note that this version of spawn()
    94     works with both free and bound WorldEntities.
    95 */
    96 template<typename T> T* World::spawn(Location* loc = NULL, WorldEntity* owner = NULL)
    97 {
    98   Location zeroloc;
    99   T* entity = new T();
    100   entities->add ((WorldEntity*)entity, LIST_ADD_NEXT);
    101   if( loc == NULL)
    102     {
    103       zeroloc.dist = 0;
    104       zeroloc.part = 0;
    105       zeroloc.pos = Vector();
    106       zeroloc.rot = Quaternion();
    107       loc = &zeroloc;
    108     }
    109   entity->init (loc, owner);
    110   if (entity->bFree)
    111     {
    112       track[loc->part].map_coords( loc, entity->get_placement());
    113     }
    114   entity->post_spawn ();
    115   return entity;
    116 }
    117 
    118 /**
    119     \brief spawn a new WorldEntity at a Placement
    120     \param lplc: the placement where the Entity should be spawned
    121     \param owner: a pointer to the parent of the Entity
    122     \return a pointer to the new WorldEntity or NULL if there was an error
    123    
    124     You can use this function to spawn any FREE derivation of WorldEntity you want, just specify the desired
    125     class within the template specification brackets. Do not attempt to spawn any classes that have NOT been
    126     derived from WorldEntity, you won't even be able to compile the code. Note that this version of spawn()
    127     works with free WorldEntities only, you will provoke an error message if you try to spawn a bound Entity with
    128     a Placement.
    129 */
    130 template<typename T> T* World::spawn(Placement* plc, WorldEntity* owner = NULL)
    131 {
    132   T* entity = new T();
    133   entities->add ((WorldEntity*)entity, LIST_ADD_NEXT);
    134   entity->init (plc, owner);
    135   if (!entity->bFree)
    136     {
    137       printf("Can't spawn unfree entity with placement\n");
    138       entities->remove( (WorldEntity*)entity, LIST_FIND_FW);
    139       return NULL;
    140     }
    141   entity->post_spawn ();
    142   return entity;
    143 }
    144 
    145 #endif
     87#endif /* _WORLD_H */
  • orxonox/branches/nico/src/world_entity.cc

    r2822 r3238  
    5353   \return a pointer to location
    5454*/
    55 Location* WorldEntity::get_location ()
     55Location* WorldEntity::getLocation ()
    5656{
    5757  return &loc;
     
    6262   \return a pointer to placement
    6363*/
    64 Placement* WorldEntity::get_placement ()
     64Placement* WorldEntity::getPlacement ()
    6565{
    6666  return &place;
     
    8282   Any previously assigned collision hull will be deleted on reassignment
    8383*/
    84 void WorldEntity::set_collision (CollisionCluster* newhull)
     84void WorldEntity::setCollision (CollisionCluster* newhull)
    8585{
    8686  if( newhull == NULL) return;
     
    159159   DO NOT place such code in the constructor, those variables are set AFTER the entity is constucted.
    160160*/
    161 void WorldEntity::post_spawn ()
     161void WorldEntity::postSpawn ()
    162162{
    163163}
     
    181181   to look at the location you return with this.
    182182*/
    183 void WorldEntity::get_lookat (Location* locbuf)
     183void WorldEntity::getLookat (Location* locbuf)
    184184{
    185185}
     
    191191   place that is not in the world anymore. In both cases you might have to take extreme measures (a.k.a. call destroy).
    192192*/
    193 void WorldEntity::left_world ()
     193void WorldEntity::leftWorld ()
    194194{
    195195}
  • orxonox/branches/nico/src/world_entity.h

    r2551 r3238  
    44*/
    55
    6 #ifndef WORLD_ENTITY_H
    7 #define WORLD_ENTITY_H
     6#ifndef _WORLD_ENTITY_H
     7#define _WORLD_ENTITY_H
    88
    99#include "stdincl.h"
     
    1818 public:
    1919  WorldEntity (bool isFree = false);
    20   ~WorldEntity ();
     20  virtual ~WorldEntity ();
    2121 
    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);
    2525 
    2626  bool isFree ();
     
    2929  //void removeAbility(Ability* ability);
    3030 
    31   virtual void post_spawn ();
     31  virtual void postSpawn ();
    3232  virtual void tick (float time);
    3333  virtual void hit (WorldEntity* weapon, Vector loc);
     
    3737 
    3838  virtual void draw ();
    39   virtual void get_lookat (Location* locbuf);
     39  virtual void getLookat (Location* locbuf);
    4040 
    41   virtual void left_world ();
     41  virtual void leftWorld ();
    4242 
    4343 private:
     
    5555};
    5656
    57 #endif
     57#endif /* _WORLD_ENTITY_H */
Note: See TracChangeset for help on using the changeset viewer.