Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Game Lua, Unit testing, CmdParser, Polymorphic VM interface #84

Open
wants to merge 22 commits into
base: master
Choose a base branch
from

Conversation

wtfbbqhax
Copy link
Member

No description provided.

wtfbbqhax and others added 22 commits March 7, 2018 14:48
Game, Cgame, UI and Renderer modules

The public API allows modules to call directly into the engines
functions rather than bounce through the VM syscalls, and the renderer
exported interface.

The public API also includes the LUA_API interface.

The public API is denoted by SO_PUBLIC on function prototypes in header
files. Only these functions will be exported for use by plugin modules.
All other symbol visibility is now hidden by default.

To access renderer routines the CGame and UI call CL_GetRenderer()
which returns the refexport_t from the engine.

Game: Dropped QVM build support, only building dynamic modules using the
public API.

Begin integrating Lua into the game logic, interaction with gentity_t is
trivial with the binding in `g_lua.cpp`

external: Upgrade to Sol 2.19

build: Enable USE_CODEC_VORBIS by default, enabling OGG support in the
engine.
message

This is exact root of q3msgboom bug
http://aluigi.altervista.org/adv/q3msgboom-adv.txt Unfortunately, server
still need this ugly '1022 char limit' hack to support unfixed clients
in some degree.

And as it affects MSG_ReadBigString() - unfixed clients can still be
crashed by 8191-chars long configstrings that comes with gamestate
@wtfbbqhax
Copy link
Member Author

Demo's of Lua from console

Setting a rotation to the Reactor

Script

reactor = game.gentity_t.find(nil, 'team_human_reactor')
reactor:set_rotation(0, 360, 0)

Demo

https://www.youtube.com/watch?v=6l1MsDs7YyQ

Moving Reactor to a different location

Script

-- This script moves the Reactor into the position of an Acid tube.

reactor = game.gentity_t.find(nil, 'team_human_reactor')

ent = game.gentity_t.find(nil, 'team_alien_acid_tube')
ent.health = 0
ent.die(ent, ent, ent, 100, 0)

reactor.origin = ent.origin

reactor:link_entity()

Demo

https://www.youtube.com/watch?v=lM3b81REEPE

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants