Commit graph

207 commits

Author SHA1 Message Date
hendricks266
0a14982d4e Some recent cleanup changed uses of int32_t to int, but missed changing every function prototype. This is very bad when int != int32_t.
git-svn-id: https://svn.eduke32.com/eduke32@5979 1a8010ca-5511-0410-912e-c29ae57300e0
2017-01-01 13:23:29 +00:00
hendricks266
942964ec3d Implement "divscale" and "scalevar" (scale()) in C-CON and "scalevar" in M32script.
git-svn-id: https://svn.eduke32.com/eduke32@5901 1a8010ca-5511-0410-912e-c29ae57300e0
2016-10-20 06:26:10 +00:00
hendricks266
3ce371d84d C-CON: Implement "ifplaybackon" conditional, used by World Tour to determine if the replay feature is enabled. In our case, it is always false.
git-svn-id: https://svn.eduke32.com/eduke32@5893 1a8010ca-5511-0410-912e-c29ae57300e0
2016-10-14 07:40:41 +00:00
terminx
d7d6623364 More readability cleanup. DONT_BUILD.
git-svn-id: https://svn.eduke32.com/eduke32@5835 1a8010ca-5511-0410-912e-c29ae57300e0
2016-08-27 01:42:01 +00:00
terminx
52f678a743 Massive readability cleanup of game code part 1. DONT_BUILD.
git-svn-id: https://svn.eduke32.com/eduke32@5825 1a8010ca-5511-0410-912e-c29ae57300e0
2016-08-27 01:40:35 +00:00
hendricks266
0434a87e3a Remove trailing whitespace from anything we don't need to rebase from an upstream.
git-svn-id: https://svn.eduke32.com/eduke32@5768 1a8010ca-5511-0410-912e-c29ae57300e0
2016-06-05 04:46:28 +00:00
hendricks266
5ae7bd99f2 Lunatic: Fix build. BUILD_LUNATIC.
git-svn-id: https://svn.eduke32.com/eduke32@5755 1a8010ca-5511-0410-912e-c29ae57300e0
2016-05-23 04:47:22 +00:00
terminx
584b748897 Add CON_CLAMP
git-svn-id: https://svn.eduke32.com/eduke32@5728 1a8010ca-5511-0410-912e-c29ae57300e0
2016-05-13 22:15:37 +00:00
terminx
eaa2b90251 Implement CON_NEXTSECTORNEIGHBORZ
git-svn-id: https://svn.eduke32.com/eduke32@5616 1a8010ca-5511-0410-912e-c29ae57300e0
2016-02-07 02:38:32 +00:00
terminx
03b0335130 Implement Mapster32's CON_FOR into EDuke32.
git-svn-id: https://svn.eduke32.com/eduke32@5604 1a8010ca-5511-0410-912e-c29ae57300e0
2016-02-02 00:21:24 +00:00
terminx
3e82145e2c CON_MOVESECTOR. Triggers built-in sector movement routines... not really appropriate to use outside of EVENT_MOVEEFFECTORS.
git-svn-id: https://svn.eduke32.com/eduke32@5581 1a8010ca-5511-0410-912e-c29ae57300e0
2016-01-21 19:35:34 +00:00
terminx
ba80a5f35e First attempt at providing CON control of the internal sector animation system. Read the commit if you want to know how it works!
git-svn-id: https://svn.eduke32.com/eduke32@5569 1a8010ca-5511-0410-912e-c29ae57300e0
2016-01-21 19:34:56 +00:00
hendricks266
c1f67576a4 CON: Add userdef[].soundtoggle. Read-only.
git-svn-id: https://svn.eduke32.com/eduke32@5553 1a8010ca-5511-0410-912e-c29ae57300e0
2016-01-12 10:31:01 +00:00
terminx
31e89f12b2 Clean up a couple instances of direct usage of a magic number in the CON compiler. DONT_BUILD.
git-svn-id: https://svn.eduke32.com/eduke32@5534 1a8010ca-5511-0410-912e-c29ae57300e0
2016-01-11 05:05:10 +00:00
hendricks266
f403d6234c C-CON: Add ifvarge, ifvarle, and ifvarboth in line with ifvarvarge, ifvarvarle, and ifvarvarboth.
git-svn-id: https://svn.eduke32.com/eduke32@5530 1a8010ca-5511-0410-912e-c29ae57300e0
2016-01-08 01:33:39 +00:00
hendricks266
5d9b8a2bb1 C-CON: Clean up pointer handling in the parser so we have less to re-offset in C_SetScriptSize. Also fixes bugs in r5093 and/or r5097.
git-svn-id: https://svn.eduke32.com/eduke32@5521 1a8010ca-5511-0410-912e-c29ae57300e0
2016-01-08 01:33:01 +00:00
hendricks266
d3f9244d66 Remove -CONversion command line parameter, because it has been supplanted by r5499's automatic identifier masking.
git-svn-id: https://svn.eduke32.com/eduke32@5519 1a8010ca-5511-0410-912e-c29ae57300e0
2016-01-08 01:32:53 +00:00
terminx
748d9ac22f Alter VM_ScriptInfo() to take a ptr to the script to disassemble, and dump disassembly to the log at startup when an internal compiler error occurs.
git-svn-id: https://svn.eduke32.com/eduke32@5513 1a8010ca-5511-0410-912e-c29ae57300e0
2016-01-07 03:30:07 +00:00
terminx
14938ea5fd Add "klabs" keyword to CON, to take a gamevar and set it to its absolute value. The internal "inv" function to invert a gamevar's value has also been exposed externally.
git-svn-id: https://svn.eduke32.com/eduke32@5501 1a8010ca-5511-0410-912e-c29ae57300e0
2016-01-02 01:56:29 +00:00
terminx
01ebee280e Add commands added in previous commit to g_keywdate[], clean up a few CON compilation warning messages
git-svn-id: https://svn.eduke32.com/eduke32@5500 1a8010ca-5511-0410-912e-c29ae57300e0
2016-01-02 01:56:25 +00:00
terminx
7c976018be Adds the following keywords from M32script into CON: shiftvarvarl, shiftvarvarr, ifvarvarle, ifvarvarge, ifvarvarboth, whilevarl, and whilevarvarl.
This also adds the shorthand versions of some commands, like "set" for "setvarvar", "add" for "addvarvar", "ife" for "ifvarvare", etc. There are about 30 of these. Because some of these names may already be used in some projects as variable names, this revision also includes a somewhat large change in variable naming rules: gamevars may now have the same names as CON keywords, with the caveat that the masked keyword is no longer accessible. This results in a warning at compile time but should ensure nobody's project ever stops compiling due to the introduction of new keywords.

