Commit Graph

174 Commits

Author SHA1 Message Date
jacob1
63c13bda89 fix use of deprecated luaL_getn function 2017-11-23 22:34:22 -05:00
jacob1
6bd068713e recording improvements
remove 'r' record shortcut
add tpt.record function. Still gives the user a confirm prompt
recordings now go into recordings/<timestamp>/, where timestamp is the time the recording was started. <timestamp> is returned by the tpt.record function. Each new recording starts the filenames over at 0 again.

you probably still need a lua script to use the recording feature, this should make it easier for those
2017-09-04 14:06:28 -04:00
jacob1
c34b54d974 add sim.takeSnapshot lua function 2017-08-31 23:48:00 -04:00
jacob1
6931f35520 hold shift when saving or loading stamps to not save / load pressure, closes #491 2017-08-03 00:13:06 -04:00
jacob1
adb39b91a9 attempt to reduce "script is not responding" when debugging (valgrind / breakpoints) 2017-07-28 20:32:46 -04:00
jacob1
b8ce522779 sim.signs.delete() api function 2017-07-16 10:42:53 -04:00
jacob1
5ee10d14e4 reduce unnecessary #include dependency chains
for example, elements no longer include Client.h or Graphics.h, and interface stuff won't include Window.h or Graphics.h unless requested
2017-07-13 23:24:35 -04:00
jacob1
f3a7d966d2 potential fix in sim.partCreate, also 2017-07-13 20:55:03 -04:00
jacob1
8e5b0c760e Add logging inside saves which remembers which other saves material was taken from
The logging is saved inside the bson data in all online saves, local saves, stamps, and clipboard pieces. It is loaded back when reloading each of those.

See #474 for the format of the data. It is the same format for the bson data. Note that "links" is an array of objects. It can be recursive.

There is some effort to not duplicate information, we don't care if you loaded a stamp 10 times or if you are using the clipboard in your own save. Extra information is mostly not saved for your own stuff, only when you take material from other saves.

Press ctrl+a in debug builds to show what info it is currently saving in Client. Also enabled in snapshots for now.

