The Virgin Suicide

We all know how, in the original Leisure Suit Larry, the title character would commit suicide if he didn't lose his virginity by sunrise. I even uploaded a video of this on YouTube.


But what causes this? When does it happen? Does sleeping with the prostitute prevent it? And can this happen in the VGA remake?

Well, let's look at the game's code, in any sidewalk room:

Code:
if (initLog)
    {
    if  (watchHours > 4 &&            [    Anything after 5 am.
        watchHours < 10)
        {
        NewRoom( rmSunrise);
        }
So we know that it happens at 5 AM, when entering any sidewalk room.
Contrary to popular belief, doing the deed with the prostitute does NOT remove this time limit, since the code doesn't check for that.

Also contrary to popular belief, this death DOES occur in the VGA remake. From script 700, sidewalk:init...
Code:
        (if (> (GameHour) 7)    ;anytime after 5 am
            (self setScript: virginScript)
        )
        ...
(instance virginScript of Script
    (method (changeState newState)
        (switch (= state newState)
            (0
                (= seconds 5)
            )
            (1
                (if (curRoom script?)
                    (= cycles 60)
                    (-- state)
                else
                    (HandsOff)
                    (ego setHeading: 180 self)
                )
            )
            (2
                (= cycles 3)
            )
            (3
                (LoadMany FONT giantFont)
                ;Oh, no! What's that? In the east! It's... it's... it's the sun!
                (Print
                    rgSidewalk 0
                    #at 15 -1
                    #width 280
                )
                ;Glancing at your watch, you realize the terrible truth.
                ;Your night in Lost Wages is over, and (technically speaking) you're still...
                (Print
                    rgSidewalk 1
                    #at 15 -1
                    #width 280
                )
                ;a
                (Print
                    rgSidewalk 2
                    #at 15 -1
                    #width 280
                )
                ;VIRGIN!!!
                (Print
                    rgSidewalk 3
                    #at 15 -1
                    #width 280
                    #font giantFont
                )
                (= seconds 3)
            )
            (4
                ;Larry is supposed to pull out a gun and shoots himself in the head,
                ;but the wrong view is used, and Larry just shrugs
                (ego
                    egoSpeed:
                    normal: 0
                    view: 811
                    setLoop: (if register 0 else 1)
                    setCel: 8
                    setCycle: EndLoop self
                )
            )
            (5
                (= seconds 3)
            )
            (6
                ;Larry's head smoldering
                (ShowDeathIcon 807 1)
                (Format @str1 rgSidewalk 4)
                ;Larry-cakes anyone?
                (EgoDead rgSidewalk 5)
                ;Life is no longer worth living!
            )
        )
    )
)
 
Back
Top