git-svn-id: https://svn.eduke32.com/eduke32@5499 1a8010ca-5511-0410-912e-c29ae57300e0
2016-01-02 01:56:20 +00:00
terminx
97c4b40ca2 Add vm_player, vm_sprite and vm_distance to get/setuserdef. This controls the sprite and player referenced by things like "THISACTOR", all of the "ifp" conditionals, per-actor gamevar access, etc. This is intended to be used to un-gimp things like EVENT_WORLD.
git-svn-id: https://svn.eduke32.com/eduke32@5489 1a8010ca-5511-0410-912e-c29ae57300e0
2015-12-23 04:06:20 +00:00
hendricks266
f69f1e73df CON: Add "defstate" token which functions identically as in M32script: synonymous with CON's "state" only at top-level (when defining a state). Useful for syntax highlighting.
git-svn-id: https://svn.eduke32.com/eduke32@5353 1a8010ca-5511-0410-912e-c29ae57300e0
2015-09-24 06:31:44 +00:00
hendricks266
ad94a8399c C-CON: Add userdef members "globalflags" and "globalgameflags", which control the values specified by the def commands of the same name.
git-svn-id: https://svn.eduke32.com/eduke32@5248 1a8010ca-5511-0410-912e-c29ae57300e0
2015-05-27 08:45:30 +00:00
helixhorned
1fc7e10843 savegame: fix g_tile[].proj memory leaks, halve number of projectile_t allocations.
git-svn-id: https://svn.eduke32.com/eduke32@5191 1a8010ca-5511-0410-912e-c29ae57300e0
2015-05-16 11:56:49 +00:00
hendricks266
5979378c4e CON: Add player[].index, which returns the player ID that you put in. Mostly useful to get the magic value of THISACTOR when applied to the player struct.
DONT_BUILD.

git-svn-id: https://svn.eduke32.com/eduke32@5165 1a8010ca-5511-0410-912e-c29ae57300e0
2015-04-26 00:07:57 +00:00
helixhorned
5683beec3d Do "typedef projectile_t defaultprojectile_t;" instead of having an indetical-member type.
Move projectile_t to player.h.