There is one unrelated change in here, which fixes a crash pointed out by QuanTech. It was also save related and it was too close to the other changes to separate it into another commit. It fixes a crash when saving signs with invalid unicode. the BSON library doesn't like this, it was returning an error but we ignored it, which caused a crash. It now notices those errors. I also had to update several Serialize calls to check if it actually returned save data, or else it then would have started crashing there instead.
Also some debug prints were removed
2017-07-13 00:19:35 -04:00
jacob1
ec417095b9 add sim.TOOL_MIX, fixes #414 2017-05-09 21:59:15 -04:00
jacob1
cdc8f64896 fix clang compile warnings, fixes #406
also, sim.ambientAirTemp takes floats now
2017-04-27 23:08:06 -04:00
jacob1
e712a8dbec make last 3 arguments to sim.brush optional, for convenience 2017-04-17 23:28:12 -04:00
LBPHacker
e9d80fe52a sizeof(unsigned char) 2017-04-17 23:28:12 -04:00
LBPHacker
5cf3fa3f5b More parameters for sim.brush 2017-04-17 23:28:12 -04:00
Issue tracking bot
d9115fc3fe Fix -Werror=misleading-indentation (#369) 2017-02-20 18:51:10 -05:00
Tamás Bálint Misius
57f5d0f84f Add sim.brush (#350) 2016-11-07 18:00:34 -05:00
jacob1
16b93083d4 Changes to support starcatcher build server with updates
Cherry-picked from 3ddaec7b2a
3ddaec7b2a
3ddaec7b2a
3ddaec7b2a
3ddaec7b2a
3ddaec7b2a
2016-07-09 19:00:54 -04:00
jacob1
b75c8318e4 add tpt.num_menus and tpt.menu_enabled functions 2016-07-08 20:33:01 -04:00
jacob1
57be4ef498 'character' is always 0 in sdl keyup event, so just send 'key' instead to lua keyup events 2016-04-26 22:42:57 -04:00
jacob1
aa99258101 more cleanup so that 3D can stay a more permanent thing 2016-04-02 00:10:15 -04:00
jacob1
46d096206f Further improvements to overall system stability and other minor adjustments have been made to enhance the user experience 2016-03-31 22:08:04 -04:00
jacob1
aa108be3df Pass in actual character sdl saw into keypress functions
Previously you couldn't detect what shift+somekey would do on alternate keyboard layours.
2016-01-31 21:39:39 -05:00
jacob1
28598a43be another compiler fix (include <stdexcept> manually) 2016-01-26 00:31:05 -05:00
jacob1
f6d82b6f8a separate t and v argument in create_part, fix LIGH not defaulting to .life of 30 with clones / console 2016-01-11 22:38:42 -05:00
jacob1
37eb674d40 fix being unable to set floating point values in element.property
broken in e92bbac700
2015-12-18 18:21:04 -05:00
jacob1
b9c3eeae92 Allow old lua scripts which use state to work 2015-12-18 02:07:16 -05:00
jacob1
f63c3072a4 fix crash when doing simulation = nil in the console 2015-12-11 12:05:00 -05:00
jacob1
bc112b54df initialize GoL variables, add sim.gspeed function 2015-10-10 00:03:04 -04:00
jacob1
9c44fc641c fix crash with sim.floodWalls(1,1,4,0) 2015-09-29 00:09:41 -04:00
jacob1
1f7b6a6bb4 fix wind line from lua changing brush size, allow setting wind tool strength 2015-09-28 23:53:14 -04:00
jacob1
cae8c9e095 fix some compile errors with last commit, remove snapshot version info from HUD and add to intro text instead, add tpt.version.snapshot 2015-09-26 14:56:37 -04:00
jacob1
13a71b611a more tptmp mouse fixes, fix buttons and menusection buttons staying highlighted sometimes 2015-09-22 19:59:31 -04:00
jacob1
16781bcb8e two new lua mouse up events (4 & 5) for some corner cases
Also fixes mouse held event being stuck in one of those cases
2015-09-20 21:40:00 -04:00
jacob1
bbdbb67079 fix tpt.brushx returning incorrect value when brush is updated with tpt.brushID 2015-09-19 20:01:53 -04:00
jacob1
f827e125cb fix sim.loadStamp / tptmp crash 2015-09-10 13:07:52 -04:00
jacob1
fee8516157 new function tpt.confirm (confirm prompt which returns true or false) 2015-09-08 01:27:20 -04:00
jacob1
476c2cce06 new sim.signs api
It is a metatable that can set/read text, x, y, and justification; and also read displayText, screenX, screenW, width, and height

There is also a function sim.signs.new, it returns the new sign id or nil if it can't create a new sign
2015-09-01 00:57:31 -04:00
jacob1
df854f72a6 only print 'Loaded autorun.lua' to screen (not to console/stdout.txt)
All the other debug output was already removed in earlier commits
2015-08-31 23:51:50 -04:00
jacob1
9048a3c50e new lua API: platform
you can get current OS / build information, exe name, restart tpt, open a link in the web browser, and use clipboard copy/paste functions

Also remove some older Platform.h file which wasn't really needed or used
2015-08-31 23:33:40 -04:00
jacob1
580b6101c4 fix interface.removeComponent being an alias for interface.addComponent 2015-06-29 16:25:39 -04:00
jacob1
fc5f3671f1 new function sim.clearRect, plus fix rounding errors breaking ctrl+x 2015-03-12 00:54:27 -04:00
jacob1
03e07945e3 fix lua element update bugs, fixes #244
also add new mode for functions run before the normal update function
2015-02-13 14:18:55 -05:00
jacob1
6cb78186be sim.framerender function to simulate a certain number of frames
also remove particle debugging lua function now that there are key shortcuts
2015-02-06 20:34:07 -05:00
jacob1
54d985f975 gcc warning fixes (up to lua files) 2015-01-16 17:26:13 -05:00
jacob1
3a52453561 move more stuff around, remove loop through particles to decrease life and put it in the pmap one instead (like in my mod) 2015-01-11 14:36:40 -05:00
jacob1
577ae3400f move some stuff around (without changes) in Simulation.cpp, add sim.updateParticles function 2015-01-11 13:17:18 -05:00
jacob1
dce874484a fix all the gcc warnings in the element files (except one in PSTN) + all the unused variable warnings 2015-01-10 22:43:33 -05:00
jacob1
e92bbac700 fix some lua crashes (use more argument checking) 2015-01-10 18:59:20 -05:00
jacksonmj
236ff08da9 Fix some problems noted in http://www.viva64.com/en/b/0298/
I've left some of the less important items, like SearchView.cpp "'then' statement is equivalent to the 'else' statement", and RequestBroker::Request::~Request, because I don't feel like spending a few days entirely rewriting those files at the moment (which is what I'd end up doing if I started fixing minor problems and refactoring...)

GameSave::readOPS - not changed. At some point we may have to move to a larger type for element IDs (probably two or four bytes), but PT_NUM isn't likely to be raised to the maximum value of that type immediately, so this check will be needed then. There should be an elements[partsData[i]].Enabled check in there too, but it might be a bit difficult - I'm not sure how to access a Simulation object from GameSave::readOPS...

Notes on changes:

Graphics::textsize, Element_FRZW::Element_FRZW - typos

Button::Draw - the extra case was originally used to invert the icon (draw it in black instead of in white) when the button was clicked. However, the icon colour is now automatically set depending on the background colour. (Note similar conditions "if(Enabled) { if(isButtonDown || (isTogglable && toggle)) " near the start of the function - same logic but in a different place, setting icon colour indirectly).

Simulation::transform_save - unused redundant function, everything uses GameSave::Transform which does much the same thing.

PreviewView::NotifySaveChanged - should be height==YRES/2, it's checking whether the preview image is the correct size, and resizing it if it isn't.

Element_FWRK::update - no idea why that line was there, even though it was my commit that originally added it...
2014-12-25 17:09:35 +00:00
jacob1
efaa32363f page textbox in browser (go to any page)
also fix page count (add one for front page), and make page count invisible until the saves actually load
2014-11-11 17:25:50 -05:00
jacob1
a801f0a0b4 allow lua mousepress event to cancel drawing, fixes #229 2014-11-06 20:06:45 -05:00
jacob1
7582acfb5c add sim.photons (like sim.pmap but for photons), sim.(part)neighbors also checks photons, fix sim.gravMap 2014-10-26 16:52:42 -04:00
jacob1
c16caed5dd fix level 1 msvc compiling warnings + initialize debugFlags 2014-10-08 00:15:51 -04:00
jacob1
925ff1da3c add lua5.2 support for no particular reason 2014-08-22 01:25:34 -04:00
jacob1
f8782338d7 make tpt.selected* and tpt.brushx/y writable (replaces simstate branch) 2014-08-19 02:01:31 -04:00
jacksonmj
c83945e281 Allow PHOT deco, in old saves only 2014-08-05 22:11:07 +01:00
jacob1
c44e734abe fix crashes when the selected element is NULL (via lua), add gfx.getHexColor (inverse of gfx.getColors) 2014-06-09 17:42:44 -04:00
jacob1
89ffa60529 New graphics api function: getColors, returns r, b, g, and a from a hex color
Also, remove generated/ and build/generated when using scons -c
2014-06-09 16:50:49 -04:00
jacksonmj
7b9f43b8bf Fix some missing return values 2014-05-23 00:00:54 +01:00
mniip
ecf1f0e391 backport lua code highlighting from my console 2014-05-06 01:16:55 +04:00
jacob1
5b67c8ce68 elem.property and elem.element can read Identifiers 2014-03-15 14:20:40 -04:00
jacob1
258aaedb0a add sim.reloadSave, tpt.selectedreplace 2014-03-13 14:44:39 -04:00
jacob1
3f65b47a5e small change to sim.partProperty 2014-03-10 17:20:50 -04:00
jacob1
21854df9f3 lots of random fixes to the legacy lua api 2014-03-04 20:44:25 -05:00
jacksonmj
a5ea6555f1 Fix more bugs in the Lua API
Crash with sim.partKill(large number).
sim.neighbours() looking for particles in completely the wrong place.
Impossible to tell from sim.partID whether a particle exists, since it returns 0 both if there is no particle there and if particle 0 is there.
2014-03-04 23:34:51 +00:00
mniip
4152bb560e Do not use loadstring to load autorun (who even wrote this?). Also print a message in case of successful autorun load 2014-03-04 15:26:35 +04:00
jacksonmj
64e16025d8 Fix bug in Lua API sim.neighbours() causing some particles to be missed out
Was excluding all particles with the same x or y as the centre instead of just the centre particle.
2014-03-03 22:42:21 +00:00
jacksonmj
224b25fae5 Fix Lua API sim.partNeighbours with 4 arguments 2014-03-03 20:09:35 +00:00
jacob1
d59253cfc7 fix sim.deleteStamp and sim.loadStamp (couldn't load/delete stamps with names like 530e908700) 2014-02-26 20:29:15 -05:00
nucular
8561976121 Fix (hopefully) most of the R/W errors inside the new Lua API 2014-02-22 10:13:09 -05:00
jacob1
71f90b5d59 new function: sim.deleteStamp
mostly for use in tpt multiplayer
2014-02-20 16:02:32 -05:00
mniip
a105ed9df8 Use system clock instead of used CPU time. Fixes key repeat and some
other stuff. close #206
2014-02-13 00:26:34 +04:00
jacob1
5b886fc51e boxmein: Added clipboard support to Lua 2014-01-29 17:57:18 -05:00
jacob1
f66679e551 a little reorganization (maybe more later) 2014-01-20 13:52:53 -05:00