Added lbreakout2 from original source
This commit is contained in:
12
project/jni/application/lbreakout2-2.6.2/server/Makefile.am
Normal file
12
project/jni/application/lbreakout2-2.6.2/server/Makefile.am
Normal file
@@ -0,0 +1,12 @@
|
||||
DEFS = @DEFS@ @network_flag@ @sdlnet_flag@ @inst_flag@ @locdir_flag@
|
||||
|
||||
bin_PROGRAMS = lbreakout2server
|
||||
|
||||
lbreakout2server_SOURCES = \
|
||||
server.c server_game.c
|
||||
|
||||
EXTRA_DIST = server.h server_game.h
|
||||
|
||||
lbreakout2server_LDADD = ../common/libcommon.a ../game/libgame.a @sdlnet_lib_flag@
|
||||
|
||||
SUBDIRS = levels
|
||||
592
project/jni/application/lbreakout2-2.6.2/server/Makefile.in
Normal file
592
project/jni/application/lbreakout2-2.6.2/server/Makefile.in
Normal file
@@ -0,0 +1,592 @@
|
||||
# Makefile.in generated by automake 1.9.6 from Makefile.am.
|
||||
# @configure_input@
|
||||
|
||||
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
|
||||
# 2003, 2004, 2005 Free Software Foundation, Inc.
|
||||
# This Makefile.in is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
|
||||
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
|
||||
# PARTICULAR PURPOSE.
|
||||
|
||||
@SET_MAKE@
|
||||
|
||||
srcdir = @srcdir@
|
||||
top_srcdir = @top_srcdir@
|
||||
VPATH = @srcdir@
|
||||
pkgdatadir = $(datadir)/@PACKAGE@
|
||||
pkglibdir = $(libdir)/@PACKAGE@
|
||||
pkgincludedir = $(includedir)/@PACKAGE@
|
||||
top_builddir = ..
|
||||
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
|
||||
INSTALL = @INSTALL@
|
||||
install_sh_DATA = $(install_sh) -c -m 644
|
||||
install_sh_PROGRAM = $(install_sh) -c
|
||||
install_sh_SCRIPT = $(install_sh) -c
|
||||
INSTALL_HEADER = $(INSTALL_DATA)
|
||||
transform = $(program_transform_name)
|
||||
NORMAL_INSTALL = :
|
||||
PRE_INSTALL = :
|
||||
POST_INSTALL = :
|
||||
NORMAL_UNINSTALL = :
|
||||
PRE_UNINSTALL = :
|
||||
POST_UNINSTALL = :
|
||||
build_triplet = @build@
|
||||
host_triplet = @host@
|
||||
target_triplet = @target@
|
||||
bin_PROGRAMS = lbreakout2server$(EXEEXT)
|
||||
subdir = server
|
||||
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
|
||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||
am__aclocal_m4_deps = $(top_srcdir)/m4/codeset.m4 \
|
||||
$(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/glibc21.m4 \
|
||||
$(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intdiv0.m4 \
|
||||
$(top_srcdir)/m4/intmax.m4 $(top_srcdir)/m4/inttypes-pri.m4 \
|
||||
$(top_srcdir)/m4/inttypes.m4 $(top_srcdir)/m4/inttypes_h.m4 \
|
||||
$(top_srcdir)/m4/isc-posix.m4 $(top_srcdir)/m4/lcmessage.m4 \
|
||||
$(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
|
||||
$(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/longdouble.m4 \
|
||||
$(top_srcdir)/m4/longlong.m4 $(top_srcdir)/m4/nls.m4 \
|
||||
$(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/printf-posix.m4 \
|
||||
$(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/signed.m4 \
|
||||
$(top_srcdir)/m4/size_max.m4 $(top_srcdir)/m4/stdint_h.m4 \
|
||||
$(top_srcdir)/m4/uintmax_t.m4 $(top_srcdir)/m4/ulonglong.m4 \
|
||||
$(top_srcdir)/m4/wchar_t.m4 $(top_srcdir)/m4/wint_t.m4 \
|
||||
$(top_srcdir)/m4/xsize.m4 $(top_srcdir)/acinclude.m4 \
|
||||
$(top_srcdir)/configure.in
|
||||
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
||||
$(ACLOCAL_M4)
|
||||
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
|
||||
CONFIG_HEADER = $(top_builddir)/config.h
|
||||
CONFIG_CLEAN_FILES =
|
||||
am__installdirs = "$(DESTDIR)$(bindir)"
|
||||
binPROGRAMS_INSTALL = $(INSTALL_PROGRAM)
|
||||
PROGRAMS = $(bin_PROGRAMS)
|
||||
am_lbreakout2server_OBJECTS = server.$(OBJEXT) server_game.$(OBJEXT)
|
||||
lbreakout2server_OBJECTS = $(am_lbreakout2server_OBJECTS)
|
||||
lbreakout2server_DEPENDENCIES = ../common/libcommon.a \
|
||||
../game/libgame.a
|
||||
DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)
|
||||
depcomp = $(SHELL) $(top_srcdir)/depcomp
|
||||
am__depfiles_maybe = depfiles
|
||||
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
|
||||
$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
|
||||
CCLD = $(CC)
|
||||
LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
|
||||
SOURCES = $(lbreakout2server_SOURCES)
|
||||
DIST_SOURCES = $(lbreakout2server_SOURCES)
|
||||
RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
|
||||
html-recursive info-recursive install-data-recursive \
|
||||
install-exec-recursive install-info-recursive \
|
||||
install-recursive installcheck-recursive installdirs-recursive \
|
||||
pdf-recursive ps-recursive uninstall-info-recursive \
|
||||
uninstall-recursive
|
||||
ETAGS = etags
|
||||
CTAGS = ctags
|
||||
DIST_SUBDIRS = $(SUBDIRS)
|
||||
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
||||
ACLOCAL = @ACLOCAL@
|
||||
ALLOCA = @ALLOCA@
|
||||
AMDEP_FALSE = @AMDEP_FALSE@
|
||||
AMDEP_TRUE = @AMDEP_TRUE@
|
||||
AMTAR = @AMTAR@
|
||||
AUTOCONF = @AUTOCONF@
|
||||
AUTOHEADER = @AUTOHEADER@
|
||||
AUTOMAKE = @AUTOMAKE@
|
||||
AWK = @AWK@
|
||||
BUILD_INCLUDED_LIBINTL = @BUILD_INCLUDED_LIBINTL@
|
||||
CATOBJEXT = @CATOBJEXT@
|
||||
CC = @CC@
|
||||
CCDEPMODE = @CCDEPMODE@
|
||||
CFLAGS = @CFLAGS@
|
||||
CPP = @CPP@
|
||||
CPPFLAGS = @CPPFLAGS@
|
||||
CYGPATH_W = @CYGPATH_W@
|
||||
DATADIRNAME = @DATADIRNAME@
|
||||
DEFS = @DEFS@ @network_flag@ @sdlnet_flag@ @inst_flag@ @locdir_flag@
|
||||
DEPDIR = @DEPDIR@
|
||||
ECHO_C = @ECHO_C@
|
||||
ECHO_N = @ECHO_N@
|
||||
ECHO_T = @ECHO_T@
|
||||
EGREP = @EGREP@
|
||||
EXEEXT = @EXEEXT@
|
||||
GENCAT = @GENCAT@
|
||||
GLIBC21 = @GLIBC21@
|
||||
GMSGFMT = @GMSGFMT@
|
||||
GREP = @GREP@
|
||||
HAVE_ASPRINTF = @HAVE_ASPRINTF@
|
||||
HAVE_POSIX_PRINTF = @HAVE_POSIX_PRINTF@
|
||||
HAVE_SNPRINTF = @HAVE_SNPRINTF@
|
||||
HAVE_WPRINTF = @HAVE_WPRINTF@
|
||||
INSTALL_DATA = @INSTALL_DATA@
|
||||
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
||||
INSTALL_SCRIPT = @INSTALL_SCRIPT@
|
||||
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
|
||||
INSTOBJEXT = @INSTOBJEXT@
|
||||
INTLBISON = @INTLBISON@
|
||||
INTLLIBS = @INTLLIBS@
|
||||
INTLOBJS = @INTLOBJS@
|
||||
INTL_LIBTOOL_SUFFIX_PREFIX = @INTL_LIBTOOL_SUFFIX_PREFIX@
|
||||
LDFLAGS = @LDFLAGS@
|
||||
LIBICONV = @LIBICONV@
|
||||
LIBINTL = @LIBINTL@
|
||||
LIBOBJS = @LIBOBJS@
|
||||
LIBS = @LIBS@
|
||||
LTLIBICONV = @LTLIBICONV@
|
||||
LTLIBINTL = @LTLIBINTL@
|
||||
LTLIBOBJS = @LTLIBOBJS@
|
||||
MAKEINFO = @MAKEINFO@
|
||||
MKINSTALLDIRS = @MKINSTALLDIRS@
|
||||
MSGFMT = @MSGFMT@
|
||||
MSGMERGE = @MSGMERGE@
|
||||
OBJEXT = @OBJEXT@
|
||||
PACKAGE = @PACKAGE@
|
||||
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
|
||||
PACKAGE_NAME = @PACKAGE_NAME@
|
||||
PACKAGE_STRING = @PACKAGE_STRING@
|
||||
PACKAGE_TARNAME = @PACKAGE_TARNAME@
|
||||
PACKAGE_VERSION = @PACKAGE_VERSION@
|
||||
PATH_SEPARATOR = @PATH_SEPARATOR@
|
||||
POSUB = @POSUB@
|
||||
RANLIB = @RANLIB@
|
||||
SDL_CFLAGS = @SDL_CFLAGS@
|
||||
SDL_CONFIG = @SDL_CONFIG@
|
||||
SDL_LIBS = @SDL_LIBS@
|
||||
SET_MAKE = @SET_MAKE@
|
||||
SHELL = @SHELL@
|
||||
STRIP = @STRIP@
|
||||
USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@
|
||||
USE_NLS = @USE_NLS@
|
||||
VERSION = @VERSION@
|
||||
XGETTEXT = @XGETTEXT@
|
||||
ac_ct_CC = @ac_ct_CC@
|
||||
am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
|
||||
am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
|
||||
am__include = @am__include@
|
||||
am__leading_dot = @am__leading_dot@
|
||||
am__quote = @am__quote@
|
||||
am__tar = @am__tar@
|
||||
am__untar = @am__untar@
|
||||
appname = @appname@
|
||||
arch_flag = @arch_flag@
|
||||
audio_flag = @audio_flag@
|
||||
bindir = @bindir@
|
||||
build = @build@
|
||||
build_alias = @build_alias@
|
||||
build_cpu = @build_cpu@
|
||||
build_os = @build_os@
|
||||
build_vendor = @build_vendor@
|
||||
datadir = @datadir@
|
||||
datarootdir = @datarootdir@
|
||||
doc_dir = @doc_dir@
|
||||
docdir = @docdir@
|
||||
dvidir = @dvidir@
|
||||
exec_prefix = @exec_prefix@
|
||||
hi_dir = @hi_dir@
|
||||
hi_inst_flag = @hi_inst_flag@
|
||||
host = @host@
|
||||
host_alias = @host_alias@
|
||||
host_cpu = @host_cpu@
|
||||
host_os = @host_os@
|
||||
host_vendor = @host_vendor@
|
||||
htmldir = @htmldir@
|
||||
includedir = @includedir@
|
||||
infodir = @infodir@
|
||||
inst_dir = @inst_dir@
|
||||
inst_flag = @inst_flag@
|
||||
install_sh = @install_sh@
|
||||
libdir = @libdir@
|
||||
libexecdir = @libexecdir@
|
||||
localedir = @localedir@
|
||||
localstatedir = @localstatedir@
|
||||
locdir_flag = @locdir_flag@
|
||||
mandir = @mandir@
|
||||
mixer_flag = @mixer_flag@
|
||||
mkdir_p = @mkdir_p@
|
||||
netdebug_flag = @netdebug_flag@
|
||||
network_flag = @network_flag@
|
||||
oldincludedir = @oldincludedir@
|
||||
pdfdir = @pdfdir@
|
||||
prefix = @prefix@
|
||||
program_transform_name = @program_transform_name@
|
||||
psdir = @psdir@
|
||||
sbindir = @sbindir@
|
||||
sdlnet_flag = @sdlnet_flag@
|
||||
sdlnet_lib_flag = @sdlnet_lib_flag@
|
||||
sharedstatedir = @sharedstatedir@
|
||||
sysconfdir = @sysconfdir@
|
||||
target = @target@
|
||||
target_alias = @target_alias@
|
||||
target_cpu = @target_cpu@
|
||||
target_os = @target_os@
|
||||
target_vendor = @target_vendor@
|
||||
warp_flag = @warp_flag@
|
||||
win32_deps = @win32_deps@
|
||||
win32_inst_script = @win32_inst_script@
|
||||
lbreakout2server_SOURCES = \
|
||||
server.c server_game.c
|
||||
|
||||
EXTRA_DIST = server.h server_game.h
|
||||
lbreakout2server_LDADD = ../common/libcommon.a ../game/libgame.a @sdlnet_lib_flag@
|
||||
SUBDIRS = levels
|
||||
all: all-recursive
|
||||
|
||||
.SUFFIXES:
|
||||
.SUFFIXES: .c .o .obj
|
||||
$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
|
||||
@for dep in $?; do \
|
||||
case '$(am__configure_deps)' in \
|
||||
*$$dep*) \
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
|
||||
&& exit 0; \
|
||||
exit 1;; \
|
||||
esac; \
|
||||
done; \
|
||||
echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign server/Makefile'; \
|
||||
cd $(top_srcdir) && \
|
||||
$(AUTOMAKE) --foreign server/Makefile
|
||||
.PRECIOUS: Makefile
|
||||
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
|
||||
@case '$?' in \
|
||||
*config.status*) \
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
|
||||
*) \
|
||||
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
|
||||
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
|
||||
esac;
|
||||
|
||||
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
|
||||
$(top_srcdir)/configure: $(am__configure_deps)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
$(ACLOCAL_M4): $(am__aclocal_m4_deps)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
install-binPROGRAMS: $(bin_PROGRAMS)
|
||||
@$(NORMAL_INSTALL)
|
||||
test -z "$(bindir)" || $(mkdir_p) "$(DESTDIR)$(bindir)"
|
||||
@list='$(bin_PROGRAMS)'; for p in $$list; do \
|
||||
p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
|
||||
if test -f $$p \
|
||||
; then \
|
||||
f=`echo "$$p1" | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'`; \
|
||||
echo " $(INSTALL_PROGRAM_ENV) $(binPROGRAMS_INSTALL) '$$p' '$(DESTDIR)$(bindir)/$$f'"; \
|
||||
$(INSTALL_PROGRAM_ENV) $(binPROGRAMS_INSTALL) "$$p" "$(DESTDIR)$(bindir)/$$f" || exit 1; \
|
||||
else :; fi; \
|
||||
done
|
||||
|
||||
uninstall-binPROGRAMS:
|
||||
@$(NORMAL_UNINSTALL)
|
||||
@list='$(bin_PROGRAMS)'; for p in $$list; do \
|
||||
f=`echo "$$p" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \
|
||||
echo " rm -f '$(DESTDIR)$(bindir)/$$f'"; \
|
||||
rm -f "$(DESTDIR)$(bindir)/$$f"; \
|
||||
done
|
||||
|
||||
clean-binPROGRAMS:
|
||||
-test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS)
|
||||
lbreakout2server$(EXEEXT): $(lbreakout2server_OBJECTS) $(lbreakout2server_DEPENDENCIES)
|
||||
@rm -f lbreakout2server$(EXEEXT)
|
||||
$(LINK) $(lbreakout2server_LDFLAGS) $(lbreakout2server_OBJECTS) $(lbreakout2server_LDADD) $(LIBS)
|
||||
|
||||
mostlyclean-compile:
|
||||
-rm -f *.$(OBJEXT)
|
||||
|
||||
distclean-compile:
|
||||
-rm -f *.tab.c
|
||||
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/server.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/server_game.Po@am__quote@
|
||||
|
||||
.c.o:
|
||||
@am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
|
||||
@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(COMPILE) -c $<
|
||||
|
||||
.c.obj:
|
||||
@am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \
|
||||
@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'`
|
||||
uninstall-info-am:
|
||||
|
||||
# This directory's subdirectories are mostly independent; you can cd
|
||||
# into them and run `make' without going through this Makefile.
|
||||
# To change the values of `make' variables: instead of editing Makefiles,
|
||||
# (1) if the variable is set in `config.status', edit `config.status'
|
||||
# (which will cause the Makefiles to be regenerated when you run `make');
|
||||
# (2) otherwise, pass the desired values on the `make' command line.
|
||||
$(RECURSIVE_TARGETS):
|
||||
@failcom='exit 1'; \
|
||||
for f in x $$MAKEFLAGS; do \
|
||||
case $$f in \
|
||||
*=* | --[!k]*);; \
|
||||
*k*) failcom='fail=yes';; \
|
||||
esac; \
|
||||
done; \
|
||||
dot_seen=no; \
|
||||
target=`echo $@ | sed s/-recursive//`; \
|
||||
list='$(SUBDIRS)'; for subdir in $$list; do \
|
||||
echo "Making $$target in $$subdir"; \
|
||||
if test "$$subdir" = "."; then \
|
||||
dot_seen=yes; \
|
||||
local_target="$$target-am"; \
|
||||
else \
|
||||
local_target="$$target"; \
|
||||
fi; \
|
||||
(cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|
||||
|| eval $$failcom; \
|
||||
done; \
|
||||
if test "$$dot_seen" = "no"; then \
|
||||
$(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
|
||||
fi; test -z "$$fail"
|
||||
|
||||
mostlyclean-recursive clean-recursive distclean-recursive \
|
||||
maintainer-clean-recursive:
|
||||
@failcom='exit 1'; \
|
||||
for f in x $$MAKEFLAGS; do \
|
||||
case $$f in \
|
||||
*=* | --[!k]*);; \
|
||||
*k*) failcom='fail=yes';; \
|
||||
esac; \
|
||||
done; \
|
||||
dot_seen=no; \
|
||||
case "$@" in \
|
||||
distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
|
||||
*) list='$(SUBDIRS)' ;; \
|
||||
esac; \
|
||||
rev=''; for subdir in $$list; do \
|
||||
if test "$$subdir" = "."; then :; else \
|
||||
rev="$$subdir $$rev"; \
|
||||
fi; \
|
||||
done; \
|
||||
rev="$$rev ."; \
|
||||
target=`echo $@ | sed s/-recursive//`; \
|
||||
for subdir in $$rev; do \
|
||||
echo "Making $$target in $$subdir"; \
|
||||
if test "$$subdir" = "."; then \
|
||||
local_target="$$target-am"; \
|
||||
else \
|
||||
local_target="$$target"; \
|
||||
fi; \
|
||||
(cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|
||||
|| eval $$failcom; \
|
||||
done && test -z "$$fail"
|
||||
tags-recursive:
|
||||
list='$(SUBDIRS)'; for subdir in $$list; do \
|
||||
test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
|
||||
done
|
||||
ctags-recursive:
|
||||
list='$(SUBDIRS)'; for subdir in $$list; do \
|
||||
test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
|
||||
done
|
||||
|
||||
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
|
||||
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
|
||||
unique=`for i in $$list; do \
|
||||
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||||
done | \
|
||||
$(AWK) ' { files[$$0] = 1; } \
|
||||
END { for (i in files) print i; }'`; \
|
||||
mkid -fID $$unique
|
||||
tags: TAGS
|
||||
|
||||
TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
|
||||
$(TAGS_FILES) $(LISP)
|
||||
tags=; \
|
||||
here=`pwd`; \
|
||||
if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
|
||||
include_option=--etags-include; \
|
||||
empty_fix=.; \
|
||||
else \
|
||||
include_option=--include; \
|
||||
empty_fix=; \
|
||||
fi; \
|
||||
list='$(SUBDIRS)'; for subdir in $$list; do \
|
||||
if test "$$subdir" = .; then :; else \
|
||||
test ! -f $$subdir/TAGS || \
|
||||
tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \
|
||||
fi; \
|
||||
done; \
|
||||
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
|
||||
unique=`for i in $$list; do \
|
||||
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||||
done | \
|
||||
$(AWK) ' { files[$$0] = 1; } \
|
||||
END { for (i in files) print i; }'`; \
|
||||
if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
|
||||
test -n "$$unique" || unique=$$empty_fix; \
|
||||
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
|
||||
$$tags $$unique; \
|
||||
fi
|
||||
ctags: CTAGS
|
||||
CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
|
||||
$(TAGS_FILES) $(LISP)
|
||||
tags=; \
|
||||
here=`pwd`; \
|
||||
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
|
||||
unique=`for i in $$list; do \
|
||||
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||||
done | \
|
||||
$(AWK) ' { files[$$0] = 1; } \
|
||||
END { for (i in files) print i; }'`; \
|
||||
test -z "$(CTAGS_ARGS)$$tags$$unique" \
|
||||
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
|
||||
$$tags $$unique
|
||||
|
||||
GTAGS:
|
||||
here=`$(am__cd) $(top_builddir) && pwd` \
|
||||
&& cd $(top_srcdir) \
|
||||
&& gtags -i $(GTAGS_ARGS) $$here
|
||||
|
||||
distclean-tags:
|
||||
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
|
||||
|
||||
distdir: $(DISTFILES)
|
||||
@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
|
||||
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
|
||||
list='$(DISTFILES)'; for file in $$list; do \
|
||||
case $$file in \
|
||||
$(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
|
||||
$(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
|
||||
esac; \
|
||||
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
|
||||
dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
|
||||
if test "$$dir" != "$$file" && test "$$dir" != "."; then \
|
||||
dir="/$$dir"; \
|
||||
$(mkdir_p) "$(distdir)$$dir"; \
|
||||
else \
|
||||
dir=''; \
|
||||
fi; \
|
||||
if test -d $$d/$$file; then \
|
||||
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
|
||||
cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
|
||||
fi; \
|
||||
cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
|
||||
else \
|
||||
test -f $(distdir)/$$file \
|
||||
|| cp -p $$d/$$file $(distdir)/$$file \
|
||||
|| exit 1; \
|
||||
fi; \
|
||||
done
|
||||
list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
|
||||
if test "$$subdir" = .; then :; else \
|
||||
test -d "$(distdir)/$$subdir" \
|
||||
|| $(mkdir_p) "$(distdir)/$$subdir" \
|
||||
|| exit 1; \
|
||||
distdir=`$(am__cd) $(distdir) && pwd`; \
|
||||
top_distdir=`$(am__cd) $(top_distdir) && pwd`; \
|
||||
(cd $$subdir && \
|
||||
$(MAKE) $(AM_MAKEFLAGS) \
|
||||
top_distdir="$$top_distdir" \
|
||||
distdir="$$distdir/$$subdir" \
|
||||
distdir) \
|
||||
|| exit 1; \
|
||||
fi; \
|
||||
done
|
||||
check-am: all-am
|
||||
check: check-recursive
|
||||
all-am: Makefile $(PROGRAMS)
|
||||
installdirs: installdirs-recursive
|
||||
installdirs-am:
|
||||
for dir in "$(DESTDIR)$(bindir)"; do \
|
||||
test -z "$$dir" || $(mkdir_p) "$$dir"; \
|
||||
done
|
||||
install: install-recursive
|
||||
install-exec: install-exec-recursive
|
||||
install-data: install-data-recursive
|
||||
uninstall: uninstall-recursive
|
||||
|
||||
install-am: all-am
|
||||
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
|
||||
|
||||
installcheck: installcheck-recursive
|
||||
install-strip:
|
||||
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
|
||||
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
|
||||
`test -z '$(STRIP)' || \
|
||||
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
|
||||
mostlyclean-generic:
|
||||
|
||||
clean-generic:
|
||||
|
||||
distclean-generic:
|
||||
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
|
||||
|
||||
maintainer-clean-generic:
|
||||
@echo "This command is intended for maintainers to use"
|
||||
@echo "it deletes files that may require special tools to rebuild."
|
||||
clean: clean-recursive
|
||||
|
||||
clean-am: clean-binPROGRAMS clean-generic mostlyclean-am
|
||||
|
||||
distclean: distclean-recursive
|
||||
-rm -rf ./$(DEPDIR)
|
||||
-rm -f Makefile
|
||||
distclean-am: clean-am distclean-compile distclean-generic \
|
||||
distclean-tags
|
||||
|
||||
dvi: dvi-recursive
|
||||
|
||||
dvi-am:
|
||||
|
||||
html: html-recursive
|
||||
|
||||
info: info-recursive
|
||||
|
||||
info-am:
|
||||
|
||||
install-data-am:
|
||||
|
||||
install-exec-am: install-binPROGRAMS
|
||||
|
||||
install-info: install-info-recursive
|
||||
|
||||
install-man:
|
||||
|
||||
installcheck-am:
|
||||
|
||||
maintainer-clean: maintainer-clean-recursive
|
||||
-rm -rf ./$(DEPDIR)
|
||||
-rm -f Makefile
|
||||
maintainer-clean-am: distclean-am maintainer-clean-generic
|
||||
|
||||
mostlyclean: mostlyclean-recursive
|
||||
|
||||
mostlyclean-am: mostlyclean-compile mostlyclean-generic
|
||||
|
||||
pdf: pdf-recursive
|
||||
|
||||
pdf-am:
|
||||
|
||||
ps: ps-recursive
|
||||
|
||||
ps-am:
|
||||
|
||||
uninstall-am: uninstall-binPROGRAMS uninstall-info-am
|
||||
|
||||
uninstall-info: uninstall-info-recursive
|
||||
|
||||
.PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am check check-am \
|
||||
clean clean-binPROGRAMS clean-generic clean-recursive ctags \
|
||||
ctags-recursive distclean distclean-compile distclean-generic \
|
||||
distclean-recursive distclean-tags distdir dvi dvi-am html \
|
||||
html-am info info-am install install-am install-binPROGRAMS \
|
||||
install-data install-data-am install-exec install-exec-am \
|
||||
install-info install-info-am install-man install-strip \
|
||||
installcheck installcheck-am installdirs installdirs-am \
|
||||
maintainer-clean maintainer-clean-generic \
|
||||
maintainer-clean-recursive mostlyclean mostlyclean-compile \
|
||||
mostlyclean-generic mostlyclean-recursive pdf pdf-am ps ps-am \
|
||||
tags tags-recursive uninstall uninstall-am \
|
||||
uninstall-binPROGRAMS uninstall-info-am
|
||||
|
||||
# Tell versions [3.59,3.63) of GNU make to not export all variables.
|
||||
# Otherwise a system limit (for SysV at least) may be exceeded.
|
||||
.NOEXPORT:
|
||||
@@ -0,0 +1,13 @@
|
||||
EXTRA_DIST = N_Arenas N_Snapshots
|
||||
|
||||
install-data-local:
|
||||
$(mkinstalldirs) $(DESTDIR)$(inst_dir)/levels
|
||||
@for file in $(EXTRA_DIST); do \
|
||||
$(INSTALL_DATA) $$file $(DESTDIR)$(inst_dir)/levels/$$file; \
|
||||
done
|
||||
|
||||
win32-install-script:
|
||||
@for file in $(EXTRA_DIST); do \
|
||||
echo "Source: \"`pwd -W`\\$$file\"; DestDir: \"{app}\\levels\"; CopyMode: alwaysoverwrite" >> @win32_inst_script@; \
|
||||
done
|
||||
|
||||
@@ -0,0 +1,368 @@
|
||||
# Makefile.in generated by automake 1.9.6 from Makefile.am.
|
||||
# @configure_input@
|
||||
|
||||
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
|
||||
# 2003, 2004, 2005 Free Software Foundation, Inc.
|
||||
# This Makefile.in is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
|
||||
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
|
||||
# PARTICULAR PURPOSE.
|
||||
|
||||
@SET_MAKE@
|
||||
srcdir = @srcdir@
|
||||
top_srcdir = @top_srcdir@
|
||||
VPATH = @srcdir@
|
||||
pkgdatadir = $(datadir)/@PACKAGE@
|
||||
pkglibdir = $(libdir)/@PACKAGE@
|
||||
pkgincludedir = $(includedir)/@PACKAGE@
|
||||
top_builddir = ../..
|
||||
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
|
||||
INSTALL = @INSTALL@
|
||||
install_sh_DATA = $(install_sh) -c -m 644
|
||||
install_sh_PROGRAM = $(install_sh) -c
|
||||
install_sh_SCRIPT = $(install_sh) -c
|
||||
INSTALL_HEADER = $(INSTALL_DATA)
|
||||
transform = $(program_transform_name)
|
||||
NORMAL_INSTALL = :
|
||||
PRE_INSTALL = :
|
||||
POST_INSTALL = :
|
||||
NORMAL_UNINSTALL = :
|
||||
PRE_UNINSTALL = :
|
||||
POST_UNINSTALL = :
|
||||
build_triplet = @build@
|
||||
host_triplet = @host@
|
||||
target_triplet = @target@
|
||||
subdir = server/levels
|
||||
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
|
||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||
am__aclocal_m4_deps = $(top_srcdir)/m4/codeset.m4 \
|
||||
$(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/glibc21.m4 \
|
||||
$(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intdiv0.m4 \
|
||||
$(top_srcdir)/m4/intmax.m4 $(top_srcdir)/m4/inttypes-pri.m4 \
|
||||
$(top_srcdir)/m4/inttypes.m4 $(top_srcdir)/m4/inttypes_h.m4 \
|
||||
$(top_srcdir)/m4/isc-posix.m4 $(top_srcdir)/m4/lcmessage.m4 \
|
||||
$(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
|
||||
$(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/longdouble.m4 \
|
||||
$(top_srcdir)/m4/longlong.m4 $(top_srcdir)/m4/nls.m4 \
|
||||
$(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/printf-posix.m4 \
|
||||
$(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/signed.m4 \
|
||||
$(top_srcdir)/m4/size_max.m4 $(top_srcdir)/m4/stdint_h.m4 \
|
||||
$(top_srcdir)/m4/uintmax_t.m4 $(top_srcdir)/m4/ulonglong.m4 \
|
||||
$(top_srcdir)/m4/wchar_t.m4 $(top_srcdir)/m4/wint_t.m4 \
|
||||
$(top_srcdir)/m4/xsize.m4 $(top_srcdir)/acinclude.m4 \
|
||||
$(top_srcdir)/configure.in
|
||||
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
||||
$(ACLOCAL_M4)
|
||||
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
|
||||
CONFIG_HEADER = $(top_builddir)/config.h
|
||||
CONFIG_CLEAN_FILES =
|
||||
SOURCES =
|
||||
DIST_SOURCES =
|
||||
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
||||
ACLOCAL = @ACLOCAL@
|
||||
ALLOCA = @ALLOCA@
|
||||
AMDEP_FALSE = @AMDEP_FALSE@
|
||||
AMDEP_TRUE = @AMDEP_TRUE@
|
||||
AMTAR = @AMTAR@
|
||||
AUTOCONF = @AUTOCONF@
|
||||
AUTOHEADER = @AUTOHEADER@
|
||||
AUTOMAKE = @AUTOMAKE@
|
||||
AWK = @AWK@
|
||||
BUILD_INCLUDED_LIBINTL = @BUILD_INCLUDED_LIBINTL@
|
||||
CATOBJEXT = @CATOBJEXT@
|
||||
CC = @CC@
|
||||
CCDEPMODE = @CCDEPMODE@
|
||||
CFLAGS = @CFLAGS@
|
||||
CPP = @CPP@
|
||||
CPPFLAGS = @CPPFLAGS@
|
||||
CYGPATH_W = @CYGPATH_W@
|
||||
DATADIRNAME = @DATADIRNAME@
|
||||
DEFS = @DEFS@
|
||||
DEPDIR = @DEPDIR@
|
||||
ECHO_C = @ECHO_C@
|
||||
ECHO_N = @ECHO_N@
|
||||
ECHO_T = @ECHO_T@
|
||||
EGREP = @EGREP@
|
||||
EXEEXT = @EXEEXT@
|
||||
GENCAT = @GENCAT@
|
||||
GLIBC21 = @GLIBC21@
|
||||
GMSGFMT = @GMSGFMT@
|
||||
GREP = @GREP@
|
||||
HAVE_ASPRINTF = @HAVE_ASPRINTF@
|
||||
HAVE_POSIX_PRINTF = @HAVE_POSIX_PRINTF@
|
||||
HAVE_SNPRINTF = @HAVE_SNPRINTF@
|
||||
HAVE_WPRINTF = @HAVE_WPRINTF@
|
||||
INSTALL_DATA = @INSTALL_DATA@
|
||||
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
||||
INSTALL_SCRIPT = @INSTALL_SCRIPT@
|
||||
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
|
||||
INSTOBJEXT = @INSTOBJEXT@
|
||||
INTLBISON = @INTLBISON@
|
||||
INTLLIBS = @INTLLIBS@
|
||||
INTLOBJS = @INTLOBJS@
|
||||
INTL_LIBTOOL_SUFFIX_PREFIX = @INTL_LIBTOOL_SUFFIX_PREFIX@
|
||||
LDFLAGS = @LDFLAGS@
|
||||
LIBICONV = @LIBICONV@
|
||||
LIBINTL = @LIBINTL@
|
||||
LIBOBJS = @LIBOBJS@
|
||||
LIBS = @LIBS@
|
||||
LTLIBICONV = @LTLIBICONV@
|
||||
LTLIBINTL = @LTLIBINTL@
|
||||
LTLIBOBJS = @LTLIBOBJS@
|
||||
MAKEINFO = @MAKEINFO@
|
||||
MKINSTALLDIRS = @MKINSTALLDIRS@
|
||||
MSGFMT = @MSGFMT@
|
||||
MSGMERGE = @MSGMERGE@
|
||||
OBJEXT = @OBJEXT@
|
||||
PACKAGE = @PACKAGE@
|
||||
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
|
||||
PACKAGE_NAME = @PACKAGE_NAME@
|
||||
PACKAGE_STRING = @PACKAGE_STRING@
|
||||
PACKAGE_TARNAME = @PACKAGE_TARNAME@
|
||||
PACKAGE_VERSION = @PACKAGE_VERSION@
|
||||
PATH_SEPARATOR = @PATH_SEPARATOR@
|
||||
POSUB = @POSUB@
|
||||
RANLIB = @RANLIB@
|
||||
SDL_CFLAGS = @SDL_CFLAGS@
|
||||
SDL_CONFIG = @SDL_CONFIG@
|
||||
SDL_LIBS = @SDL_LIBS@
|
||||
SET_MAKE = @SET_MAKE@
|
||||
SHELL = @SHELL@
|
||||
STRIP = @STRIP@
|
||||
USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@
|
||||
USE_NLS = @USE_NLS@
|
||||
VERSION = @VERSION@
|
||||
XGETTEXT = @XGETTEXT@
|
||||
ac_ct_CC = @ac_ct_CC@
|
||||
am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
|
||||
am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
|
||||
am__include = @am__include@
|
||||
am__leading_dot = @am__leading_dot@
|
||||
am__quote = @am__quote@
|
||||
am__tar = @am__tar@
|
||||
am__untar = @am__untar@
|
||||
appname = @appname@
|
||||
arch_flag = @arch_flag@
|
||||
audio_flag = @audio_flag@
|
||||
bindir = @bindir@
|
||||
build = @build@
|
||||
build_alias = @build_alias@
|
||||
build_cpu = @build_cpu@
|
||||
build_os = @build_os@
|
||||
build_vendor = @build_vendor@
|
||||
datadir = @datadir@
|
||||
datarootdir = @datarootdir@
|
||||
doc_dir = @doc_dir@
|
||||
docdir = @docdir@
|
||||
dvidir = @dvidir@
|
||||
exec_prefix = @exec_prefix@
|
||||
hi_dir = @hi_dir@
|
||||
hi_inst_flag = @hi_inst_flag@
|
||||
host = @host@
|
||||
host_alias = @host_alias@
|
||||
host_cpu = @host_cpu@
|
||||
host_os = @host_os@
|
||||
host_vendor = @host_vendor@
|
||||
htmldir = @htmldir@
|
||||
includedir = @includedir@
|
||||
infodir = @infodir@
|
||||
inst_dir = @inst_dir@
|
||||
inst_flag = @inst_flag@
|
||||
install_sh = @install_sh@
|
||||
libdir = @libdir@
|
||||
libexecdir = @libexecdir@
|
||||
localedir = @localedir@
|
||||
localstatedir = @localstatedir@
|
||||
locdir_flag = @locdir_flag@
|
||||
mandir = @mandir@
|
||||
mixer_flag = @mixer_flag@
|
||||
mkdir_p = @mkdir_p@
|
||||
netdebug_flag = @netdebug_flag@
|
||||
network_flag = @network_flag@
|
||||
oldincludedir = @oldincludedir@
|
||||
pdfdir = @pdfdir@
|
||||
prefix = @prefix@
|
||||
program_transform_name = @program_transform_name@
|
||||
psdir = @psdir@
|
||||
sbindir = @sbindir@
|
||||
sdlnet_flag = @sdlnet_flag@
|
||||
sdlnet_lib_flag = @sdlnet_lib_flag@
|
||||
sharedstatedir = @sharedstatedir@
|
||||
sysconfdir = @sysconfdir@
|
||||
target = @target@
|
||||
target_alias = @target_alias@
|
||||
target_cpu = @target_cpu@
|
||||
target_os = @target_os@
|
||||
target_vendor = @target_vendor@
|
||||
warp_flag = @warp_flag@
|
||||
win32_deps = @win32_deps@
|
||||
win32_inst_script = @win32_inst_script@
|
||||
EXTRA_DIST = N_Arenas N_Snapshots
|
||||
all: all-am
|
||||
|
||||
.SUFFIXES:
|
||||
$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
|
||||
@for dep in $?; do \
|
||||
case '$(am__configure_deps)' in \
|
||||
*$$dep*) \
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
|
||||
&& exit 0; \
|
||||
exit 1;; \
|
||||
esac; \
|
||||
done; \
|
||||
echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign server/levels/Makefile'; \
|
||||
cd $(top_srcdir) && \
|
||||
$(AUTOMAKE) --foreign server/levels/Makefile
|
||||
.PRECIOUS: Makefile
|
||||
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
|
||||
@case '$?' in \
|
||||
*config.status*) \
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
|
||||
*) \
|
||||
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
|
||||
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
|
||||
esac;
|
||||
|
||||
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
|
||||
$(top_srcdir)/configure: $(am__configure_deps)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
$(ACLOCAL_M4): $(am__aclocal_m4_deps)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
uninstall-info-am:
|
||||
tags: TAGS
|
||||
TAGS:
|
||||
|
||||
ctags: CTAGS
|
||||
CTAGS:
|
||||
|
||||
|
||||
distdir: $(DISTFILES)
|
||||
@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
|
||||
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
|
||||
list='$(DISTFILES)'; for file in $$list; do \
|
||||
case $$file in \
|
||||
$(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
|
||||
$(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
|
||||
esac; \
|
||||
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
|
||||
dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
|
||||
if test "$$dir" != "$$file" && test "$$dir" != "."; then \
|
||||
dir="/$$dir"; \
|
||||
$(mkdir_p) "$(distdir)$$dir"; \
|
||||
else \
|
||||
dir=''; \
|
||||
fi; \
|
||||
if test -d $$d/$$file; then \
|
||||
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
|
||||
cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
|
||||
fi; \
|
||||
cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
|
||||
else \
|
||||
test -f $(distdir)/$$file \
|
||||
|| cp -p $$d/$$file $(distdir)/$$file \
|
||||
|| exit 1; \
|
||||
fi; \
|
||||
done
|
||||
check-am: all-am
|
||||
check: check-am
|
||||
all-am: Makefile
|
||||
installdirs:
|
||||
install: install-am
|
||||
install-exec: install-exec-am
|
||||
install-data: install-data-am
|
||||
uninstall: uninstall-am
|
||||
|
||||
install-am: all-am
|
||||
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
|
||||
|
||||
installcheck: installcheck-am
|
||||
install-strip:
|
||||
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
|
||||
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
|
||||
`test -z '$(STRIP)' || \
|
||||
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
|
||||
mostlyclean-generic:
|
||||
|
||||
clean-generic:
|
||||
|
||||
distclean-generic:
|
||||
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
|
||||
|
||||
maintainer-clean-generic:
|
||||
@echo "This command is intended for maintainers to use"
|
||||
@echo "it deletes files that may require special tools to rebuild."
|
||||
clean: clean-am
|
||||
|
||||
clean-am: clean-generic mostlyclean-am
|
||||
|
||||
distclean: distclean-am
|
||||
-rm -f Makefile
|
||||
distclean-am: clean-am distclean-generic
|
||||
|
||||
dvi: dvi-am
|
||||
|
||||
dvi-am:
|
||||
|
||||
html: html-am
|
||||
|
||||
info: info-am
|
||||
|
||||
info-am:
|
||||
|
||||
install-data-am: install-data-local
|
||||
|
||||
install-exec-am:
|
||||
|
||||
install-info: install-info-am
|
||||
|
||||
install-man:
|
||||
|
||||
installcheck-am:
|
||||
|
||||
maintainer-clean: maintainer-clean-am
|
||||
-rm -f Makefile
|
||||
maintainer-clean-am: distclean-am maintainer-clean-generic
|
||||
|
||||
mostlyclean: mostlyclean-am
|
||||
|
||||
mostlyclean-am: mostlyclean-generic
|
||||
|
||||
pdf: pdf-am
|
||||
|
||||
pdf-am:
|
||||
|
||||
ps: ps-am
|
||||
|
||||
ps-am:
|
||||
|
||||
uninstall-am: uninstall-info-am
|
||||
|
||||
.PHONY: all all-am check check-am clean clean-generic distclean \
|
||||
distclean-generic distdir dvi dvi-am html html-am info info-am \
|
||||
install install-am install-data install-data-am \
|
||||
install-data-local install-exec install-exec-am install-info \
|
||||
install-info-am install-man install-strip installcheck \
|
||||
installcheck-am installdirs maintainer-clean \
|
||||
maintainer-clean-generic mostlyclean mostlyclean-generic pdf \
|
||||
pdf-am ps ps-am uninstall uninstall-am uninstall-info-am
|
||||
|
||||
|
||||
install-data-local:
|
||||
$(mkinstalldirs) $(DESTDIR)$(inst_dir)/levels
|
||||
@for file in $(EXTRA_DIST); do \
|
||||
$(INSTALL_DATA) $$file $(DESTDIR)$(inst_dir)/levels/$$file; \
|
||||
done
|
||||
|
||||
win32-install-script:
|
||||
@for file in $(EXTRA_DIST); do \
|
||||
echo "Source: \"`pwd -W`\\$$file\"; DestDir: \"{app}\\levels\"; CopyMode: alwaysoverwrite" >> @win32_inst_script@; \
|
||||
done
|
||||
# Tell versions [3.59,3.63) of GNU make to not export all variables.
|
||||
# Otherwise a system limit (for SysV at least) may be exceeded.
|
||||
.NOEXPORT:
|
||||
247
project/jni/application/lbreakout2-2.6.2/server/levels/N_Arenas
Normal file
247
project/jni/application/lbreakout2-2.6.2/server/levels/N_Arenas
Normal file
@@ -0,0 +1,247 @@
|
||||
Version: 1.00
|
||||
Level:
|
||||
Michael Speck
|
||||
Duell-1
|
||||
Bricks:
|
||||
..............
|
||||
..............
|
||||
..............
|
||||
..............
|
||||
..............
|
||||
..............
|
||||
..............
|
||||
..............
|
||||
..............
|
||||
..............
|
||||
..............
|
||||
..............
|
||||
..............
|
||||
..............
|
||||
..............
|
||||
..............
|
||||
..............
|
||||
..............
|
||||
Bonus:
|
||||
..............
|
||||
..............
|
||||
..............
|
||||
..............
|
||||
..............
|
||||
..............
|
||||
..............
|
||||
..............
|
||||
..............
|
||||
..............
|
||||
..............
|
||||
..............
|
||||
..............
|
||||
..............
|
||||
..............
|
||||
..............
|
||||
..............
|
||||
..............
|
||||
Level:
|
||||
Michael Speck
|
||||
Duell-2
|
||||
Bricks:
|
||||
..............
|
||||
..............
|
||||
..............
|
||||
..............
|
||||
..#..#..#..#..
|
||||
..#..#..#..#..
|
||||
..#..#..#..#..
|
||||
..@..@..@..@..
|
||||
..@..@..@..@..
|
||||
..@..@..@..@..
|
||||
..@..@..@..@..
|
||||
..#..#..#..#..
|
||||
..#..#..#..#..
|
||||
..#..#..#..#..
|
||||
..............
|
||||
..............
|
||||
..............
|
||||
..............
|
||||
Bonus:
|
||||
..............
|
||||
..............
|
||||
..............
|
||||
..............
|
||||
..............
|
||||
..............
|
||||
..............
|
||||
..............
|
||||
..............
|
||||
..............
|
||||
..............
|
||||
..............
|
||||
..............
|
||||
..............
|
||||
..............
|
||||
..............
|
||||
..............
|
||||
..............
|
||||
Level:
|
||||
Michael Speck
|
||||
Duell-1
|
||||
Bricks:
|
||||
..............
|
||||
..............
|
||||
..............
|
||||
..............
|
||||
..............
|
||||
..............
|
||||
..............
|
||||
..............
|
||||
..............
|
||||
..............
|
||||
..............
|
||||
..............
|
||||
..............
|
||||
..............
|
||||
..............
|
||||
..............
|
||||
..............
|
||||
..............
|
||||
Bonus:
|
||||
..............
|
||||
..............
|
||||
..............
|
||||
..............
|
||||
..............
|
||||
..............
|
||||
..............
|
||||
..............
|
||||
..............
|
||||
..............
|
||||
..............
|
||||
..............
|
||||
..............
|
||||
..............
|
||||
..............
|
||||
..............
|
||||
..............
|
||||
..............
|
||||
Level:
|
||||
Michael Speck
|
||||
Duell-3
|
||||
Bricks:
|
||||
..............
|
||||
..............
|
||||
..............
|
||||
..............
|
||||
..............
|
||||
..#..#..#..#..
|
||||
..............
|
||||
#...@....@...#
|
||||
..............
|
||||
..............
|
||||
#...@....@...#
|
||||
..............
|
||||
..#..#..#..#..
|
||||
..............
|
||||
..............
|
||||
..............
|
||||
..............
|
||||
..............
|
||||
Bonus:
|
||||
..............
|
||||
..............
|
||||
..............
|
||||
..............
|
||||
..............
|
||||
..............
|
||||
..............
|
||||
..............
|
||||
..............
|
||||
..............
|
||||
..............
|
||||
..............
|
||||
..............
|
||||
..............
|
||||
..............
|
||||
..............
|
||||
..............
|
||||
..............
|
||||
Level:
|
||||
Michael Speck
|
||||
Duell-1
|
||||
Bricks:
|
||||
..............
|
||||
..............
|
||||
..............
|
||||
..............
|
||||
..............
|
||||
..............
|
||||
..............
|
||||
..............
|
||||
..............
|
||||
..............
|
||||
..............
|
||||
..............
|
||||
..............
|
||||
..............
|
||||
..............
|
||||
..............
|
||||
..............
|
||||
..............
|
||||
Bonus:
|
||||
..............
|
||||
..............
|
||||
..............
|
||||
..............
|
||||
..............
|
||||
..............
|
||||
..............
|
||||
..............
|
||||
..............
|
||||
..............
|
||||
..............
|
||||
..............
|
||||
..............
|
||||
..............
|
||||
..............
|
||||
..............
|
||||
..............
|
||||
..............
|
||||
Level:
|
||||
Michael Speck
|
||||
Duell-4
|
||||
Bricks:
|
||||
..............
|
||||
..............
|
||||
.#...#..#...#.
|
||||
..............
|
||||
@............@
|
||||
@............@
|
||||
@............@
|
||||
@............@
|
||||
@............@
|
||||
@............@
|
||||
@............@
|
||||
@............@
|
||||
@............@
|
||||
@............@
|
||||
..............
|
||||
.#...#..#...#.
|
||||
..............
|
||||
..............
|
||||
Bonus:
|
||||
..............
|
||||
..............
|
||||
..............
|
||||
..............
|
||||
..............
|
||||
..............
|
||||
..............
|
||||
..............
|
||||
..............
|
||||
..............
|
||||
..............
|
||||
..............
|
||||
..............
|
||||
..............
|
||||
..............
|
||||
..............
|
||||
..............
|
||||
..............
|
||||
@@ -0,0 +1,411 @@
|
||||
Version: 1.00
|
||||
Level:
|
||||
Michael Speck
|
||||
Chinese
|
||||
Bricks:
|
||||
..............
|
||||
..............
|
||||
..............
|
||||
ffffffffffffff
|
||||
ffffffffffffff
|
||||
gggggggggggggg
|
||||
gggggggggggggg
|
||||
jbbbbbbbbbbbbj
|
||||
jbjjjjjjjjjjbj
|
||||
jbjjjjjjjjjjbj
|
||||
jbbbbbbbbbbbbj
|
||||
dddddddddddddd
|
||||
dddddddddddddd
|
||||
eeeeeeeeeeeeee
|
||||
eeeeeeeeeeeeee
|
||||
..............
|
||||
..............
|
||||
..............
|
||||
Bonus:
|
||||
..............
|
||||
..............
|
||||
..............
|
||||
?......-.....?
|
||||
....+.....>...
|
||||
..p.....b.....
|
||||
.....~.....+..
|
||||
...s....j.b.w.
|
||||
.*1323232323..
|
||||
..3232323231*.
|
||||
.w...j....s...
|
||||
.......~...+..
|
||||
....b.....p...
|
||||
..b...+.>.....
|
||||
?...-........?
|
||||
..............
|
||||
..............
|
||||
..............
|
||||
Level:
|
||||
Michael Speck
|
||||
Spearhead
|
||||
Bricks:
|
||||
..............
|
||||
..............
|
||||
..............
|
||||
jjjj..........
|
||||
kkkkkk........
|
||||
aaaaaaaa......
|
||||
kkkkkkkkkk....
|
||||
jjjjjjjjjjjj..
|
||||
#####....zzzzz
|
||||
#####....zzzzz
|
||||
kkkkkkkkkkkk..
|
||||
jjjjjjjjjj....
|
||||
aaaaaaaa......
|
||||
jjjjjj........
|
||||
kkkk..........
|
||||
..............
|
||||
..............
|
||||
..............
|
||||
Bonus:
|
||||
..............
|
||||
..............
|
||||
..............
|
||||
.2.-..........
|
||||
.+............
|
||||
2.w2b..+......
|
||||
.-....2..~....
|
||||
.p.*.}..s..c..
|
||||
.........44444
|
||||
.........44444
|
||||
p..*...}s.~...
|
||||
.2...2-..+....
|
||||
..b2w..d......
|
||||
.-.+..........
|
||||
2.............
|
||||
..............
|
||||
..............
|
||||
..............
|
||||
Level:
|
||||
Michael Speck
|
||||
Fortress
|
||||
Bricks:
|
||||
..............
|
||||
..............
|
||||
..............
|
||||
..............
|
||||
..............
|
||||
..E##zzzz##E..
|
||||
.kE@..gg..@Ek.
|
||||
kkE.iiiiii.Ekk
|
||||
kkEgiggggigEkk
|
||||
kkEgiggggigEkk
|
||||
kkE.iiiiii.Ekk
|
||||
.kE@..gg..@Ek.
|
||||
..E##zzzz##E..
|
||||
..............
|
||||
..............
|
||||
..............
|
||||
..............
|
||||
..............
|
||||
Bonus:
|
||||
..............
|
||||
..............
|
||||
..............
|
||||
..............
|
||||
..............
|
||||
.....f>.f.....
|
||||
.p..........p.
|
||||
?...3....3...+
|
||||
.b...34.3.....
|
||||
.....3.43...b.
|
||||
+...3....3...?
|
||||
.p..........p.
|
||||
.....f.>f.....
|
||||
..............
|
||||
..............
|
||||
..............
|
||||
..............
|
||||
..............
|
||||
Level:
|
||||
Michael Speck
|
||||
Soccer Worldcup
|
||||
Bricks:
|
||||
..............
|
||||
..............
|
||||
ffffffffffffff
|
||||
ffffffffffffff
|
||||
ffffffffffffff
|
||||
jjjffffffffjjj
|
||||
ffjffffffffjff
|
||||
ffjfffjjfffjff
|
||||
jfjffjffjffjfj
|
||||
jfjffjffjffjfj
|
||||
ffjfffjjfffjff
|
||||
ffjffffffffjff
|
||||
jjjffffffffjjj
|
||||
ffffffffffffff
|
||||
ffffffffffffff
|
||||
ffffffffffffff
|
||||
..............
|
||||
..............
|
||||
Bonus:
|
||||
..............
|
||||
..............
|
||||
>...+.bb.+...>
|
||||
..b..-..-..b..
|
||||
..............
|
||||
11>........>11
|
||||
.f1..b..b..1..
|
||||
..1...33...1..
|
||||
?.1..3553..1.?
|
||||
?.1..3553..1.?
|
||||
..1...33...1..
|
||||
..1..b..b..1f.
|
||||
11>........>11
|
||||
..............
|
||||
..b..-..-..b..
|
||||
>...+.bb.+...>
|
||||
..............
|
||||
..............
|
||||
Level:
|
||||
Michael Speck
|
||||
Construction Time
|
||||
Bricks:
|
||||
..............
|
||||
..............
|
||||
..............
|
||||
..!..!kk!..!..
|
||||
.....*kk*.....
|
||||
.gggggggggggg.
|
||||
.ffhhhhhhhhff.
|
||||
.*fh*dddd*hf*.
|
||||
.@!h@!ee!@h!@.
|
||||
.@!h@!ee!@h!@.
|
||||
.*fh*dddd*hf*.
|
||||
.ffhhhhhhhhff.
|
||||
.gggggggggggg.
|
||||
.....*kk*.....
|
||||
..!..!kk!..!..
|
||||
..............
|
||||
..............
|
||||
..............
|
||||
Bonus:
|
||||
..............
|
||||
..............
|
||||
..b..c..+..0+.
|
||||
.0.0...3.3....
|
||||
..s........0..
|
||||
..............
|
||||
..............
|
||||
.....4..4.>...
|
||||
..w..b.m...p..
|
||||
..p...g.b..w..
|
||||
.....4..4.....
|
||||
..............
|
||||
..............
|
||||
..0>.......s..
|
||||
....3.3...0.0.
|
||||
.+0..+..b..c..
|
||||
..............
|
||||
..............
|
||||
Level:
|
||||
Michael Speck
|
||||
Four Seasons
|
||||
Bricks:
|
||||
..............
|
||||
..............
|
||||
hhhh......eeee
|
||||
hhhh......eeee
|
||||
hhhh......eeee
|
||||
hhhh......eeee
|
||||
hhhh......eeee
|
||||
hhhh......eeee
|
||||
..............
|
||||
..............
|
||||
ffff......jjjj
|
||||
ffff......jjjj
|
||||
ffff......jjjj
|
||||
ffff......jjjj
|
||||
ffff......jjjj
|
||||
ffff......jjjj
|
||||
..............
|
||||
..............
|
||||
Bonus:
|
||||
..............
|
||||
..............
|
||||
+..b.......2.4
|
||||
3.s.......4{..
|
||||
.3.2......f.*.
|
||||
?.-........b.?
|
||||
...}......c.3.
|
||||
.p........2pjb
|
||||
..............
|
||||
..............
|
||||
bjp2........p.
|
||||
.3.d......}...
|
||||
?.b........-.?
|
||||
.*.f......2.3.
|
||||
..{4.......s.3
|
||||
4.2.......b..+
|
||||
..............
|
||||
..............
|
||||
Level:
|
||||
Michael Speck
|
||||
Hidden Obstacles
|
||||
Bricks:
|
||||
..............
|
||||
..............
|
||||
..............
|
||||
..............
|
||||
.v#eeeeeeee#v.
|
||||
..e#......#e..
|
||||
..eg#vvvv#ge..
|
||||
..egf....fge..
|
||||
..egf.dd.fge..
|
||||
..egf.dd.fge..
|
||||
..egf....fge..
|
||||
..eg#vvvv#ge..
|
||||
..e#......#e..
|
||||
.v#eeeeeeee#v.
|
||||
..............
|
||||
..............
|
||||
..............
|
||||
..............
|
||||
Bonus:
|
||||
..............
|
||||
..............
|
||||
..............
|
||||
..............
|
||||
...00000000...
|
||||
..............
|
||||
.....4444.....
|
||||
..+?......?b..
|
||||
...?b.pp.-?...
|
||||
...?-.pp.b?...
|
||||
..b?......?+..
|
||||
.....4444.....
|
||||
..............
|
||||
...00000000...
|
||||
..............
|
||||
..............
|
||||
..............
|
||||
..............
|
||||
Level:
|
||||
Michael Speck
|
||||
Oh, Deer!
|
||||
Bricks:
|
||||
..............
|
||||
..............
|
||||
.d..e....e..d.
|
||||
.e..d....d..e.
|
||||
.#..#....#..#.
|
||||
.a..i....i..a.
|
||||
.g..a....a..g.
|
||||
.a..i....i..a.
|
||||
.g..a....a..g.
|
||||
.a..i....i..a.
|
||||
.g..a....a..g.
|
||||
.a..i....i..a.
|
||||
.g..a....a..g.
|
||||
.#..#....#..#.
|
||||
.h..d....d..h.
|
||||
.d..h....h..d.
|
||||
..............
|
||||
..............
|
||||
Bonus:
|
||||
..............
|
||||
..............
|
||||
.p..p....p..p.
|
||||
.p..p....p..p.
|
||||
..............
|
||||
....5....5....
|
||||
.4..........4.
|
||||
....5....5....
|
||||
.4..b....b..j.
|
||||
....5....5....
|
||||
.j..b....b..4.
|
||||
....5....5....
|
||||
.4..........4.
|
||||
..............
|
||||
.p..p....p..p.
|
||||
.p..p....p..p.
|
||||
..............
|
||||
..............
|
||||
Level:
|
||||
Michael Speck
|
||||
Pipes
|
||||
Bricks:
|
||||
..............
|
||||
..............
|
||||
.j..!..!..###.
|
||||
.j..#dd#..#gg.
|
||||
.jj.#dd#..#g..
|
||||
.jj.####......
|
||||
.##...........
|
||||
.f#*.###.*.##.
|
||||
.f#!.!.!.!.#e.
|
||||
.f#.!.!.!.!#e.
|
||||
.##.*.###.*#e.
|
||||
...........##.
|
||||
......####.jj.
|
||||
..g#..#hh#.jj.
|
||||
.gg#..#hh#..j.
|
||||
.###..!..!..j.
|
||||
..............
|
||||
..............
|
||||
Bonus:
|
||||
..............
|
||||
..............
|
||||
.f............
|
||||
.3....b....*>.
|
||||
..f..+.....d..
|
||||
..3...........
|
||||
..............
|
||||
.3............
|
||||
.5..?2?2?2?.3.
|
||||
.3.?2?2?2?..5.
|
||||
............3.
|
||||
..............
|
||||
...........3..
|
||||
..c.....+..f..
|
||||
.>*....b....3.
|
||||
............f.
|
||||
..............
|
||||
..............
|
||||
Level:
|
||||
Michael Speck
|
||||
Collect Your Reward!
|
||||
Bricks:
|
||||
..............
|
||||
..............
|
||||
.x..........x.
|
||||
..............
|
||||
...z.z..z.z...
|
||||
..............
|
||||
.x..........x.
|
||||
...z.z..z.z...
|
||||
..............
|
||||
..............
|
||||
...z.z..z.z...
|
||||
.x..........x.
|
||||
..............
|
||||
...z.z..z.z...
|
||||
..............
|
||||
.x..........x.
|
||||
..............
|
||||
..............
|
||||
Bonus:
|
||||
..............
|
||||
..............
|
||||
.b..........b.
|
||||
..............
|
||||
...5.5..5.5...
|
||||
..............
|
||||
.b..........b.
|
||||
...5.5..5.5...
|
||||
..............
|
||||
..............
|
||||
...5.5..5.5...
|
||||
.b..........b.
|
||||
..............
|
||||
...5.5..5.5...
|
||||
..............
|
||||
.b..........b.
|
||||
..............
|
||||
..............
|
||||
1193
project/jni/application/lbreakout2-2.6.2/server/server.c
Normal file
1193
project/jni/application/lbreakout2-2.6.2/server/server.c
Normal file
File diff suppressed because it is too large
Load Diff
121
project/jni/application/lbreakout2-2.6.2/server/server.h
Normal file
121
project/jni/application/lbreakout2-2.6.2/server/server.h
Normal file
@@ -0,0 +1,121 @@
|
||||
/***************************************************************************
|
||||
server.h - description
|
||||
-------------------
|
||||
begin : 03/03/19
|
||||
copyright : (C) 2003 by Michael Speck
|
||||
email : kulkanie@gmx.net
|
||||
***************************************************************************/
|
||||
|
||||
/***************************************************************************
|
||||
* *
|
||||
* This program is free software; you can redistribute it and/or modify *
|
||||
* it under the terms of the GNU General Public License as published by *
|
||||
* the Free Software Foundation; either version 2 of the License, or *
|
||||
* (at your option) any later version. *
|
||||
* *
|
||||
***************************************************************************/
|
||||
|
||||
#ifndef __SERVER_H
|
||||
#define __SERVER_H
|
||||
|
||||
/***** INCLUDES ************************************************************/
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
#include "../config.h"
|
||||
#endif
|
||||
#include <SDL.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <stdio.h>
|
||||
#include <signal.h>
|
||||
#include <time.h>
|
||||
#include "../common/tools.h"
|
||||
#include "../common/net.h"
|
||||
#include "../common/messages.h"
|
||||
#include "../common/list.h"
|
||||
#include "../common/parser.h"
|
||||
#include "../game/game.h"
|
||||
|
||||
/* i18n */
|
||||
#include "../common/gettext.h"
|
||||
#if ENABLE_NLS
|
||||
#define _(str) gettext (str)
|
||||
#else
|
||||
#define _(str) (str)
|
||||
#endif
|
||||
|
||||
/***** TYPE DEFINITIONS ****************************************************/
|
||||
|
||||
typedef struct {
|
||||
int id; /* global user id */
|
||||
char name[20];
|
||||
int no_comm; /* user does not communicate: bots and disconnected
|
||||
users have this set True */
|
||||
int bot; /* if True this is a paddle bot */
|
||||
int bot_level; /* paddle speed in pix/sec */
|
||||
NetSocket socket; /* transmission socket */
|
||||
int hidden; /* True if chatroom user is not visible
|
||||
(e.g. looking at game statistics or playing) */
|
||||
int admin; /* wether user logged in with admit rights */
|
||||
void *game; /* FIXME: I'M A BAD HACK: points to the current ServerGame
|
||||
if this user is playing */
|
||||
int player_id; /* 0 - challenger in game or 1 - challenged */
|
||||
} ServerUser;
|
||||
|
||||
typedef struct {
|
||||
char name[20];
|
||||
int id;
|
||||
List *users;
|
||||
} ServerChannel;
|
||||
|
||||
enum {
|
||||
SERVER_AWAIT_ACCEPT, /* the first user has created the game and is already
|
||||
added. a challenge note is sent to the challenged
|
||||
user. in this state the server awaits either a
|
||||
ACCEPTED or REFUSED message by the remote
|
||||
or a CANCEL, DISCONNECT by the challenger */
|
||||
SERVER_AWAIT_READY, /* await ready message from both users, then play */
|
||||
SERVER_PLAY, /* now the game is actually running: valid messages are
|
||||
paddle updates, pause requests, chat messages and exits */
|
||||
SERVER_PAUSE /* game is paused and players may exchange chat messages
|
||||
until one sends an UNPAUSE */
|
||||
}; /* states of a server game */
|
||||
|
||||
typedef struct {
|
||||
ServerUser *challenger;
|
||||
ServerUser *challenged; /* the two users that will play */
|
||||
|
||||
char name[20]; /* name of the levelset */
|
||||
int diff; /* difficulty level */
|
||||
int rounds; /* per level */
|
||||
int frags; /* DM: frags required to win */
|
||||
int balls; /* DM: number of balls a paddle may fire */
|
||||
} ServerGameCtx;
|
||||
|
||||
typedef struct {
|
||||
int id; /* users join a game by sending its id */
|
||||
int state; /* current state as above */
|
||||
ServerUser *users[2]; /* pointers to chat channel:
|
||||
0 - challenger
|
||||
1 - challenged */
|
||||
ServerChannel *channel; /* the channel the users are in */
|
||||
|
||||
LevelSet *set; /* pointer to the current set */
|
||||
int rounds_per_level;
|
||||
int rounds; /* level count * rounds per level */
|
||||
int cur_round; /* id of current round. level id
|
||||
is cur_round / rounds */
|
||||
int cur_level; /* id of current level */
|
||||
|
||||
int ready[2]; /* wether user has sent READY */
|
||||
Game *game; /* the actual game data used by server */
|
||||
GameStats stats[2]; /* game stats:
|
||||
0 - challenger
|
||||
1 - challenged */
|
||||
int game_over; /* True after last round was finalized
|
||||
and stats have been send. */
|
||||
} ServerGame;
|
||||
|
||||
/***** PUBLIC FUNCTIONS ****************************************************/
|
||||
|
||||
#endif
|
||||
616
project/jni/application/lbreakout2-2.6.2/server/server_game.c
Normal file
616
project/jni/application/lbreakout2-2.6.2/server/server_game.c
Normal file
@@ -0,0 +1,616 @@
|
||||
/***************************************************************************
|
||||
server_game.c - description
|
||||
-------------------
|
||||
begin : 03/03/19
|
||||
copyright : (C) 2003 by Michael Speck
|
||||
email : kulkanie@gmx.net
|
||||
***************************************************************************/
|
||||
|
||||
/***************************************************************************
|
||||
* *
|
||||
* This program is free software; you can redistribute it and/or modify *
|
||||
* it under the terms of the GNU General Public License as published by *
|
||||
* the Free Software Foundation; either version 2 of the License, or *
|
||||
* (at your option) any later version. *
|
||||
* *
|
||||
***************************************************************************/
|
||||
|
||||
/***** INCLUDES ************************************************************/
|
||||
|
||||
#include "server.h"
|
||||
|
||||
/***** EXTERNAL VARIABLES **************************************************/
|
||||
|
||||
extern List *games;
|
||||
extern int global_id;
|
||||
extern char errbuf[128]; /* used to compile error messages */
|
||||
extern char msgbuf[MAX_MSG_SIZE]; /* used to compile messages */
|
||||
extern int msglen;
|
||||
extern List *levelsets;
|
||||
extern char net_buffer[MAX_MSG_SIZE + PACKET_HEADER_SIZE];
|
||||
extern int server_frame_delay;
|
||||
extern int msg_read_pos, net_buffer_cur_size;
|
||||
|
||||
extern void send_info( ServerUser *user, int type, char *format, ... );
|
||||
extern void channel_hide_user( ServerChannel *channel, ServerUser *user, int hide );
|
||||
extern void channel_remove_user( ServerChannel *channel, ServerUser *user );
|
||||
extern void send_full_update( ServerUser *user, ServerChannel *channel );
|
||||
|
||||
/***** EXPORTS *************************************************************/
|
||||
|
||||
/***** FORWARDED DECLARATIONS **********************************************/
|
||||
|
||||
/***** LOCAL TYPE DEFINITIONS **********************************************/
|
||||
|
||||
/***** LOCAL VARIABLES *****************************************************/
|
||||
|
||||
/***** LOCAL FUNCTIONS *****************************************************/
|
||||
|
||||
#ifdef NETWORK_ENABLED
|
||||
|
||||
/* update the position of top paddle */
|
||||
static void update_bot_paddle( Game *game, int ms )
|
||||
{
|
||||
int src_x, dest_x, dir;
|
||||
Ball *ball, *min_ball = 0;
|
||||
Extra *extra, *min_extra = 0;
|
||||
Paddle *paddle = game->paddles[PADDLE_TOP];
|
||||
int move = 0;
|
||||
static int entropy = 0;
|
||||
float change;
|
||||
|
||||
/* always fire */
|
||||
paddle->fire_left = 1;
|
||||
|
||||
/* get nearest ball */
|
||||
list_reset( game->balls );
|
||||
while ( ( ball = list_next( game->balls ) ) ) {
|
||||
if ( ball->attached ) continue;
|
||||
if ( min_ball == 0 || ball->y < min_ball->y )
|
||||
min_ball = ball;
|
||||
}
|
||||
/* get nearest extra */
|
||||
list_reset( game->extras );
|
||||
while ( ( extra = list_next( game->extras ) ) ) {
|
||||
if ( extra->dir != -1 ) continue;
|
||||
if ( min_extra == 0 || extra->y < min_extra->y )
|
||||
min_extra = extra;
|
||||
}
|
||||
|
||||
src_x = paddle->x + paddle->w/2;
|
||||
dest_x = paddle->x + paddle->w/2;
|
||||
if ( min_ball || min_extra ) {
|
||||
if ( min_ball && ( min_extra == 0 || min_ball->y < min_extra->y ) ) {
|
||||
dest_x = min_ball->x + 6;
|
||||
move = 1;
|
||||
}
|
||||
else
|
||||
if ( min_extra && ( min_ball == 0 || min_extra->y < min_ball->y ) ) {
|
||||
dest_x = min_extra->x + 20;
|
||||
move = 1;
|
||||
}
|
||||
}
|
||||
dir = (dest_x<src_x)?-1:(dest_x>src_x)?1:0;
|
||||
|
||||
entropy = (rand() % 17)-8;
|
||||
if ( move && dir != 0 ) {
|
||||
change = paddle->bot_vx * ms;
|
||||
/* due to high 'ms' the change might be so much that
|
||||
* the paddle would start to jump epileptically, so
|
||||
* set position to 'dest' then */
|
||||
if ( dir < 0 && src_x-change<dest_x+entropy )
|
||||
paddle->cur_x = dest_x+entropy - paddle->w/2;
|
||||
else
|
||||
if ( dir > 0 && src_x+change>dest_x-entropy )
|
||||
paddle->cur_x = dest_x-entropy - paddle->w/2;
|
||||
else
|
||||
paddle->cur_x += change * dir;
|
||||
if ( paddle->cur_x < BRICK_WIDTH )
|
||||
paddle->cur_x = BRICK_WIDTH;
|
||||
if ( paddle->cur_x + paddle->w >= 640 - BRICK_WIDTH )
|
||||
paddle->cur_x = 640 - BRICK_WIDTH - paddle->w;
|
||||
paddle->x = (int)paddle->cur_x;
|
||||
}
|
||||
}
|
||||
|
||||
static LevelSet *find_levelset( char *name )
|
||||
{
|
||||
LevelSet *set;
|
||||
|
||||
list_reset( levelsets );
|
||||
while ( (set = list_next( levelsets ) ) )
|
||||
if ( !strcmp( set->name, name ) )
|
||||
return set;
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void send_level( Level *level, ServerUser *user, int l_pos )
|
||||
{
|
||||
if ( user->bot ) return;
|
||||
|
||||
msgbuf[0] = MSG_LEVEL_DATA;
|
||||
msgbuf[1] = l_pos;
|
||||
msglen = 2;
|
||||
comm_pack_level( level, msgbuf, &msglen );
|
||||
socket_transmit( &user->socket, CODE_BLUE, msglen, msgbuf );
|
||||
}
|
||||
|
||||
static void init_next_round( ServerGame *game )
|
||||
{
|
||||
game->cur_round++;
|
||||
game->cur_level = game->cur_round / game->rounds_per_level;
|
||||
game_init( game->game, game->set->levels[game->cur_level] );
|
||||
|
||||
/* send level and wait for ready */
|
||||
game->state = SERVER_AWAIT_READY;
|
||||
game->ready[0] = game->ready[1] = 0;
|
||||
send_level( game->set->levels[game->cur_level],
|
||||
game->users[0], PADDLE_BOTTOM );
|
||||
if ( !game->users[1]->bot )
|
||||
send_level( game->set->levels[game->cur_level],
|
||||
game->users[1], PADDLE_TOP );
|
||||
else
|
||||
game->ready[1] = 1; /* bot is always the challenged one */
|
||||
|
||||
/* set up bot top paddle if any */
|
||||
if ( game->users[1]->bot )
|
||||
game->game->paddles[PADDLE_TOP]->bot_vx =
|
||||
0.001 * game->users[1]->bot_level;
|
||||
|
||||
}
|
||||
|
||||
static void finalize_round( ServerGame *game )
|
||||
{
|
||||
/* update stats */
|
||||
game_update_stats( 0, &game->stats[0] );
|
||||
game_update_stats( 1, &game->stats[1] );
|
||||
|
||||
/* finalize */
|
||||
game_finalize( game->game );
|
||||
|
||||
/* tell clients that round is over */
|
||||
if ( game->cur_round == game->rounds-1 )
|
||||
msgbuf[0] = MSG_LAST_ROUND_OVER;
|
||||
else
|
||||
msgbuf[0] = MSG_ROUND_OVER;
|
||||
msgbuf[1] = game->game->winner;
|
||||
msglen = 2;
|
||||
socket_transmit( &game->users[0]->socket, CODE_BLUE, msglen, msgbuf );
|
||||
if ( !game->users[1]->bot )
|
||||
socket_transmit( &game->users[1]->socket, CODE_BLUE, msglen, msgbuf );
|
||||
|
||||
/* if this was the last round set game_over */
|
||||
if ( game->cur_round == game->rounds-1 )
|
||||
game->game_over = 1;
|
||||
}
|
||||
|
||||
/* send game statistics were the first stats is the user it is send
|
||||
* to and the second is the opponents stats */
|
||||
static void send_stats( ServerUser *user, GameStats *stats1, GameStats *stats2 )
|
||||
{
|
||||
int count;
|
||||
int kept[2] = {0,0}, bricks[2] = {0,0}, extras[2] = {0,0};
|
||||
|
||||
if ( user->bot ) return;
|
||||
|
||||
count = stats1->balls_reflected + stats1->balls_lost;
|
||||
if ( count > 0 )
|
||||
kept[0] = 100 * stats1->balls_reflected / count;
|
||||
count = stats2->balls_reflected + stats2->balls_lost;
|
||||
if ( count > 0 )
|
||||
kept[1] = 100 * stats2->balls_reflected / count;
|
||||
if ( stats1->total_brick_count > 0 )
|
||||
bricks[0] = 100 * stats1->bricks_cleared / stats1->total_brick_count;
|
||||
if ( stats2->total_brick_count > 0 )
|
||||
bricks[1] = 100 * stats2->bricks_cleared / stats2->total_brick_count;
|
||||
if ( stats1->total_extra_count > 0 )
|
||||
extras[0] = 100 * stats1->extras_collected / stats1->total_extra_count;
|
||||
if ( stats2->total_extra_count > 0 )
|
||||
extras[1] = 100 * stats2->extras_collected / stats2->total_extra_count;
|
||||
|
||||
msg_begin_writing( msgbuf, &msglen, MAX_MSG_SIZE );
|
||||
msg_write_int8( MSG_GAME_STATS );
|
||||
msg_write_int8( stats1->wins );
|
||||
msg_write_int8( stats2->wins );
|
||||
msg_write_int8( stats1->losses );
|
||||
msg_write_int8( stats2->losses );
|
||||
msg_write_int8( stats1->draws );
|
||||
msg_write_int8( stats2->draws );
|
||||
msg_write_int32( stats1->total_score );
|
||||
msg_write_int32( stats2->total_score );
|
||||
msg_write_int8( kept[0] );
|
||||
msg_write_int8( kept[1] );
|
||||
msg_write_int8( bricks[0] );
|
||||
msg_write_int8( bricks[1] );
|
||||
msg_write_int8( extras[0] );
|
||||
msg_write_int8( extras[1] );
|
||||
|
||||
socket_transmit( &user->socket, CODE_BLUE, msglen, msgbuf );
|
||||
}
|
||||
|
||||
/***** PUBLIC FUNCTIONS ****************************************************/
|
||||
|
||||
/* Add a new game by the context information, hide both users
|
||||
* and send a challenge message to the challenged user. */
|
||||
void server_game_add( ServerChannel *channel, ServerGameCtx *ctx )
|
||||
{
|
||||
ServerGame *game = salloc( 1, sizeof( ServerGame ) );
|
||||
|
||||
/* copy game data */
|
||||
game->state = SERVER_AWAIT_ACCEPT;
|
||||
game->id = global_id++;
|
||||
game->channel = channel;
|
||||
game->set = find_levelset( ctx->name );
|
||||
if ( game->set == 0 ) {
|
||||
/* should never happen... */
|
||||
sprintf( errbuf, "game_create_failed: no levelset '%s' found\n", ctx->name );
|
||||
send_info( ctx->challenger, MSG_ERROR, errbuf );
|
||||
free( game );
|
||||
return;
|
||||
}
|
||||
game->rounds_per_level = ctx->rounds;
|
||||
game->rounds = game->set->count * game->rounds_per_level;
|
||||
game->cur_round = -1; /* init_next_round will increase this to 0 */
|
||||
/* create game module */
|
||||
if ( (game->game = game_create( GT_NETWORK, ctx->diff, 100/*no rel warp*/ )) == 0 ) {
|
||||
/* send error to user */
|
||||
strncpy(errbuf,"game_create failed: out of memory",128);
|
||||
send_info( ctx->challenger, MSG_ERROR, errbuf );
|
||||
free( game );
|
||||
return;
|
||||
}
|
||||
game_set_current( game->game );
|
||||
game_set_ball_ammo( ctx->balls );
|
||||
game_set_frag_limit( ctx->frags );
|
||||
game_set_convex_paddle( 1 );
|
||||
game_set_ball_random_angle( 1 );
|
||||
|
||||
/* set game for both users and set both users for game */
|
||||
ctx->challenger->game = game;
|
||||
ctx->challenged->game = game;
|
||||
ctx->challenger->player_id = 0;
|
||||
ctx->challenged->player_id = 1;
|
||||
game->users[0] = ctx->challenger;
|
||||
game->users[1] = ctx->challenged;
|
||||
|
||||
/* hide both users */
|
||||
channel_hide_user( channel, ctx->challenger, 1 );
|
||||
channel_hide_user( channel, ctx->challenged, 1 );
|
||||
|
||||
/* inform challenged user */
|
||||
if ( !ctx->challenged->bot ) {
|
||||
msg_begin_writing( msgbuf, &msglen, MAX_MSG_SIZE );
|
||||
msg_write_int8( MSG_CHALLENGE );
|
||||
msg_write_string( ctx->challenger->name );
|
||||
msg_write_string( ctx->name );
|
||||
msg_write_int8( ctx->diff );
|
||||
msg_write_int8( ctx->rounds );
|
||||
msg_write_int8( ctx->frags );
|
||||
msg_write_int8( ctx->balls );
|
||||
socket_transmit( &ctx->challenged->socket, CODE_BLUE, msglen, msgbuf );
|
||||
}
|
||||
else {
|
||||
/* instantly accept as bot */
|
||||
msgbuf[0] = MSG_ACCEPT_CHALLENGE;
|
||||
socket_transmit( &game->users[0]->socket,
|
||||
CODE_BLUE, 1, msgbuf );
|
||||
init_next_round( game );
|
||||
}
|
||||
|
||||
list_add( games, game );
|
||||
printf( _("game added: %s (%i): %i rounds: %s vs. %s\n"),
|
||||
game->set->name, game->id, game->rounds,
|
||||
game->users[0]->name, game->users[1]->name );
|
||||
}
|
||||
|
||||
/* Free game memory. */
|
||||
void server_game_delete( void *ptr )
|
||||
{
|
||||
ServerGame *game = (ServerGame*)ptr;
|
||||
|
||||
if ( game ) {
|
||||
printf( _("game deleted: %s (%i)\n"), game->set->name, game->id );
|
||||
|
||||
if ( game->game )
|
||||
game_delete( &game->game );
|
||||
free( game );
|
||||
}
|
||||
}
|
||||
|
||||
/* unhide the users to their chat channel and delete the game.
|
||||
* if game was beyond state AWAIT_ACCEPT the game stats are send
|
||||
*/
|
||||
void server_game_remove( ServerGame *game )
|
||||
{
|
||||
int i;
|
||||
|
||||
/* users are not unhidden if the actual game has already started
|
||||
* as they need time to read the error messages (if any) then */
|
||||
if ( game->state == SERVER_AWAIT_ACCEPT )
|
||||
for ( i = 0; i < 2; i++ ) {
|
||||
if ( game->users[i]->hidden )
|
||||
channel_hide_user( game->channel, game->users[i], 0 );
|
||||
}
|
||||
else {
|
||||
/* send stats */
|
||||
send_stats( game->users[0], &game->stats[0], &game->stats[1] );
|
||||
send_stats( game->users[1], &game->stats[1], &game->stats[0] );
|
||||
|
||||
/* and unhide bot if any */
|
||||
if ( game->users[1]->bot )
|
||||
channel_hide_user( game->channel, game->users[1], 0 );
|
||||
}
|
||||
|
||||
/* clear user game pointer */
|
||||
game->users[0]->game = 0;
|
||||
game->users[1]->game = 0;
|
||||
|
||||
/* free memory */
|
||||
list_delete_item( games, game );
|
||||
}
|
||||
|
||||
/* void parse_packet_game
|
||||
* IN ServerGame *game
|
||||
* IN ServerUser *user
|
||||
*
|
||||
* Check all messages in packet from user who is currently within
|
||||
* a game. The header has already been successfully processed and
|
||||
* the read pointer is at the beginning of the first message.
|
||||
*/
|
||||
void parse_packet_game( ServerGame *game, ServerUser *user )
|
||||
{
|
||||
ServerUser *peer;
|
||||
unsigned char type;
|
||||
int handled, i;
|
||||
|
||||
game_set_current( game->game );
|
||||
|
||||
while ( 1 ) {
|
||||
type = (unsigned)msg_read_int8(); handled = 0;
|
||||
msglen = 0; /* the extract functions require a position pointer */
|
||||
|
||||
if ( msg_read_failed() ) break; /* no more messages */
|
||||
|
||||
/* general messages */
|
||||
switch ( type ) {
|
||||
case MSG_HEARTBEAT:
|
||||
/* updates the socket information automatically
|
||||
* so connection is not closed */
|
||||
handled = 1;
|
||||
break;
|
||||
case MSG_DISCONNECT:
|
||||
/* update stats and finalize context if playing */
|
||||
if ( game->state != SERVER_AWAIT_ACCEPT ) {
|
||||
game->game->winner = -1; /* count unfinished level as draw */
|
||||
game_update_stats( 0, &game->stats[0] );
|
||||
game_update_stats( 1, &game->stats[1] );
|
||||
game_finalize( game->game );
|
||||
}
|
||||
|
||||
if ( user == game->users[0] )
|
||||
peer = game->users[1];
|
||||
else
|
||||
peer = game->users[0];
|
||||
send_info( peer, MSG_ERROR, _("Remote player has disconnected...") );
|
||||
|
||||
server_game_remove( game );
|
||||
printf( _("%s (%i) disconnected\n"), user->name, user->id );
|
||||
channel_remove_user( game->channel, user );
|
||||
handled = 1;
|
||||
break;
|
||||
case MSG_QUIT_GAME:
|
||||
if ( user == game->users[0] )
|
||||
peer = game->users[1];
|
||||
else
|
||||
peer = game->users[0];
|
||||
send_info( peer, MSG_ERROR, _("Remote player has left the game...") );
|
||||
|
||||
/* update stats and finalize context */
|
||||
game->game->winner = -1; /* count unfinished level as draw */
|
||||
game_update_stats( 0, &game->stats[0] );
|
||||
game_update_stats( 1, &game->stats[1] );
|
||||
game_finalize( game->game );
|
||||
|
||||
server_game_remove( game );
|
||||
handled = 1;
|
||||
break;
|
||||
case MSG_UNHIDE:
|
||||
/* it's very unlikely that the user sends this
|
||||
* message while being in the game context but to be sure
|
||||
* he may unhide here */
|
||||
if ( user->hidden )
|
||||
channel_hide_user( game->channel, user, 0 );
|
||||
handled = 1;
|
||||
break;
|
||||
}
|
||||
|
||||
/* challenge */
|
||||
if ( game->state == SERVER_AWAIT_ACCEPT )
|
||||
switch ( type ) {
|
||||
case MSG_ACCEPT_CHALLENGE:
|
||||
if ( user == game->users[1] ) {
|
||||
/* inform opponent */
|
||||
msgbuf[0] = MSG_ACCEPT_CHALLENGE;
|
||||
socket_transmit( &game->users[0]->socket,
|
||||
CODE_BLUE, 1, msgbuf );
|
||||
|
||||
init_next_round( game );
|
||||
handled = 1;
|
||||
}
|
||||
break;
|
||||
case MSG_REJECT_CHALLENGE:
|
||||
if ( user == game->users[1] ) {
|
||||
/* tell challenger that you refused the offer */
|
||||
msgbuf[0] = MSG_REJECT_CHALLENGE;
|
||||
socket_transmit( &game->users[0]->socket,
|
||||
CODE_BLUE, 1, msgbuf );
|
||||
|
||||
server_game_remove( game );
|
||||
handled = 1;
|
||||
}
|
||||
break;
|
||||
case MSG_CANCEL_GAME:
|
||||
if ( user == game->users[0] ) {
|
||||
/* tell challenged that you cancelled the offer */
|
||||
msgbuf[0] = MSG_CANCEL_GAME;
|
||||
socket_transmit( &game->users[1]->socket,
|
||||
CODE_BLUE, 1, msgbuf );
|
||||
|
||||
server_game_remove( game );
|
||||
handled = 1;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
/* preparation */
|
||||
if ( game->state == SERVER_AWAIT_READY )
|
||||
if ( type == MSG_READY ) {
|
||||
game->ready[user->player_id] = 1;
|
||||
if ( game->ready[0] && game->ready[1] )
|
||||
game->state = SERVER_PLAY;
|
||||
handled = 1;
|
||||
}
|
||||
|
||||
/* in-game messages */
|
||||
if ( game->state == SERVER_PLAY )
|
||||
switch ( type ) {
|
||||
case MSG_PADDLE_STATE:
|
||||
comm_unpack_paddle( game->game->paddles[user->player_id],
|
||||
net_buffer, &msg_read_pos );
|
||||
handled = 1;
|
||||
break;
|
||||
case MSG_PAUSE:
|
||||
game->state = SERVER_PAUSE;
|
||||
|
||||
msgbuf[0] = MSG_PAUSE; msglen = 1;
|
||||
if ( user == game->users[0] )
|
||||
peer = game->users[1];
|
||||
else
|
||||
peer = game->users[0];
|
||||
if ( !peer->bot )
|
||||
socket_transmit( &peer->socket, CODE_BLUE, msglen, msgbuf );
|
||||
handled = 1;
|
||||
break;
|
||||
}
|
||||
|
||||
/* pause messages */
|
||||
if ( game->state == SERVER_PAUSE )
|
||||
switch ( type ) {
|
||||
case MSG_UNPAUSE:
|
||||
game->state = SERVER_PLAY;
|
||||
for ( i = 0; i < game->game->paddle_count; i++ )
|
||||
game->game->paddles[i]->last_ball_contact = SDL_GetTicks();
|
||||
|
||||
msgbuf[0] = MSG_UNPAUSE; msglen = 1;
|
||||
if ( user == game->users[0] )
|
||||
peer = game->users[1];
|
||||
else
|
||||
peer = game->users[0];
|
||||
if ( !peer->bot )
|
||||
socket_transmit( &peer->socket, CODE_BLUE, msglen, msgbuf );
|
||||
handled = 1;
|
||||
break;
|
||||
case MSG_CHATTER:
|
||||
/* client has added <user> prefix so simply pass it
|
||||
* to the remote user */
|
||||
msg_begin_writing( msgbuf, &msglen, MAX_MSG_SIZE );
|
||||
msg_write_int8( MSG_CHATTER );
|
||||
msg_write_string( msg_read_string() );
|
||||
if ( !msg_write_failed() ) {
|
||||
if ( user == game->users[0] )
|
||||
peer = game->users[1];
|
||||
else
|
||||
peer = game->users[0];
|
||||
if ( !peer->bot )
|
||||
socket_transmit( &peer->socket,
|
||||
CODE_BLUE, msglen, msgbuf );
|
||||
}
|
||||
handled = 1;
|
||||
break;
|
||||
}
|
||||
|
||||
if ( !handled ) {
|
||||
printf( _("game %i: %s: state %i: invalid message %x: skipping %i bytes\n"),
|
||||
game->id, net_addr_to_string( &user->socket.remote_addr ),
|
||||
game->state, type, net_buffer_cur_size - msg_read_pos );
|
||||
msg_read_pos = net_buffer_cur_size;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
/* void update_games
|
||||
* IN int ms milliseconds passed since last call
|
||||
*
|
||||
* Update the objects of all games that are actually playing.
|
||||
*/
|
||||
void update_games( int ms )
|
||||
{
|
||||
int i;
|
||||
ServerGame *game;
|
||||
|
||||
list_reset( games );
|
||||
while ( (game = list_next( games ) ) ) {
|
||||
if ( game->state != SERVER_PLAY ) continue;
|
||||
|
||||
game_set_current( game->game );
|
||||
game_update( ms );
|
||||
|
||||
/* send updates to remote players */
|
||||
|
||||
if ( game->game->level_over ) {
|
||||
finalize_round( game );
|
||||
if ( game->game_over )
|
||||
server_game_remove( game );
|
||||
else
|
||||
init_next_round( game );
|
||||
continue;
|
||||
}
|
||||
|
||||
/* if playing against a bot update the top paddle */
|
||||
if ( game->users[1]->bot )
|
||||
update_bot_paddle( game->game, ms );
|
||||
|
||||
/* pack update */
|
||||
msglen = 0;
|
||||
|
||||
msgbuf[msglen++] = MSG_PADDLE_STATE;
|
||||
comm_pack_paddle( game->game->paddles[1], msgbuf, &msglen );
|
||||
|
||||
msgbuf[msglen++] = MSG_BALL_POSITIONS;
|
||||
comm_pack_balls( msgbuf, &msglen );
|
||||
|
||||
if ( game->game->shots->count > 0 ) {
|
||||
msgbuf[msglen++] = MSG_SHOT_POSITIONS;
|
||||
comm_pack_shots( msgbuf, &msglen );
|
||||
}
|
||||
|
||||
msgbuf[msglen++] = MSG_SCORES;
|
||||
comm_pack_scores( msgbuf, &msglen );
|
||||
|
||||
if ( game->game->mod.brick_hit_count > 0 ) {
|
||||
msgbuf[msglen++] = MSG_BRICK_HITS;
|
||||
comm_pack_brick_hits( msgbuf, &msglen );
|
||||
}
|
||||
|
||||
if ( game->game->mod.collected_extra_count[0] > 0 ||
|
||||
game->game->mod.collected_extra_count[1] > 0 ) {
|
||||
msgbuf[msglen++] = MSG_NEW_EXTRAS;
|
||||
comm_pack_collected_extras( msgbuf, &msglen );
|
||||
}
|
||||
|
||||
/* send packet */
|
||||
socket_transmit( &game->users[0]->socket, CODE_BLUE, msglen, msgbuf );
|
||||
|
||||
/* replace paddle which has a constant size */
|
||||
i = 1;
|
||||
comm_pack_paddle( game->game->paddles[0], msgbuf, &i );
|
||||
if ( !game->users[1]->bot )
|
||||
socket_transmit( &game->users[1]->socket, CODE_BLUE, msglen, msgbuf );
|
||||
|
||||
game_reset_mods();
|
||||
}
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
@@ -0,0 +1,57 @@
|
||||
/***************************************************************************
|
||||
server_game.h - description
|
||||
-------------------
|
||||
begin : 03/03/19
|
||||
copyright : (C) 2003 by Michael Speck
|
||||
email : kulkanie@gmx.net
|
||||
***************************************************************************/
|
||||
|
||||
/***************************************************************************
|
||||
* *
|
||||
* This program is free software; you can redistribute it and/or modify *
|
||||
* it under the terms of the GNU General Public License as published by *
|
||||
* the Free Software Foundation; either version 2 of the License, or *
|
||||
* (at your option) any later version. *
|
||||
* *
|
||||
***************************************************************************/
|
||||
|
||||
#ifndef __SERVER_GAME_H
|
||||
#define __SERVER_GAME_H
|
||||
|
||||
/***** INCLUDES ************************************************************/
|
||||
|
||||
/***** TYPE DEFINITIONS ****************************************************/
|
||||
|
||||
/***** PUBLIC FUNCTIONS ****************************************************/
|
||||
|
||||
/* Add a new game by the context information, hide both users
|
||||
* and send a challenge message to the challenged user. */
|
||||
void server_game_add( ServerChannel *channel, ServerGameCtx *ctx );
|
||||
|
||||
/* Free game memory. */
|
||||
void server_game_delete( void *ptr );
|
||||
|
||||
/* unhide the users to their chat channel and delete the game.
|
||||
* if game was beyond state AWAIT_ACCEPT the game stats are send
|
||||
*/
|
||||
void server_game_remove( ServerGame *game );
|
||||
|
||||
/* void parse_packet_game
|
||||
* IN ServerGame *game
|
||||
* IN ServerUser *user
|
||||
*
|
||||
* Check all messages in packet from user who is currently within
|
||||
* a game. The header has already been successfully processed and the
|
||||
* read pointer is at the beginning of the first message.
|
||||
*/
|
||||
void parse_packet_game( ServerGame *game, ServerUser *user );
|
||||
|
||||
/* void update_games
|
||||
* IN int ms milliseconds passed since last call
|
||||
*
|
||||
* Update the objects of all games that are actually playing.
|
||||
*/
|
||||
void update_games( int ms );
|
||||
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user