I downloaded the recent pbot 3.0 source code and made a few edits in the tremulous.h file (for damage and speed, nothing major). I then attempted to compile it and got an error. i know it has something to do with q3asm.exe. I'm using msys to compile. Here's the log:
$ make
/bin/sh.exe: svnversion: command not found
/bin/sh.exe: svnversion: command not found
make[1]: Entering directory `/home/<user>'
make -C src/tools/lcc install
make[2]: Entering directory `/home/<user>/src/tools/lcc'
gcc -O2 -Wall -fno-strict-aliasing -MMD -c -Ilburg -o build-mingw32-x86/lburg/lburg.o lburg/lburg.c
gcc -O2 -Wall -fno-strict-aliasing -MMD -c -Ilburg -o build-mingw32-x86/lburg/gram.o lburg/gram.c
gcc -o build-mingw32-x86/lburg/lburg.exe build-mingw32-x86/lburg/lburg.o build-mingw32-x86/lburg/gram.o
build-mingw32-x86/lburg/lburg.exe src/dagcheck.md build-mingw32-x86/rcc/dagcheck.c
gcc -O2 -Wall -fno-strict-aliasing -MMD -Wno-unused -c -Isrc -o build-mingw32-x86/rcc/dagcheck.o build-mingw32-x86/rcc/dagcheck.c
gcc -O2 -Wall -fno-strict-aliasing -MMD -c -Isrc -o build-mingw32-x86/rcc/decl.o src/decl.c
gcc -O2 -Wall -fno-strict-aliasing -MMD -c -Isrc -o build-mingw32-x86/rcc/enode.o src/enode.c
gcc -O2 -Wall -fno-strict-aliasing -MMD -c -Isrc -o build-mingw32-x86/rcc/error.o src/error.c
gcc -O2 -Wall -fno-strict-aliasing -MMD -c -Isrc -o build-mingw32-x86/rcc/event.o src/event.c
gcc -O2 -Wall -fno-strict-aliasing -MMD -c -Isrc -o build-mingw32-x86/rcc/expr.o src/expr.c
gcc -O2 -Wall -fno-strict-aliasing -MMD -c -Isrc -o build-mingw32-x86/rcc/gen.o src/gen.c
gcc -O2 -Wall -fno-strict-aliasing -MMD -c -Isrc -o build-mingw32-x86/rcc/init.o src/init.c
gcc -O2 -Wall -fno-strict-aliasing -MMD -c -Isrc -o build-mingw32-x86/rcc/inits.o src/inits.c
gcc -O2 -Wall -fno-strict-aliasing -MMD -c -Isrc -o build-mingw32-x86/rcc/input.o src/input.c
gcc -O2 -Wall -fno-strict-aliasing -MMD -c -Isrc -o build-mingw32-x86/rcc/lex.o src/lex.c
gcc -O2 -Wall -fno-strict-aliasing -MMD -c -Isrc -o build-mingw32-x86/rcc/list.o src/list.c
gcc -O2 -Wall -fno-strict-aliasing -MMD -c -Isrc -o build-mingw32-x86/rcc/main.o src/main.c
gcc -O2 -Wall -fno-strict-aliasing -MMD -c -Isrc -o build-mingw32-x86/rcc/null.o src/null.c
gcc -O2 -Wall -fno-strict-aliasing -MMD -c -Isrc -o build-mingw32-x86/rcc/output.o src/output.c
gcc -O2 -Wall -fno-strict-aliasing -MMD -c -Isrc -o build-mingw32-x86/rcc/prof.o src/prof.c
gcc -O2 -Wall -fno-strict-aliasing -MMD -c -Isrc -o build-mingw32-x86/rcc/profio.o src/profio.c
gcc -O2 -Wall -fno-strict-aliasing -MMD -c -Isrc -o build-mingw32-x86/rcc/simp.o src/simp.c
gcc -O2 -Wall -fno-strict-aliasing -MMD -c -Isrc -o build-mingw32-x86/rcc/stmt.o src/stmt.c
gcc -O2 -Wall -fno-strict-aliasing -MMD -c -Isrc -o build-mingw32-x86/rcc/string.o src/string.c
gcc -O2 -Wall -fno-strict-aliasing -MMD -c -Isrc -o build-mingw32-x86/rcc/sym.o src/sym.c
gcc -O2 -Wall -fno-strict-aliasing -MMD -c -Isrc -o build-mingw32-x86/rcc/symbolic.o src/symbolic.c
gcc -O2 -Wall -fno-strict-aliasing -MMD -c -Isrc -o build-mingw32-x86/rcc/trace.o src/trace.c
gcc -O2 -Wall -fno-strict-aliasing -MMD -c -Isrc -o build-mingw32-x86/rcc/tree.o src/tree.c
gcc -O2 -Wall -fno-strict-aliasing -MMD -c -Isrc -o build-mingw32-x86/rcc/types.o src/types.c
gcc -o build-mingw32-x86/q3rcc.exe build-mingw32-x86/rcc/alloc.o build-mingw32-x86/rcc/bind.o build-mingw32-x86/rcc/bytecode.o build-mingw32-x86/rcc/dag.o build-mingw32-x86/rcc/dagcheck.o build-mingw32-x86/rcc/decl.o build-mingw32-x86/rcc/enode.o build-mingw32-x86/rcc/error.o build-mingw32-x86/rcc/event.o build-mingw32-x86/rcc/expr.o build-mingw32-x86/rcc/gen.o build-mingw32-x86/rcc/init.o build-mingw32-x86/rcc/inits.o build-mingw32-x86/rcc/input.o build-mingw32-x86/rcc/lex.o build-mingw32-x86/rcc/list.o build-mingw32-x86/rcc/main.o build-mingw32-x86/rcc/null.o build-mingw32-x86/rcc/output.o build-mingw32-x86/rcc/prof.o build-mingw32-x86/rcc/profio.o build-mingw32-x86/rcc/simp.o build-mingw32-x86/rcc/stmt.o build-mingw32-x86/rcc/string.o build-mingw32-x86/rcc/sym.o build-mingw32-x86/rcc/symbolic.o build-mingw32-x86/rcc/trace.o build-mingw32-x86/rcc/tree.o build-mingw32-x86/rcc/types.o
install -s -m 0755 build-mingw32-x86/q3lcc.exe ../
install -s -m 0755 build-mingw32-x86/q3cpp.exe ../
install -s -m 0755 build-mingw32-x86/q3rcc.exe ../
make[2]: Leaving directory `/home/<user>/src/tools/lcc'
make -C src/tools/asm install
make[2]: Entering directory `/home/<user>/src/tools/asm'
install -s -m 0755 q3asm.exe ../
install: cannot stat `q3asm.exe': No such file or directory
make[2]: *** [install] Error 1
make[2]: Leaving directory `/home/<user>/src/tools/asm'
make[1]: *** [tools] Error 2
make[1]: Leaving directory `/home/<user>'
make: *** [release] Error 2
...any help?
you are misisng the q3asm.exe tool, get it from somewhere else (I.E. the tremulous SVN), place it where it goes and try again.
Ok, got another q3asm from the normal tremulous files but i still get an error (now suspecting the q3asm itself). Again here's the log:
$ make
make[1]: Entering directory `/c/msys/home/pbot'
make -C src/tools/lcc install
make[2]: Entering directory `/c/msys/home/pbot/src/tools/lcc'
install -s -m 0755 build-mingw32-x86/q3lcc.exe ../
install -s -m 0755 build-mingw32-x86/q3cpp.exe ../
install -s -m 0755 build-mingw32-x86/q3rcc.exe ../
make[2]: Leaving directory `/c/msys/home/pbot/src/tools/lcc'
make -C src/tools/asm install
make[2]: Entering directory `/c/msys/home/pbot/src/tools/asm'
gcc -O2 -Wall -fno-strict-aliasing -o q3asm q3asm.c cmdlib.c
In file included from q3asm.c:25:
cmdlib.h:120: error: syntax error before "short"
cmdlib.h:122: error: syntax error before "int"
cmdlib.h:123: error: syntax error before '&' token
cmdlib.h:124: error: syntax error before "float"
make[2]: *** [q3asm] Error 1
make[2]: Leaving directory `/c/msys/home/pbot/src/tools/asm'
make[1]: *** [tools] Error 2
make[1]: Leaving directory `/c/msys/home/pbot'
make: *** [release] Error 2
ok i just got past that q3asm problem... but now i have another one haha. Again, the log:
$ make
make[1]: Entering directory `/c/msys/home/pbot'
make -C src/tools/lcc install
make[2]: Entering directory `/c/msys/home/pbot/src/tools/lcc'
install -s -m 0755 build-mingw32-x86/q3lcc.exe ../
install -s -m 0755 build-mingw32-x86/q3cpp.exe ../
install -s -m 0755 build-mingw32-x86/q3rcc.exe ../
make[2]: Leaving directory `/c/msys/home/pbot/src/tools/lcc'
make -C src/tools/asm install
make[2]: Entering directory `/c/msys/home/pbot/src/tools/asm'
gcc -O2 -Wall -fno-strict-aliasing -o q3asm q3asm.c cmdlib.c
install -s -m 0755 q3asm.exe ../
make[2]: Leaving directory `/c/msys/home/pbot/src/tools/asm'
Building Tremulous in build/release-mingw32-x86:
CC: gcc
CFLAGS:
-Wall
-fno-strict-aliasing
-Wimplicit
-Wstrict-prototypes
-DUSE_OPENAL=1
-DUSE_OPENAL_DLOPEN=1
-DUSE_CURL=1
-DCURL_STATICLIB
-m32
-DUSE_LOCAL_HEADERS=1
-MMD
-DNDEBUG
-O3
-march=i586
-fomit-frame-pointer
-falign-loops=2
-funroll-loops
-falign-jumps=2
-falign-functions=2
-fstrength-reduce
Output:
build/release-mingw32-x86/base/cgamex86.dll
build/release-mingw32-x86/base/gamex86.dll
build/release-mingw32-x86/base/uix86.dll
build/release-mingw32-x86/base/vm/cgame.qvm
build/release-mingw32-x86/base/vm/game.qvm
build/release-mingw32-x86/base/vm/ui.qvm
make[2]: Entering directory `/c/msys/home/pbot'
SHLIB_CC src/cgame/cg_main.c
In file included from src/cgame/../game/bg_public.h:27,
from src/cgame/cg_local.h:27,
from src/cgame/cg_main.c:27:
src/cgame/../game/tremulous.h:27:1: warning: "/*" within comment
SHLIB_CC src/game/bg_misc.c
In file included from src/game/bg_public.h:27,
from src/game/bg_misc.c:27:
src/game/tremulous.h:27:1: warning: "/*" within comment
SHLIB_CC src/game/bg_pmove.c
In file included from src/game/bg_public.h:27,
from src/game/bg_pmove.c:28:
src/game/tremulous.h:27:1: warning: "/*" within comment
SHLIB_CC src/game/bg_slidemove.c
In file included from src/game/bg_public.h:27,
from src/game/bg_slidemove.c:27:
src/game/tremulous.h:27:1: warning: "/*" within comment
SHLIB_CC src/cgame/cg_consolecmds.c
In file included from src/cgame/../game/bg_public.h:27,
from src/cgame/cg_local.h:27,
from src/cgame/cg_consolecmds.c:28:
src/cgame/../game/tremulous.h:27:1: warning: "/*" within comment
SHLIB_CC src/cgame/cg_buildable.c
In file included from src/cgame/../game/bg_public.h:27,
from src/cgame/cg_local.h:27,
from src/cgame/cg_buildable.c:25:
src/cgame/../game/tremulous.h:27:1: warning: "/*" within comment
SHLIB_CC src/cgame/cg_animation.c
In file included from src/cgame/../game/bg_public.h:27,
from src/cgame/cg_local.h:27,
from src/cgame/cg_animation.c:24:
src/cgame/../game/tremulous.h:27:1: warning: "/*" within comment
SHLIB_CC src/cgame/cg_animmapobj.c
In file included from src/cgame/../game/bg_public.h:27,
from src/cgame/cg_local.h:27,
from src/cgame/cg_animmapobj.c:24:
src/cgame/../game/tremulous.h:27:1: warning: "/*" within comment
SHLIB_CC src/cgame/cg_draw.c
In file included from src/cgame/../game/bg_public.h:27,
from src/cgame/cg_local.h:27,
from src/cgame/cg_draw.c:28:
src/cgame/../game/tremulous.h:27:1: warning: "/*" within comment
SHLIB_CC src/cgame/cg_drawtools.c
In file included from src/cgame/../game/bg_public.h:27,
from src/cgame/cg_local.h:27,
from src/cgame/cg_drawtools.c:27:
src/cgame/../game/tremulous.h:27:1: warning: "/*" within comment
SHLIB_CC src/cgame/cg_ents.c
In file included from src/cgame/../game/bg_public.h:27,
from src/cgame/cg_local.h:27,
from src/cgame/cg_ents.c:27:
src/cgame/../game/tremulous.h:27:1: warning: "/*" within comment
SHLIB_CC src/cgame/cg_event.c
In file included from src/cgame/../game/bg_public.h:27,
from src/cgame/cg_local.h:27,
from src/cgame/cg_event.c:27:
src/cgame/../game/tremulous.h:27:1: warning: "/*" within comment
SHLIB_CC src/cgame/cg_marks.c
In file included from src/cgame/../game/bg_public.h:27,
from src/cgame/cg_local.h:27,
from src/cgame/cg_marks.c:27:
src/cgame/../game/tremulous.h:27:1: warning: "/*" within comment
SHLIB_CC src/cgame/cg_players.c
In file included from src/cgame/../game/bg_public.h:27,
from src/cgame/cg_local.h:27,
from src/cgame/cg_players.c:27:
src/cgame/../game/tremulous.h:27:1: warning: "/*" within comment
SHLIB_CC src/cgame/cg_playerstate.c
In file included from src/cgame/../game/bg_public.h:27,
from src/cgame/cg_local.h:27,
from src/cgame/cg_playerstate.c:30:
src/cgame/../game/tremulous.h:27:1: warning: "/*" within comment
SHLIB_CC src/cgame/cg_predict.c
In file included from src/cgame/../game/bg_public.h:27,
from src/cgame/cg_local.h:27,
from src/cgame/cg_predict.c:30:
src/cgame/../game/tremulous.h:27:1: warning: "/*" within comment
SHLIB_CC src/cgame/cg_servercmds.c
In file included from src/cgame/../game/bg_public.h:27,
from src/cgame/cg_local.h:27,
from src/cgame/cg_servercmds.c:29:
src/cgame/../game/tremulous.h:27:1: warning: "/*" within comment
SHLIB_CC src/cgame/cg_snapshot.c
In file included from src/cgame/../game/bg_public.h:27,
from src/cgame/cg_local.h:27,
from src/cgame/cg_snapshot.c:28:
src/cgame/../game/tremulous.h:27:1: warning: "/*" within comment
SHLIB_CC src/cgame/cg_view.c
In file included from src/cgame/../game/bg_public.h:27,
from src/cgame/cg_local.h:27,
from src/cgame/cg_view.c:28:
src/cgame/../game/tremulous.h:27:1: warning: "/*" within comment
SHLIB_CC src/cgame/cg_weapons.c
In file included from src/cgame/../game/bg_public.h:27,
from src/cgame/cg_local.h:27,
from src/cgame/cg_weapons.c:27:
src/cgame/../game/tremulous.h:27:1: warning: "/*" within comment
SHLIB_CC src/cgame/cg_mem.c
In file included from src/cgame/../game/bg_public.h:27,
from src/cgame/cg_local.h:27,
from src/cgame/cg_mem.c:24:
src/cgame/../game/tremulous.h:27:1: warning: "/*" within comment
SHLIB_CC src/cgame/cg_scanner.c
In file included from src/cgame/../game/bg_public.h:27,
from src/cgame/cg_local.h:27,
from src/cgame/cg_scanner.c:24:
src/cgame/../game/tremulous.h:27:1: warning: "/*" within comment
SHLIB_CC src/cgame/cg_attachment.c
In file included from src/cgame/../game/bg_public.h:27,
from src/cgame/cg_local.h:27,
from src/cgame/cg_attachment.c:25:
src/cgame/../game/tremulous.h:27:1: warning: "/*" within comment
SHLIB_CC src/cgame/cg_trails.c
In file included from src/cgame/../game/bg_public.h:27,
from src/cgame/cg_local.h:27,
from src/cgame/cg_trails.c:26:
src/cgame/../game/tremulous.h:27:1: warning: "/*" within comment
SHLIB_CC src/cgame/cg_particles.c
In file included from src/cgame/../game/bg_public.h:27,
from src/cgame/cg_local.h:27,
from src/cgame/cg_particles.c:26:
src/cgame/../game/tremulous.h:27:1: warning: "/*" within comment
SHLIB_CC src/cgame/cg_ptr.c
In file included from src/cgame/../game/bg_public.h:27,
from src/cgame/cg_local.h:27,
from src/cgame/cg_ptr.c:26:
src/cgame/../game/tremulous.h:27:1: warning: "/*" within comment
SHLIB_CC src/cgame/cg_tutorial.c
In file included from src/cgame/../game/bg_public.h:27,
from src/cgame/cg_local.h:27,
from src/cgame/cg_tutorial.c:25:
src/cgame/../game/tremulous.h:27:1: warning: "/*" within comment
SHLIB_CC src/ui/ui_shared.c
SHLIB_CC src/qcommon/q_math.c
SHLIB_CC src/qcommon/q_shared.c
SHLIB_CC src/cgame/cg_syscalls.c
In file included from src/cgame/../game/bg_public.h:27,
from src/cgame/cg_local.h:27,
from src/cgame/cg_syscalls.c:28:
src/cgame/../game/tremulous.h:27:1: warning: "/*" within comment
LD build/release-mingw32-x86/base/cgamex86.dll
SHLIB_CC src/game/g_main.c
In file included from src/game/bg_public.h:27,
from src/game/g_local.h:27,
from src/game/g_main.c:24:
src/game/tremulous.h:27:1: warning: "/*" within comment
SHLIB_CC src/game/g_mem.c
In file included from src/game/bg_public.h:27,
from src/game/g_local.h:27,
from src/game/g_mem.c:24:
src/game/tremulous.h:27:1: warning: "/*" within comment
SHLIB_CC src/game/g_active.c
In file included from src/game/bg_public.h:27,
from src/game/g_local.h:27,
from src/game/g_active.c:24:
src/game/tremulous.h:27:1: warning: "/*" within comment
SHLIB_CC src/game/g_client.c
In file included from src/game/bg_public.h:27,
from src/game/g_local.h:27,
from src/game/g_client.c:24:
src/game/tremulous.h:27:1: warning: "/*" within comment
SHLIB_CC src/game/g_cmds.c
In file included from src/game/bg_public.h:27,
from src/game/g_local.h:27,
from src/game/g_cmds.c:24:
src/game/tremulous.h:27:1: warning: "/*" within comment
SHLIB_CC src/game/g_combat.c
In file included from src/game/bg_public.h:27,
from src/game/g_local.h:27,
from src/game/g_combat.c:24:
src/game/tremulous.h:27:1: warning: "/*" within comment
SHLIB_CC src/game/g_physics.c
In file included from src/game/bg_public.h:27,
from src/game/g_local.h:27,
from src/game/g_physics.c:24:
src/game/tremulous.h:27:1: warning: "/*" within comment
SHLIB_CC src/game/g_buildable.c
In file included from src/game/bg_public.h:27,
from src/game/g_local.h:27,
from src/game/g_buildable.c:24:
src/game/tremulous.h:27:1: warning: "/*" within comment
src/game/g_buildable.c: In function `G_Build':
src/game/g_buildable.c:3179: warning: 'new' might be used uninitialized in this function
src/game/g_buildable.c: At top level:
src/game/g_buildable.c:146: warning: 'G_NumberOfDependants' defined but not used
SHLIB_CC src/game/g_misc.c
In file included from src/game/bg_public.h:27,
from src/game/g_local.h:27,
from src/game/g_misc.c:24:
src/game/tremulous.h:27:1: warning: "/*" within comment
SHLIB_CC src/game/g_missile.c
In file included from src/game/bg_public.h:27,
from src/game/g_local.h:27,
from src/game/g_missile.c:24:
src/game/tremulous.h:27:1: warning: "/*" within comment
SHLIB_CC src/game/g_mover.c
In file included from src/game/bg_public.h:27,
from src/game/g_local.h:27,
from src/game/g_mover.c:24:
src/game/tremulous.h:27:1: warning: "/*" within comment
SHLIB_CC src/game/g_session.c
In file included from src/game/bg_public.h:27,
from src/game/g_local.h:27,
from src/game/g_session.c:24:
src/game/tremulous.h:27:1: warning: "/*" within comment
SHLIB_CC src/game/g_spawn.c
In file included from src/game/bg_public.h:27,
from src/game/g_local.h:27,
from src/game/g_spawn.c:24:
src/game/tremulous.h:27:1: warning: "/*" within comment
SHLIB_CC src/game/g_svcmds.c
In file included from src/game/bg_public.h:27,
from src/game/g_local.h:27,
from src/game/g_svcmds.c:26:
src/game/tremulous.h:27:1: warning: "/*" within comment
SHLIB_CC src/game/g_target.c
In file included from src/game/bg_public.h:27,
from src/game/g_local.h:27,
from src/game/g_target.c:24:
src/game/tremulous.h:27:1: warning: "/*" within comment
SHLIB_CC src/game/g_team.c
In file included from src/game/bg_public.h:27,
from src/game/g_local.h:27,
from src/game/g_team.c:24:
src/game/tremulous.h:27:1: warning: "/*" within comment
SHLIB_CC src/game/g_trigger.c
In file included from src/game/bg_public.h:27,
from src/game/g_local.h:27,
from src/game/g_trigger.c:24:
src/game/tremulous.h:27:1: warning: "/*" within comment
SHLIB_CC src/game/g_utils.c
In file included from src/game/bg_public.h:27,
from src/game/g_local.h:27,
from src/game/g_utils.c:26:
src/game/tremulous.h:27:1: warning: "/*" within comment
SHLIB_CC src/game/g_maprotation.c
In file included from src/game/bg_public.h:27,
from src/game/g_local.h:27,
from src/game/g_maprotation.c:26:
src/game/tremulous.h:27:1: warning: "/*" within comment
SHLIB_CC src/game/g_ptr.c
In file included from src/game/bg_public.h:27,
from src/game/g_local.h:27,
from src/game/g_ptr.c:26:
src/game/tremulous.h:27:1: warning: "/*" within comment
SHLIB_CC src/game/g_weapon.c
In file included from src/game/bg_public.h:27,
from src/game/g_local.h:27,
from src/game/g_weapon.c:27:
src/game/tremulous.h:27:1: warning: "/*" within comment
SHLIB_CC src/game/g_admin.c
In file included from src/game/bg_public.h:27,
from src/game/g_local.h:27,
from src/game/g_admin.c:33:
src/game/tremulous.h:27:1: warning: "/*" within comment
SHLIB_CC src/game/g_bot.c
In file included from src/game/bg_public.h:27,
from src/game/g_local.h:27,
from src/game/g_bot.c:27:
src/game/tremulous.h:27:1: warning: "/*" within comment
src/game/g_bot.c: In function `Bot_Evolve':
src/game/g_bot.c:828: warning: implicit declaration of function `G_RoomForClassChange'
src/game/g_bot.c:778: warning: 'levels' might be used uninitialized in this function
SHLIB_CC src/game/g_syscalls.c
In file included from src/game/bg_public.h:27,
from src/game/g_local.h:27,
from src/game/g_syscalls.c:24:
src/game/tremulous.h:27:1: warning: "/*" within comment
LD build/release-mingw32-x86/base/gamex86.dll
build/release-mingw32-x86/base/game/g_bot.o:g_bot.c:(.text+0x2125): undefined reference to `G_RoomForClassChange'
build/release-mingw32-x86/base/game/g_bot.o:g_bot.c:(.text+0x2193): undefined reference to `G_RoomForClassChange'
build/release-mingw32-x86/base/game/g_bot.o:g_bot.c:(.text+0x230e): undefined reference to `G_RoomForClassChange'
build/release-mingw32-x86/base/game/g_bot.o:g_bot.c:(.text+0x237f): undefined reference to `G_RoomForClassChange'
build/release-mingw32-x86/base/game/g_bot.o:g_bot.c:(.text+0x23f1): undefined reference to `G_RoomForClassChange'
build/release-mingw32-x86/base/game/g_bot.o:g_bot.c:(.text+0x2463): more undefined references to `G_RoomForClassChange' follow
collect2: ld returned 1 exit status
make[2]: *** [build/release-mingw32-x86/base/gamex86.dll] Error 1
make[2]: Leaving directory `/c/msys/home/pbot'
make[1]: *** [targets] Error 2
make[1]: Leaving directory `/c/msys/home/pbot'
make: *** [release] Error 2
Try compiling normal trem, see if that works. Then try pbot. Then try editing it.
I never get why people always try to dive right in at the deep end, if you try to do everything at once you don't stand a chance of finding which step is the problem.