diff options
author | Eugene Sandulenko | 2016-07-12 12:39:21 +0200 |
---|---|---|
committer | Eugene Sandulenko | 2016-08-03 23:40:36 +0200 |
commit | d08e030da65717479aa7640458066a00ff541c72 (patch) | |
tree | 6a349787ade1e00eaf2784b7145e96b3b627ba7c /engines/director/lingo/lingo-gr.y | |
parent | 9763b62a78ba51b328fe336926a40fa0ffdde0be (diff) | |
download | scummvm-rg350-d08e030da65717479aa7640458066a00ff541c72.tar.gz scummvm-rg350-d08e030da65717479aa7640458066a00ff541c72.tar.bz2 scummvm-rg350-d08e030da65717479aa7640458066a00ff541c72.zip |
DIRECTOR: Lingo: Implement setting the entity fields
Diffstat (limited to 'engines/director/lingo/lingo-gr.y')
-rw-r--r-- | engines/director/lingo/lingo-gr.y | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/engines/director/lingo/lingo-gr.y b/engines/director/lingo/lingo-gr.y index cc0d1fdfb7..9a374d0d0d 100644 --- a/engines/director/lingo/lingo-gr.y +++ b/engines/director/lingo/lingo-gr.y @@ -135,6 +135,14 @@ asgn: tPUT expr tINTO ID { WRITE_UINT32(&f, $2[1]); g_lingo->code2(e, f); $$ = $4; } + | tSET THEENTITYWITHID expr '=' expr { + g_lingo->code1(g_lingo->c_swap); + g_lingo->code1(g_lingo->c_theentityassign); + inst e = 0, f = 0; + WRITE_UINT32(&e, $2[0]); + WRITE_UINT32(&f, $2[1]); + g_lingo->code2(e, f); + $$ = $5; } | tSET ID tTO expr { g_lingo->code1(g_lingo->c_varpush); g_lingo->codeString($2->c_str()); @@ -149,6 +157,14 @@ asgn: tPUT expr tINTO ID { WRITE_UINT32(&f, $2[1]); g_lingo->code2(e, f); $$ = $4; } + | tSET THEENTITYWITHID expr tTO expr { + g_lingo->code1(g_lingo->c_swap); + g_lingo->code1(g_lingo->c_theentityassign); + inst e = 0, f = 0; + WRITE_UINT32(&e, $2[0]); + WRITE_UINT32(&f, $2[1]); + g_lingo->code2(e, f); + $$ = $5; } ; stmtoneliner: expr { g_lingo->code1(g_lingo->c_xpop); } | func |