Mon, 04 Jun 2012 21:12:20 +0200 Frontlib: Work on the callback mechanisms for IPC
Medo <smaxein@googlemail.com> [Mon, 04 Jun 2012 21:12:20 +0200] rev 7173
Frontlib: Work on the callback mechanisms for IPC Work commit; It compiles and runs but will need a major overhaul tomorrow.
Sun, 03 Jun 2012 22:56:30 -0400 After experimenting with a long running average at maxed out FPS and a variety of map sizes, 128 seems to actually be a good size to use if only drawing bits of world with stuff in it. 64 actually did even better in some situations, but significantly worse in others (lots of land, zoomed out).
nemo [Sun, 03 Jun 2012 22:56:30 -0400] rev 7172
After experimenting with a long running average at maxed out FPS and a variety of map sizes, 128 seems to actually be a good size to use if only drawing bits of world with stuff in it. 64 actually did even better in some situations, but significantly worse in others (lots of land, zoomed out).
Sun, 03 Jun 2012 01:24:18 +0200 frontlib refactoring
Medo <smaxein@googlemail.com> [Sun, 03 Jun 2012 01:24:18 +0200] rev 7171
frontlib refactoring socket.h now completely wraps all the lowlevel neworking, so it would be easy to switch away from SDL_net if needed. Also reduced global state by making an IPC connection an object-like thing.
Sun, 03 Jun 2012 18:52:22 -0400 Only create textures for non-empty LandPixel chunks. This should save a fair amount of memory, especially on smaller maps, and eliminate a number of draws
nemo [Sun, 03 Jun 2012 18:52:22 -0400] rev 7170
Only create textures for non-empty LandPixel chunks. This should save a fair amount of memory, especially on smaller maps, and eliminate a number of draws
Sat, 02 Jun 2012 22:54:09 +0200 Merge
Medo <smaxein@googlemail.com> [Sat, 02 Jun 2012 22:54:09 +0200] rev 7169
Merge
Sun, 03 Jun 2012 11:02:12 -0400 warp sound when AI survival hog respawns. attempt at a bit of a crate spawn animation (moar sparkles and a quick fadein)
nemo [Sun, 03 Jun 2012 11:02:12 -0400] rev 7168
warp sound when AI survival hog respawns. attempt at a bit of a crate spawn animation (moar sparkles and a quick fadein)
Sat, 02 Jun 2012 22:31:41 +0200 Android: added a callback to java to determine dpi/dip how much we should scale the ui
Xeli [Sat, 02 Jun 2012 22:31:41 +0200] rev 7167
Android: added a callback to java to determine dpi/dip how much we should scale the ui
Sat, 02 Jun 2012 14:27:09 +0200 Merge
Medo <smaxein@googlemail.com> [Sat, 02 Jun 2012 14:27:09 +0200] rev 7166
Merge
Sat, 02 Jun 2012 16:25:13 -0400 add onGameTick20 to basic training, extend laser sight out way more (it was visible at top when completely zoomed out), move call of new turn to after AfterSwitchHedgehog to avoid lua issues in onNewTurn - if this causes problems, lua can do delayed actions in onGameTick
nemo [Sat, 02 Jun 2012 16:25:13 -0400] rev 7165
add onGameTick20 to basic training, extend laser sight out way more (it was visible at top when completely zoomed out), move call of new turn to after AfterSwitchHedgehog to avoid lua issues in onNewTurn - if this causes problems, lua can do delayed actions in onGameTick
Fri, 01 Jun 2012 12:42:44 +0400 Some brainfucking code which greatly reduces number of TestCollision* calls in hedgehog walk routine. Especially helpful to AI optimization. Also fixes some edge cases.
unc0rr [Fri, 01 Jun 2012 12:42:44 +0400] rev 7164
Some brainfucking code which greatly reduces number of TestCollision* calls in hedgehog walk routine. Especially helpful to AI optimization. Also fixes some edge cases.
Fri, 01 Jun 2012 00:19:30 +0200 merge
mikade <redgrinner@gmail.com> [Fri, 01 Jun 2012 00:19:30 +0200] rev 7163
merge
Sat, 02 Jun 2012 14:26:52 +0200 Demo recording for the frontend library
Medo <smaxein@googlemail.com> [Sat, 02 Jun 2012 14:26:52 +0200] rev 7162
Demo recording for the frontend library
Thu, 31 May 2012 12:52:31 -0400 Name the flags for fall tracking and indicating whether the explosion erases terrain.
nemo [Thu, 31 May 2012 12:52:31 -0400] rev 7161
Name the flags for fall tracking and indicating whether the explosion erases terrain.
Thu, 31 May 2012 18:54:40 +0200 Moved frontlib into project_files
Medo <smaxein@googlemail.com> [Thu, 31 May 2012 18:54:40 +0200] rev 7160
Moved frontlib into project_files
Thu, 31 May 2012 20:07:40 +0400 merge
unc0rr [Thu, 31 May 2012 20:07:40 +0400] rev 7159
merge
Thu, 31 May 2012 18:32:01 +0200 Further work on the frontend library, restructuring, ...
Medo <smaxein@googlemail.com> [Thu, 31 May 2012 18:32:01 +0200] rev 7158
Further work on the frontend library, restructuring, ...
Thu, 31 May 2012 20:07:17 +0400 merge
unc0rr [Thu, 31 May 2012 20:07:17 +0400] rev 7157
merge
Thu, 31 May 2012 15:50:25 +0200 Add a GetTag method so that SetTag doesn't feel lonely.
mikade <redgrinner@gmail.com> [Thu, 31 May 2012 15:50:25 +0200] rev 7156
Add a GetTag method so that SetTag doesn't feel lonely.
Thu, 31 May 2012 00:35:06 +0200 Started work on the frontend networking library
Medo <smaxein@googlemail.com> [Thu, 31 May 2012 00:35:06 +0200] rev 7155
Started work on the frontend networking library
Thu, 31 May 2012 18:02:30 +0400 Improve TestWhip
unc0rr [Thu, 31 May 2012 18:02:30 +0400] rev 7154
Improve TestWhip
Thu, 31 May 2012 00:11:42 +0200 minor tweaks for options page; should improve readability at small window size... a bit...
sheepluva [Thu, 31 May 2012 00:11:42 +0200] rev 7153
minor tweaks for options page; should improve readability at small window size... a bit...
Tue, 29 May 2012 23:04:03 +0200 Removed dead/deprecated code and comments
Medo <smaxein@googlemail.com> [Tue, 29 May 2012 23:04:03 +0200] rev 7152
Removed dead/deprecated code and comments
Thu, 31 May 2012 15:14:39 +0400 pas2c stuff
unc0rr [Thu, 31 May 2012 15:14:39 +0400] rev 7151
pas2c stuff
Wed, 30 May 2012 22:45:30 +0400 This should make drawn maps rendering even more faster
unc0rr [Wed, 30 May 2012 22:45:30 +0400] rev 7150
This should make drawn maps rendering even more faster
Tue, 29 May 2012 22:33:10 +0200 Merge
Medo <smaxein@googlemail.com> [Tue, 29 May 2012 22:33:10 +0200] rev 7149
Merge
Wed, 30 May 2012 19:01:19 +0400 merge
unc0rr [Wed, 30 May 2012 19:01:19 +0400] rev 7148
merge
Wed, 30 May 2012 18:00:29 +0400 Render drawn maps 10-500 times faster
unc0rr [Wed, 30 May 2012 18:00:29 +0400] rev 7147
Render drawn maps 10-500 times faster
Tue, 29 May 2012 22:21:19 +0400 Oops, forgot to set 'erasing' flag on decoding
unc0rr [Tue, 29 May 2012 22:21:19 +0400] rev 7146
Oops, forgot to set 'erasing' flag on decoding
Mon, 28 May 2012 22:42:59 +0400 Fix a bug with wrong state of teams list when color isn't changed manually
unc0rr [Mon, 28 May 2012 22:42:59 +0400] rev 7145
Fix a bug with wrong state of teams list when color isn't changed manually
Mon, 28 May 2012 14:20:51 -0400 Remove a couple more timers, should mean alpha matches old pulse time now
nemo [Mon, 28 May 2012 14:20:51 -0400] rev 7144
Remove a couple more timers, should mean alpha matches old pulse time now
Mon, 28 May 2012 14:11:50 -0400 also change specialists
nemo [Mon, 28 May 2012 14:11:50 -0400] rev 7143
also change specialists
Mon, 28 May 2012 14:01:23 -0400 Set air attack to active by default, make time look a bit nicer, avoid plane buzz activating.
nemo [Mon, 28 May 2012 14:01:23 -0400] rev 7142
Set air attack to active by default, make time look a bit nicer, avoid plane buzz activating.
Mon, 28 May 2012 19:33:57 +0200 change the array which represents the keyboard state to be a boolean array rather than byte array
Xeli [Mon, 28 May 2012 19:33:57 +0200] rev 7141
change the array which represents the keyboard state to be a boolean array rather than byte array
Mon, 28 May 2012 19:15:51 +0200 Don't allow for multiple key up(or down) events, it will ignore the excess events
Xeli [Mon, 28 May 2012 19:15:51 +0200] rev 7140
Don't allow for multiple key up(or down) events, it will ignore the excess events
Mon, 28 May 2012 12:21:54 -0400 Also change Highlander and Racer
nemo [Mon, 28 May 2012 12:21:54 -0400] rev 7139
Also change Highlander and Racer
Mon, 28 May 2012 10:38:27 +0200 moved generic matrix code to uMatrix.pas
Wolfgang Steffens <WolfgangSteff@gmail.com> [Mon, 28 May 2012 10:38:27 +0200] rev 7138
moved generic matrix code to uMatrix.pas updated shader and client logic to use a mat4 rather than ftransform or gl_ModelViewProjectionMatrix.
Mon, 28 May 2012 20:04:49 +0400 merge
unc0rr [Mon, 28 May 2012 20:04:49 +0400] rev 7137
merge
Mon, 28 May 2012 10:34:33 +0200 merge
Wolfgang Steffens <WolfgangSteff@gmail.com> [Mon, 28 May 2012 10:34:33 +0200] rev 7136
merge
Mon, 28 May 2012 01:51:50 -0400 Add onGameTick20 to try and encourage lua to be a bit more efficient. Rewrite Space Invasion to use it. Top speed of aliens is 25% higher now, although that could be changed, I kinda liked it. Change parameter order of div().
nemo [Mon, 28 May 2012 01:51:50 -0400] rev 7135
Add onGameTick20 to try and encourage lua to be a bit more efficient. Rewrite Space Invasion to use it. Top speed of aliens is 25% higher now, although that could be changed, I kinda liked it. Change parameter order of div().
Mon, 28 May 2012 17:54:23 +0400 Some improvements to pas2c
unc0rr [Mon, 28 May 2012 17:54:23 +0400] rev 7134
Some improvements to pas2c
Mon, 28 May 2012 00:44:51 +0400 Fix a remote crasher
unc0rr [Mon, 28 May 2012 00:44:51 +0400] rev 7133
Fix a remote crasher
Fri, 25 May 2012 15:35:48 +0400 - Fix some AI stupidness factors
unc0rr [Fri, 25 May 2012 15:35:48 +0400] rev 7132
- Fix some AI stupidness factors - Slight optimizations and formatting
Mon, 28 May 2012 00:43:36 +0400 Make frontend compile with clang
unc0rr [Mon, 28 May 2012 00:43:36 +0400] rev 7131
Make frontend compile with clang
Sun, 27 May 2012 23:42:43 +0400 - Allow switching colors with mouse wheel
unc0rr [Sun, 27 May 2012 23:42:43 +0400] rev 7130
- Allow switching colors with mouse wheel - Use indices instead of color values - Introduce a model for colors - Some small fixes, .pro can be used to build again - Yay, tested it to work via network (and fixed a bug!) (TODO: pass colors to engine by index)
Fri, 25 May 2012 09:00:54 +0200 initial GLSL1.2 test version
Wolfgang Steffens <WolfgangSteff@gmail.com> [Fri, 25 May 2012 09:00:54 +0200] rev 7129
initial GLSL1.2 test version
Sat, 26 May 2012 16:50:51 -0400 Minor freezer changes, allow snow to accumulate on indestructible terrain too.
nemo [Sat, 26 May 2012 16:50:51 -0400] rev 7128
Minor freezer changes, allow snow to accumulate on indestructible terrain too.
Fri, 25 May 2012 08:51:54 +0200 Removed lazy update: workaround for R7103
Wolfgang Steffens <WolfgangSteff@gmail.com> [Fri, 25 May 2012 08:51:54 +0200] rev 7127
Removed lazy update: workaround for R7103
Sat, 26 May 2012 22:27:57 +0400 Bring leftTeams back (with a fix) as it is apparently needed for spectators.
unc0rr [Sat, 26 May 2012 22:27:57 +0400] rev 7126
Bring leftTeams back (with a fix) as it is apparently needed for spectators.
Fri, 25 May 2012 08:42:26 +0200 merge
Wolfgang Steffens <WolfgangSteff@gmail.com> [Fri, 25 May 2012 08:42:26 +0200] rev 7125
merge
Fri, 25 May 2012 00:06:42 +0400 - Restore pre-r9257cf8e7af2 behavior
unc0rr [Fri, 25 May 2012 00:06:42 +0400] rev 7124
- Restore pre-r9257cf8e7af2 behavior - Get rid of leftTeams, send REMOVE_TEAM immediately instead
Wed, 23 May 2012 22:46:37 +0200 Merge
Medo <smaxein@googlemail.com> [Wed, 23 May 2012 22:46:37 +0200] rev 7123
Merge
Wed, 23 May 2012 16:51:37 -0400 Fix reported in bug #327, comment #3 - untested but seems reasonable/safe.
nemo [Wed, 23 May 2012 16:51:37 -0400] rev 7122
Fix reported in bug #327, comment #3 - untested but seems reasonable/safe.
Wed, 23 May 2012 16:34:12 -0400 http://www.demoties.com/wp-content/uploads/2011/03/mar-01-6.jpg
nemo [Wed, 23 May 2012 16:34:12 -0400] rev 7121
http://www.demoties.com/wp-content/uploads/2011/03/mar-01-6.jpg
Wed, 23 May 2012 23:30:50 +0400 Mark team for deletion when letting others know it has left during game. Should help with quitters problem.
unc0rr [Wed, 23 May 2012 23:30:50 +0400] rev 7120
Mark team for deletion when letting others know it has left during game. Should help with quitters problem.
Wed, 23 May 2012 23:24:03 +0400 Don't remove already removed team
unc0rr [Wed, 23 May 2012 23:24:03 +0400] rev 7119
Don't remove already removed team
Wed, 23 May 2012 21:19:15 +0200 wops add this too
Xeli [Wed, 23 May 2012 21:19:15 +0200] rev 7118
wops add this too
Wed, 23 May 2012 21:16:44 +0200 reimplemented ResetKbd and calling it when exiting gsChat status, this restores behavior from.17: You can now walk -> press t/chat -> type some stuff while still walking -> exit gsChat and stop walking at that moment
Xeli [Wed, 23 May 2012 21:16:44 +0200] rev 7117
reimplemented ResetKbd and calling it when exiting gsChat status, this restores behavior from.17: You can now walk -> press t/chat -> type some stuff while still walking -> exit gsChat and stop walking at that moment
Wed, 23 May 2012 19:56:14 +0200 android: fix the default make target
Xeli [Wed, 23 May 2012 19:56:14 +0200] rev 7116
android: fix the default make target
Wed, 23 May 2012 19:54:53 +0200 Android: add freezer commit message
Xeli [Wed, 23 May 2012 19:54:53 +0200] rev 7115
Android: add freezer commit message
Wed, 23 May 2012 02:39:30 +0200 add NOPNG to cmake to explicitly disable PNG dependency
koda [Wed, 23 May 2012 02:39:30 +0200] rev 7114
add NOPNG to cmake to explicitly disable PNG dependency reorganise osx detection and variable initalization (simpler crosscompiling) in cmake
Wed, 23 May 2012 01:53:25 +0200 add GHC and GHFLAGS from cmake too
koda [Wed, 23 May 2012 01:53:25 +0200] rev 7113
add GHC and GHFLAGS from cmake too
Wed, 23 May 2012 01:39:31 +0200 rename a few internal cmake variables (for consistency and readability)
koda [Wed, 23 May 2012 01:39:31 +0200] rev 7112
rename a few internal cmake variables (for consistency and readability)
Tue, 22 May 2012 09:25:03 +0200 Replaced matrix related FFP code with explicit matrix calculations.
Wolfgang Steffens <WolfgangSteff@gmail.com> [Tue, 22 May 2012 09:25:03 +0200] rev 7111
Replaced matrix related FFP code with explicit matrix calculations. The modelview matrices now get uploaded at a single point via glLoadMatrix4 rather than using the GL1 matrix stack. In the GL2 variant this will become a uniform upload.
Tue, 22 May 2012 11:19:32 +0200 Merge
Medo <smaxein@googlemail.com> [Tue, 22 May 2012 11:19:32 +0200] rev 7110
Merge
Wed, 23 May 2012 00:45:37 +0200 there a libSDLMain.a in the bundled SDL framework
koda [Wed, 23 May 2012 00:45:37 +0200] rev 7109
there a libSDLMain.a in the bundled SDL framework
Tue, 22 May 2012 09:18:46 +0200 Merge
Wolfgang Steffens <WolfgangSteff@gmail.com> [Tue, 22 May 2012 09:18:46 +0200] rev 7108
Merge
Tue, 22 May 2012 00:41:26 +0200 android: possible fix for bitmap recycle errors
Xeli [Tue, 22 May 2012 00:41:26 +0200] rev 7107
android: possible fix for bitmap recycle errors
Tue, 22 May 2012 00:40:43 +0200 fixed wheelup/down
Xeli [Tue, 22 May 2012 00:40:43 +0200] rev 7106
fixed wheelup/down Wheel up and down used to be swapped in both binds.cpp and uKeys.pas (2 wrongs make a right eh) After I fixed uKeys zooming was inverted, so I changed binds.cpp too, but now existing teams will still have its zoom inverted..
Mon, 21 May 2012 22:54:34 +0200 add a nilcheck
koda [Mon, 21 May 2012 22:54:34 +0200] rev 7105
add a nilcheck
Mon, 21 May 2012 16:46:24 -0400 checksum
nemo [Mon, 21 May 2012 16:46:24 -0400] rev 7104
checksum
Tue, 22 May 2012 00:29:32 +0400 Feel free to add real checksum function
unc0rr [Tue, 22 May 2012 00:29:32 +0400] rev 7103
Feel free to add real checksum function
Mon, 21 May 2012 06:34:17 +0200 better lazy loading for cScaleFactor
koda [Mon, 21 May 2012 06:34:17 +0200] rev 7102
better lazy loading for cScaleFactor
Sun, 20 May 2012 19:42:55 -0400 Ok. I think *this* should flip it correctly...
nemo [Sun, 20 May 2012 19:42:55 -0400] rev 7101
Ok. I think *this* should flip it correctly...
Sun, 20 May 2012 21:09:13 +0200 android: added an unsigned target to the makefile, to help automate signing
Xeli [Sun, 20 May 2012 21:09:13 +0200] rev 7100
android: added an unsigned target to the makefile, to help automate signing
Sun, 20 May 2012 17:17:21 +0200 remove the need to qt and co when using cmake with -DANDROID=1
Xeli [Sun, 20 May 2012 17:17:21 +0200] rev 7099
remove the need to qt and co when using cmake with -DANDROID=1
Sun, 20 May 2012 10:55:58 -0400 Minor tweaks to freezer, mostly to simplify current state to laptop
nemo [Sun, 20 May 2012 10:55:58 -0400] rev 7098
Minor tweaks to freezer, mostly to simplify current state to laptop
Sun, 20 May 2012 10:45:16 -0400 clean up pngs
nemo [Sun, 20 May 2012 10:45:16 -0400] rev 7097
clean up pngs
Sun, 20 May 2012 10:54:52 +0200 merge
mikade <redgrinner@gmail.com> [Sun, 20 May 2012 10:54:52 +0200] rev 7096
merge
Sun, 20 May 2012 00:08:26 +0200 + Trivial update.
mikade <redgrinner@gmail.com> [Sun, 20 May 2012 00:08:26 +0200] rev 7095
+ Trivial update. + Script for managing WxW, AFR, and Surf'n'Crate shoppa-variants.
Sat, 19 May 2012 17:15:12 +0200 A few scripts to try out. 2x challenge, 1x GSoC training, 1x user mission.
mikade <redgrinner@gmail.com> [Sat, 19 May 2012 17:15:12 +0200] rev 7094
A few scripts to try out. 2x challenge, 1x GSoC training, 1x user mission.
Sun, 20 May 2012 01:00:00 -0400 Bit more freezer.
nemo [Sun, 20 May 2012 01:00:00 -0400] rev 7093
Bit more freezer.
Fri, 18 May 2012 13:35:22 -0400 Add an emergency return to the timebox in the case of death of rest of team. Also add a small visual effect to AI survival
nemo [Fri, 18 May 2012 13:35:22 -0400] rev 7092
Add an emergency return to the timebox in the case of death of rest of team. Also add a small visual effect to AI survival
Thu, 17 May 2012 20:23:58 -0400 Might help if this was actually its own unique weapon
nemo [Thu, 17 May 2012 20:23:58 -0400] rev 7091
Might help if this was actually its own unique weapon
Thu, 17 May 2012 18:22:20 -0400 Provide training/campaign with a random seed to ignore/use.
nemo [Thu, 17 May 2012 18:22:20 -0400] rev 7090
Provide training/campaign with a random seed to ignore/use.
Thu, 17 May 2012 20:19:35 +0200 remove ProcessKdb references all together, removed movecursor() because it doesnt seem to do anything
Xeli [Thu, 17 May 2012 20:19:35 +0200] rev 7089
remove ProcessKdb references all together, removed movecursor() because it doesnt seem to do anything
Thu, 17 May 2012 20:01:56 +0200 first attempt at fixing controller/gamepad, it works with the android controller but it doesnt have hats/buttons, needs testing
Xeli [Thu, 17 May 2012 20:01:56 +0200] rev 7088
first attempt at fixing controller/gamepad, it works with the android controller but it doesnt have hats/buttons, needs testing
Thu, 17 May 2012 16:52:17 +0200 dont allow choosing weapons when the AI is playing
Xeli [Thu, 17 May 2012 16:52:17 +0200] rev 7087
dont allow choosing weapons when the AI is playing
Thu, 17 May 2012 16:51:54 +0200 android typo/sabotage
Xeli [Thu, 17 May 2012 16:51:54 +0200] rev 7086
android typo/sabotage
Thu, 17 May 2012 15:58:24 +0200 fix sdl13 build
Xeli [Thu, 17 May 2012 15:58:24 +0200] rev 7085
fix sdl13 build
Mon, 14 May 2012 22:14:17 +0200 readded optimization for SetScale
Wolfgang Steffens <WolfgangSteff@gmail.com> [Mon, 14 May 2012 22:14:17 +0200] rev 7084
readded optimization for SetScale
Thu, 17 May 2012 15:58:04 +0200 unbreak android build
Xeli [Thu, 17 May 2012 15:58:04 +0200] rev 7083
unbreak android build - export the Game function - fill the ammo store with 0s in the frondend, if we're missing any weapons - use english as default language
Mon, 14 May 2012 19:48:34 +0200 Replaced FFP code that sets up orthogonal projection with explicit matrix
Wolfgang Steffens <WolfgangSteff@gmail.com> [Mon, 14 May 2012 19:48:34 +0200] rev 7082
Replaced FFP code that sets up orthogonal projection with explicit matrix calculation. Storing the orthogonal projection in the projection matrix for legacy GL (1.x) rather than in the modelview matrix.
Tue, 15 May 2012 21:07:47 +0200 android: add missing graphics, only placeholders tho..
Xeli [Tue, 15 May 2012 21:07:47 +0200] rev 7081
android: add missing graphics, only placeholders tho..
Mon, 14 May 2012 19:26:50 +0200 Refactored TTexture to allow encoding sprite(s) at an arbitrary location within
Wolfgang Steffens <WolfgangSteff@gmail.com> [Mon, 14 May 2012 19:26:50 +0200] rev 7080
Refactored TTexture to allow encoding sprite(s) at an arbitrary location within a (possibly shared) physical texture. The original variant only allowed encoding a sprite at the bottomleft of a larger physical texture to use NPOT sprites on POT only supporting systems.
Mon, 14 May 2012 22:47:56 +0400 Learn hask^Wpascal, dudes!
unc0rr [Mon, 14 May 2012 22:47:56 +0400] rev 7079
Learn hask^Wpascal, dudes!
Sun, 13 May 2012 18:50:04 -0400 AI can't use cWindSpeedf since it now does a smooth transition
nemo [Sun, 13 May 2012 18:50:04 -0400] rev 7078
AI can't use cWindSpeedf since it now does a smooth transition
(0) -3000 -1000 -300 -100 -96 +96 +100 +300 +1000 +3000 tip