Skip to content

dish.jsでのgosub-return #71

Description

@zakki

以前Xでhsp3dish.jsについてのポストでgosubの挙動が違うという話がありました。
jsだとgosubから値をreturn出来る場合と出来ない場合があります。

#include "hsp3dish.as"
	num = 0
*main
	redraw 0
	color 0,0,0:boxf
	color 255,255,255:pos 0,0:mes "count: " + num

	gosub *foo
	mes "top:" + stat
	
	sub

	redraw 1
	await 33

	goto *main

#deffunc sub
	gosub *foo
	mes "in-func:" + stat
	return 

*foo
    num += 1
    return num \ 10

恐らくこのあたりだと思うのですが、経緯が思い当たらなくて単に無くして大丈夫なのかが分かりません。

OpenHSP/src/hsp3/hsp3code.cpp

Lines 2064 to 2070 in 3dbb872

case 0x02: // return
#ifdef HSPEMSCRIPTEN
if ( hspctx->prmstack != NULL ) cmdfunc_return_setval();
#else
if ( exflg == 0 ) cmdfunc_return_setval();
#endif
//return cmdfunc_return();

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions