From dee1904af094002c566e99d79097dd82cffd28fb Mon Sep 17 00:00:00 2001 From: Jeremy Penner Date: Wed, 9 Feb 2011 21:48:21 -0800 Subject: [PATCH] add undo --- iffy.coffee | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/iffy.coffee b/iffy.coffee index 98445a4..d6e98d2 100644 --- a/iffy.coffee +++ b/iffy.coffee @@ -386,11 +386,19 @@ class ActorPlayer constructor: (@story) -> @mpnevID_rgnev = {} RespondTo: (nev, nevResponse) -> + nevResponse.player_nevIDRespondedTo = nev.ID(); rgnev = @mpnevID_rgnev[nev.ID()] if rgnev? rgnev.push(nevResponse) else @mpnevID_rgnev[nev.ID()] = [nevResponse] + RemoveResponse: (nevResponse) -> + rgnev = @mpnevID_rgnev[nevResponse.player_nevIDRespondedTo] + for nev, inev in rgnev + if nev.ID() == nevResponse.ID() + rgnev.splice(inev, 1) + break + FWillAttempt: (wst, nev) -> rgnev = @mpnevID_rgnev[wst.nev.ID()] if rgnev? @@ -403,8 +411,14 @@ class ActorPlayer if rgnev? then new EniArray(rgnev) else EniEmpty FilterStHtml: (stHtml, wst) -> - TemplateFromStNev(stHtml, wst)(wst) - + stHtmlNew = TemplateFromStNev(stHtml, wst)(wst) + if (wst.nev.player_nevIDRespondedTo?) + stId = wst.gst.RegOnClick(() => @RemoveResponse(wst.nev); wst.gst.Display()) + stHtmlNew = "
#{stHtmlNew}
" + + "
Undo
" + stHtmlNew + + class Story constructor: (@jStory) -> @actorPlayer = new ActorPlayer(this)