git-svn-id: https://svn.eduke32.com/eduke32@5159 1a8010ca-5511-0410-912e-c29ae57300e0
2015-04-18 21:59:21 +00:00
hendricks266
0bc349fde2 C-CON: Add two new structs, tiledata and paldata, accessible only through quick-access.
git-svn-id: https://svn.eduke32.com/eduke32@5115 1a8010ca-5511-0410-912e-c29ae57300e0
2015-03-30 05:56:37 +00:00
hendricks266
0adcc4a3f7 C-CON: Add read-only player structure member "hudpal", that returns the result of P_GetHudPal().
git-svn-id: https://svn.eduke32.com/eduke32@5099 1a8010ca-5511-0410-912e-c29ae57300e0
2015-03-27 12:29:24 +00:00
hendricks266
0805a0ed45 CON: Add token "appendevent", which functions identically to "onevent" except that the event's code is chained to the end of any previous events, instead of the beginning.
git-svn-id: https://svn.eduke32.com/eduke32@5093 1a8010ca-5511-0410-912e-c29ae57300e0
2015-03-25 21:31:11 +00:00
hendricks266
49c85f644d C-CON: Add quick access for the remaining structures without it.
git-svn-id: https://svn.eduke32.com/eduke32@5088 1a8010ca-5511-0410-912e-c29ae57300e0
2015-03-25 06:27:57 +00:00
hendricks266
5c8a2e3ea6 C-CON: Enumify quick structure access.
git-svn-id: https://svn.eduke32.com/eduke32@5087 1a8010ca-5511-0410-912e-c29ae57300e0
2015-03-25 06:27:42 +00:00
hendricks266
ab58a33ec6 Menus: Add a Cheats menu to options.
It's old-school.

git-svn-id: https://svn.eduke32.com/eduke32@5084 1a8010ca-5511-0410-912e-c29ae57300e0
2015-03-24 10:49:03 +00:00
terminx
c9ce545ab8 A lot of CON rewrites/optimizations. Converts projectile system to dynamic allocation, saving a bunch of memory (something like sizeof(projectile_t) * MAXTILES * 2). This commit also contains changes that reduce overhead for CON commands that take a lot of parameters, by way of adding a Gv_GetManyVars() to replace long strings of subsequent calls to Gv_GetVarX().
Savegame version has been bumped due to the projectile changes. There is no way this commit doesn't cause at least one bug, so DONT_BUILD. ;)

git-svn-id: https://svn.eduke32.com/eduke32@5080 1a8010ca-5511-0410-912e-c29ae57300e0
2015-03-24 00:40:55 +00:00
hendricks266
c86bd80dd7 C-CON: Add read-only userdef members "gametypeflags" and "m_gametypeflags", which return GametypeFlags[ud.coop] and GametypeFlags[ud.m_coop] respectively.
git-svn-id: https://svn.eduke32.com/eduke32@5044 1a8010ca-5511-0410-912e-c29ae57300e0
2015-03-08 07:57:28 +00:00
hendricks266
d7409a5a95 C-CON: Add read-only userdef members "usevoxels", "usehightile", and "usemodels".
git-svn-id: https://svn.eduke32.com/eduke32@5043 1a8010ca-5511-0410-912e-c29ae57300e0
2015-03-08 07:57:13 +00:00
hendricks266
b61908cbf3 CON: Add "resetplayerflags". Flag 1 means "don't ask the user if they want to load".
git-svn-id: https://svn.eduke32.com/eduke32@5039 1a8010ca-5511-0410-912e-c29ae57300e0
2015-03-04 02:15:15 +00:00
hendricks266
697e7d0936 CON: Add "definevolumeflags", currently equipped to hide an episode from the single player and/or multiplayer screens.
enum
{
    EF_HIDEFROMSP = 1<<0,
    EF_HIDEFROMMP = 1<<1,
};

git-svn-id: https://svn.eduke32.com/eduke32@5033 1a8010ca-5511-0410-912e-c29ae57300e0
2015-02-22 22:15:20 +00:00
hendricks266
afccb6d735 CON: Extend undefinevolume so that it also undefines all levels in the specified volume.
git-svn-id: https://svn.eduke32.com/eduke32@5032 1a8010ca-5511-0410-912e-c29ae57300e0
2015-02-22 22:14:54 +00:00
hendricks266
31c9d21b06 CON: Rename "cutscene" command to "startcutscene".
git-svn-id: https://svn.eduke32.com/eduke32@5031 1a8010ca-5511-0410-912e-c29ae57300e0
2015-02-22 22:14:39 +00:00
terminx
22ac21598b C-CON changes
git-svn-id: https://svn.eduke32.com/eduke32@4988 1a8010ca-5511-0410-912e-c29ae57300e0
2015-02-11 05:22:11 +00:00
terminx
50c30ab790 Animation system overhaul part 1. This allows for an unlimited number of .anm/.ivf files to be defined via duke3d.def and played back at any time with the new CON commands. Syntax is currently as follows, but may change:
cutscene "somefile.anm" { delay 10 } // defines somefile.anm with a delay of 10 120Hz tics between frames. a more typical framerate method may come later, but this is how the originals worked.

Once defined, they can be played through CON with the new playback command, also called "cutscene". It works like this:

definequote 12345 somefile.anm
define ANIM_SOMEFILE 12345

...

cutscene ANIM_SOMEFILE // halts game execution and immediately plays cutscene, resuming execution when finished

...

Sounds can be played during animations (and tiles can be overlaid, etc) like this:

onevent EVENT_CUTSCENE
    ifcutscene ANIM_SOMEFILE
    {
        ifvare RETURN 12 // frame 12
            sound FLY_BY
        rotatesprite ...
    }
endevent

The value of the RETURN var at the end of EVENT_CUTSCENE determines the next frame to play. This can be used for looping, etc. Attempting to play animations backwards outright is not advised as animations only seek in one direction (so rewinding requires running it through from frame 0 again). This is will WIP and hasn't been heavily tested at all, so please try it out.

git-svn-id: https://svn.eduke32.com/eduke32@4987 1a8010ca-5511-0410-912e-c29ae57300e0
2015-02-11 05:22:07 +00:00
hendricks266
929b04d473 CON: Add undefinevolume, undefineskill, and undefinelevel.
git-svn-id: https://svn.eduke32.com/eduke32@4977 1a8010ca-5511-0410-912e-c29ae57300e0
2015-02-09 05:50:33 +00:00
hendricks266
e8f842ac28 CON: Add read-only access to ud.config.MusicToggle through the "musictoggle" member.
git-svn-id: https://svn.eduke32.com/eduke32@4970 1a8010ca-5511-0410-912e-c29ae57300e0
2015-02-08 08:04:09 +00:00
hendricks266
b355d75ab3 CON: Add STR_YOURTIME, STR_PARTIME, STR_DESIGNERTIME, and STR_BESTTIME to qgetsysstr.
git-svn-id: https://svn.eduke32.com/eduke32@4969 1a8010ca-5511-0410-912e-c29ae57300e0
2015-02-08 08:03:50 +00:00
hendricks266
d7f846d0b6 Factor out generation of strings for time values in the bonus screen. This involves the creation of ud.playerbest.
git-svn-id: https://svn.eduke32.com/eduke32@4968 1a8010ca-5511-0410-912e-c29ae57300e0
2015-02-08 08:03:30 +00:00
hendricks266
93a3ff34e8 Add events EVENT_DISPLAYINACTIVEMENU and EVENT_DISPLAYINACTIVEMENUREST and userdef members m_origin_x and m_origin_y.
This allows for CON screen display code to use menu animations. The following is an example of how to adapt screen features that should animate.

before:

onevent EVENT_DISPLAYMENUREST
    ifvare current_menu 0 // main menu
    {
        setvar x 1
        setvar y 1
        rotatesprite x y zoom ang tilenum shade pal orientation 0 0 xdim ydim
    }
endevent

after:

state DisplayMenuCommon
    ifvare RETURN 0 // main menu
    {
        getuserdef[THISACTOR].m_origin_x x
        getuserdef[THISACTOR].m_origin_y y
        addvar x 65536
        addvar y 65536
        rotatesprite16 x y zoom ang tilenum shade pal orientation 0 0 xdim ydim
    }
ends

onevent EVENT_DISPLAYMENUREST state DisplayMenuCommon endevent
onevent EVENT_DISPLAYINACTIVEMENUREST state DisplayMenuCommon endevent

git-svn-id: https://svn.eduke32.com/eduke32@4945 1a8010ca-5511-0410-912e-c29ae57300e0
2015-01-25 12:16:58 +00:00
hendricks266
011fd40dda CON: Add new commands "getmusicposition" and "setmusicposition" that operate on the playback position of the current music track.
// Example: Switch between tracks like radio stations.
 getmusicposition temp
 starttrackvar next_music_track
 setmusicposition temp

Only implemented for Ogg Vorbis, FLAC, and XA. Consult the devs before using these commands.

git-svn-id: https://svn.eduke32.com/eduke32@4928 1a8010ca-5511-0410-912e-c29ae57300e0
2015-01-17 00:28:49 +00:00
terminx
364cf15c4f Questionable CON changes and optimizations. <3
git-svn-id: https://svn.eduke32.com/eduke32@4902 1a8010ca-5511-0410-912e-c29ae57300e0
2015-01-11 04:56:10 +00:00
hendricks266
9268b9f0b6 Make a bunch of things extern "C". This should fix C++ builds on OS X and with Lunatic. DONT_BUILD.
git-svn-id: https://svn.eduke32.com/eduke32@4766 1a8010ca-5511-0410-912e-c29ae57300e0
2014-11-26 04:39:23 +00:00