Exemple #1
0
    TRef<IObject> Apply(ObjectStack& stack)
    {
        TRef<Image>       pimage;        CastTo(pimage,        (Value*)(IObject*)stack.Pop());
        TRef<Number>      pnumberFaces;  CastTo(pnumberFaces,  (IObject*)stack.Pop());
        bool              bActAsTabs = false;

        TVector<int> m_vecColumns;
        ParseIntVector((IObject*)stack.Pop(), m_vecColumns);

        if (stack.GetCount() > 0)
        {
            TRef<Boolean>  pbooleanActAsTabs;  CastTo(pbooleanActAsTabs, (IObject*)stack.Pop());
            bActAsTabs = pbooleanActAsTabs->GetValue();
        }

        TRef<ButtonBarPane> pbuttonbar = 
            CreateButtonBarPane(
                pimage->GetSurface(),
                (DWORD)pnumberFaces->GetValue(),
                m_vecColumns,
                bActAsTabs
            );
    
        pbuttonbar->GetMouseEnterWhileEnabledEventSource()->AddSink(new SoundIDEventSink(mouseoverSound));
        pbuttonbar->GetEventSource()->AddSink(new SoundIDEventSink(mouseclickSound));

        return pbuttonbar;
    }
Exemple #2
0
    TRef<IObject> Apply(ObjectStack& stack)
    {
        TRef<PointValue> ppointFace; CastTo(ppointFace, (IObject*)stack.Pop());
        TRef<PointValue> ppoint;     CastTo(ppoint,     (IObject*)stack.Pop());
        TRef<FontValue>  pfont;      CastTo(pfont,      (IObject*)stack.Pop());
        TRef<ColorValue> pcolor;     CastTo(pcolor,     (IObject*)stack.Pop());

        TRef<ComboPane> pcombo =
            CreateComboPane(
                m_pmodeler,
                m_ppopupContainer,
                pfont->GetValue(),
                WinPoint::Cast(ppoint->GetValue()),
                CreateStringComboFacePane(
                    WinPoint::Cast(ppointFace->GetValue()),
                    pfont->GetValue(),
                    pcolor->GetValue(),
                    true
                )
            );

        pcombo->GetMouseEnterWhileEnabledEventSource()->AddSink(new SoundIDEventSink(mouseoverSound));
        pcombo->GetMenuSelectEventSource()->AddSink(new SoundIDEventSink(mouseclickSound));

        return pcombo;
    }
    TRef<IObject> Apply(ObjectStack& stack)
    {
        TRef<ColorValue> pcolor = ColorValue::Cast((IObject*)stack.Pop());
        TRef<Image>      pimage =      Image::Cast((Value*)(IObject*)stack.Pop());

        return (Value*)CreateBlendColorImage(pimage, pcolor);
    }
Exemple #4
0
    TRef<IObject> Apply(ObjectStack& stack)
    {
        TRef<Number>      pnumber; CastTo(pnumber, (IObject*)stack.Pop());
        TRef<IObjectList> plist;   CastTo(plist,   (IObject*)stack.Pop());

        TRef<SwitchValuePane> ppane = new SwitchValuePane(pnumber);

        plist->GetFirst();
        while (plist->GetCurrent() != NULL)  {
            IObjectPair* ppair; CastTo(ppair, plist->GetCurrent());

            TRef<Pane>   ppaneChild;  CastTo(ppaneChild, (Pane*)ppair->GetFirst());
            TRef<Number> pnumberChildID = Number::Cast(ppair->GetSecond());

            ppane->InsertPane(ppaneChild, (int)pnumberChildID->GetValue());

            plist->GetNext();
        }

        if (stack.GetCount() > 0) {
            TRef<Pane>   ppaneDefault;  CastTo(ppaneDefault, (Pane*)(IObject*)stack.Pop());

            ppane->SetDefaultPane(ppaneDefault);
        }

        return (Pane*)ppane;
    }
    TRef<IObject> Apply(ObjectStack& stack)
    {
        TRef<Number>         pnumGain;    CastTo(pnumGain, (IObject*)stack.Pop());
        TRef<ISoundTemplate> ptemplateBase; CastTo(ptemplateBase, (IObject*)stack.Pop());

        ZAssert(pnumGain && ptemplateBase);

        return new SoundGainValueTemplate(ptemplateBase, pnumGain);
    }
    TRef<IObject> Apply(ObjectStack& stack)
    {
        TRef<Number>         pnumMinDist; CastTo(pnumMinDist, (IObject*)stack.Pop());
        TRef<ISoundTemplate> ptemplateBase; CastTo(ptemplateBase, (IObject*)stack.Pop());
        TRef<ISoundTemplate> pTemplate;

        ZSucceeded(Create3DSoundTemplate(pTemplate, ptemplateBase, pnumMinDist->GetValue()));

        return pTemplate;
    }
    TRef<IObject> Apply(ObjectStack& stack)
    {
        TRef<IDiskPlayer>    pdiskPlayer; CastTo(pdiskPlayer, (IObject*)stack.Pop());
        TRef<Number>         pnumTrack;   CastTo(pnumTrack, (IObject*)stack.Pop());
        TRef<ISoundTemplate> pTemplate;

        ZSucceeded(CreateRedbookSoundTemplate(pTemplate, pdiskPlayer, (int)pnumTrack->GetValue()));

        return pTemplate;
    }
Exemple #8
0
    TRef<IObject> Apply(ObjectStack& stack)
    {
        //TRef<RectValue> prect  = RectValue::Cast((IObject*)stack.Pop());
		TRef<Image>   pimage               = Image::Cast((Value*)(IObject*)stack.Pop());
		TRef<Boolean> pbooleanShowDetails  = Boolean::Cast((IObject*)stack.Pop());
		TRef<Boolean> pbooleanShowSide     = Boolean::Cast((IObject*)stack.Pop());

        return (Pane*)
            new MapPreviewPane(m_pmodeler,pimage,pbooleanShowDetails->GetValue(),pbooleanShowSide->GetValue());
    }
    TRef<IObject> Apply(ObjectStack& stack)
    {
        TRef<Number>         pnumPeriod;        CastTo(pnumPeriod, (IObject*)stack.Pop());
        TRef<Boolean>        pboolPlayMultiple; CastTo(pboolPlayMultiple, (IObject*)stack.Pop());
        TRef<ISoundTemplate> ptemplateBase;     CastTo(ptemplateBase, (IObject*)stack.Pop());
        TRef<ISoundTemplate> pTemplate;

        ZSucceeded(CreateIntermittentSoundTemplate(pTemplate, ptemplateBase, 
            pnumPeriod->GetValue(), pboolPlayMultiple->GetValue()));

        return pTemplate;
    }
Exemple #10
0
    TRef<IObject> Apply(ObjectStack& stack)
    {
        TVector<int> m_vecColumns;
        ParseIntVector((IObject*)stack.Pop(), m_vecColumns);
		
		TVector<ZString> m_vecColumnsNames;
        ParseStringVector((IObject*)stack.Pop(), m_vecColumnsNames);

        TRef<Number>      pnumberFaces;  CastTo(pnumberFaces,  (IObject*)stack.Pop());
        bool              bActAsTabs = false;

        if (stack.GetCount() > 0)
        {
            TRef<Boolean>  pbooleanActAsTabs;  CastTo(pbooleanActAsTabs, (IObject*)stack.Pop());
            bActAsTabs = pbooleanActAsTabs->GetValue();
        }

        TRef<ButtonBarPane> pbuttonbar = 
            CreateButtonBarPane(bActAsTabs,false);

		int count = m_vecColumns.GetCount();
		int xprev = 0;

		for (int index = 0; index < count; index++) {
			int x = m_vecColumns[index];

			WinPoint p = TrekResources::SmallFont()->GetTextExtent(m_vecColumnsNames[index]);

			TRef<StringPane> s1 = new StringPane(
									m_vecColumnsNames[index],
									TrekResources::SmallFont(),
									WinPoint(x-xprev,p.Y()),
									JustifyLeft());
			TRef<StringPane> s2 = new StringPane(
									m_vecColumnsNames[index],
									TrekResources::SmallBoldFont(),
									WinPoint(x-xprev,p.Y()),
									JustifyLeft());
			s1->SetOpaque(true);
			s1->SetTextColor(Color::White());
			s2->SetOpaque(true);
			s2->SetTextColor(Color::Yellow());

			pbuttonbar->InsertButton(CreateButton(CreateButtonFacePane(s1,s2)),index);

			xprev = x;
		}
    
        pbuttonbar->GetMouseEnterWhileEnabledEventSource()->AddSink(new SoundIDEventSink(mouseoverSound));
        pbuttonbar->GetEventSource()->AddSink(new SoundIDEventSink(mouseclickSound));

        return pbuttonbar;
    }
    TRef<IObject> Apply(ObjectStack& stack)
    {
        TRef<Number>         pnumLoopStart; CastTo(pnumLoopStart, (IObject*)stack.Pop());
        TRef<Number>         pnumLoopLength; CastTo(pnumLoopLength, (IObject*)stack.Pop());
        TRef<ISoundTemplate> ptemplateBase; CastTo(ptemplateBase, (IObject*)stack.Pop());
        TRef<ISoundTemplate> pTemplate;

        ZSucceeded(CreateASRSoundTemplate(pTemplate, ptemplateBase, 
            pnumLoopStart->GetValue(), pnumLoopLength->GetValue()));

        return pTemplate;
    }
    TRef<IObject> Apply(ObjectStack& stack)
    {
        TRef<Number>         pnumInnerAngle; CastTo(pnumInnerAngle, (IObject*)stack.Pop());
        TRef<Number>         pnumOuterAngle; CastTo(pnumOuterAngle, (IObject*)stack.Pop());
        TRef<Number>         pnumOuterGain; CastTo(pnumOuterGain, (IObject*)stack.Pop());
        TRef<ISoundTemplate> ptemplateBase; CastTo(ptemplateBase, (IObject*)stack.Pop());
        TRef<ISoundTemplate> pTemplate;

        ZSucceeded(CreateSoundConeTemplate(pTemplate, ptemplateBase, 
            pnumInnerAngle->GetValue(), pnumOuterAngle->GetValue(), pnumOuterGain->GetValue()));

        return pTemplate;
    }
    TRef<IObject> Apply(ObjectStack& stack)
    {
        TRef<ISoundMutex>    pmutex;              CastTo(pmutex, (IObject*)stack.Pop());
        TRef<Number>         pnumTimeout;         CastTo(pnumTimeout, (IObject*)stack.Pop());
        TRef<Number>         pnumPriority;        CastTo(pnumPriority, (IObject*)stack.Pop());
        TRef<Boolean>        pboolSingleInstance; CastTo(pboolSingleInstance, (IObject*)stack.Pop());
        TRef<ISoundTemplate> ptemplateBase;       CastTo(ptemplateBase, (IObject*)stack.Pop());
        TRef<ISoundTemplate> pTemplate;

        ZSucceeded(CreateSerializedSoundTemplate(pTemplate, ptemplateBase, pmutex,
            pnumTimeout->GetValue(), pnumPriority->GetValue(), pboolSingleInstance->GetValue()));

        return pTemplate;
    }
    TRef<IObject> Apply(ObjectStack& stack)
    {
        TRef<Number>         pnumRepeatRate; CastTo(pnumRepeatRate, (IObject*)stack.Pop());
        TRef<ISoundTemplate> ptemplateBase; CastTo(ptemplateBase, (IObject*)stack.Pop());
        TRef<ISoundTemplate> pTemplate;

        if (ZFailed(CreateRepeatingFireSoundTemplate(pTemplate, ptemplateBase, pnumRepeatRate->GetValue())))
        {
            // Fail over to a dummy sound template
            ZSucceeded(CreateDummySoundTemplate(pTemplate));
        }

        return pTemplate;
    }
    TRef<IObject> Apply(ObjectStack& stack)
    {
        TRef<FontValue>  pfontTitles; CastTo(pfontTitles, (IObject*)stack.Pop());
        TRef<FontValue>  pfontTime;   CastTo(pfontTime,   (IObject*)stack.Pop());
        TRef<ButtonPane> pbutton;     CastTo(pbutton,     (IObject*)stack.Pop());

        return 
            CreateGameStateContainer(
                m_pmodeler,
                pfontTitles->GetValue(),
                pfontTime->GetValue(),
                pbutton
            );
    }
Exemple #16
0
    TRef<IObject> Apply(ObjectStack& stack)
    {
        TRef<StringValue> pstring; CastTo(pstring, (IObject*)stack.Pop());
        TRef<ColorValue>  pcolor;  CastTo(pcolor, (IObject*)stack.Pop());

        TRef<PointValue> ppointSize;
        WinPoint ptSize;
        if (stack.GetCount() > 0)
            {
            CastTo(ppointSize, (IObject*)stack.Pop());
            ptSize = WinPoint(
                (int)ppointSize->GetValue().X(),
                (int)ppointSize->GetValue().Y()
                );
            }

        Justification justification = JustifyLeft();
        if (stack.GetCount() > 0)
        {
            TRef<Number> pjustify = Number::Cast((IObject*)stack.Pop());
            justification.SetWord((DWORD)pjustify->GetValue());
        }

        TRef<IEngineFont> pfont = TrekResources::SmallFont();

        if (stack.GetCount() > 0)
        {
            TRef<FontValue> pfontLocal;  CastTo(pfontLocal,  (IObject*)stack.Pop());
            pfont = pfontLocal->GetValue();
        }

        bool bRightClip = false;
        if (stack.GetCount() > 0)
            bRightClip = GetBoolean((IObject*)stack.Pop());

        TRef<StringValuePane> ppane;

        if (ppointSize)
        {
            if (bRightClip)
                justification = JustifyLeftClipRight();

            ppane = new StringValuePane(pstring, pcolor, pfont, ptSize, justification);
        }
        else
            ppane = new StringValuePane(pstring, pcolor, pfont);

        return (Pane*)ppane;
    }
Exemple #17
0
TRef<IObject> SelectModelPaneFactory::Apply(ObjectStack& stack)
{
    TRef<Pane>      ppaneChild;  CastTo(ppaneChild, (IObject*)stack.Pop());
    TRef<ModelData> pmodelData;  CastTo(pmodelData, (IObject*)stack.Pop());

    return (Pane*)new SelectModelPane(ppaneChild, pmodelData);
}
    TRef<IObject> Apply(ObjectStack& stack)
    {
        TRef<FrameDataListValue> plistValue = new FrameDataListValue();

        TRef<IObjectList> plist;
        CastTo(plist, (IObject*)stack.Pop());

        while (plist->GetCurrent()) {
            IObjectPair* ppair;
            CastTo(ppair, plist->GetCurrent());

            ZString strName     = GetString(ppair->GetNth(0));
            Vector  vecPosition = GetVector(ppair->GetNth(1));
            Vector  vecForward  = GetVector(ppair->GetNth(2));
            Vector  vecUp       = GetVector(ppair->GetLastNth(3));

            plistValue->GetList().PushEnd(
                FrameData(
                    strName,
                    vecPosition,
                    vecForward,
                    vecUp
                )
            );

            plist->GetNext();
        }

        return plistValue;
    }
    TRef<IObject> Apply(ObjectStack& stack)
    {
        TRef<GameStateContainer> pgsc;
        CastTo(pgsc, (IObject*)stack.Pop());

        return (Value*)pgsc->GetImage();
    }
    TRef<IObject> Apply(ObjectStack& stack)
    {
        TRef<LightsGeo> plights = new LightsGeo(m_pmodeler, m_ptime);

        TRef<IObjectList> plist;
        CastTo(plist, (IObject*)stack.Pop());

        while (plist->GetCurrent() != NULL) {
            IObjectPair* ppair;
            CastTo(ppair, plist->GetCurrent());

            Color  color    =  GetColor(ppair->GetNth(0));
            Vector vector   = GetVector(ppair->GetNth(1));
            float  period   = GetNumber(ppair->GetNth(2));
            float  phase    = GetNumber(ppair->GetNth(3));
            float  rampUp   = GetNumber(ppair->GetNth(4));
            float  hold     = GetNumber(ppair->GetNth(5));
            float  rampDown = GetNumber(ppair->GetLastNth(6));

            plights->AddLight(color, vector, period, phase, rampUp, hold, rampDown);

            plist->GetNext();
        }

        return plights;
    }
    TRef<IObject> Apply(ObjectStack& stack)
    {
        TRef<ISoundTemplate> ptemplateBase; CastTo(ptemplateBase, (IObject*)stack.Pop());
        TRef<ISoundTemplate> pTemplate;

        ZSucceeded(CreateLoopingSoundTemplate(pTemplate, ptemplateBase));

        return pTemplate;
    }
Exemple #22
0
    TRef<IObject> Apply(ObjectStack& stack)
    {
        TRef<Image>        pimage;       CastTo(pimage, (Value*)(IObject*)stack.Pop());
        TRef<Number>       pnumberFaces; CastTo(pnumberFaces, (IObject*)stack.Pop());
        TRef<Boolean>      pboolToggle;  CastTo(pboolToggle,  (IObject*)stack.Pop());

        DWORD dwFaces = (DWORD)pnumberFaces->GetValue();

        return
            CreateTrekButton(
                CreateButtonFacePane(
                    pimage->GetSurface(),
                    dwFaces
                ),
                pboolToggle->GetValue(),
                (dwFaces & ButtonFaceCheckedDown) ? mouseclickSound : positiveButtonClickSound
            );
    }
Exemple #23
0
    TRef<IObject> Apply(ObjectStack& stack)
    {
        TRef<Image>  pimage     = Image::Cast((Value*)(IObject*)stack.Pop());
        TRef<Number> pnumber;     CastTo(pnumber, (IObject*)stack.Pop());
        Color        colorFlash = GetColor((IObject*)stack.Pop());
        Color        colorEmpty = GetColor((IObject*)stack.Pop());

        TRef<GaugeValuePane> ppane =
            new GaugeValuePane(
                pimage->GetSurface(), 
                pnumber,
                GetWindow()->GetTime(),
                colorFlash,
                colorEmpty
            );

        return (Pane*)ppane;
    }
Exemple #24
0
TRef<IObject> ChatListPaneFactory::Apply(ObjectStack& stack)
{
    TRef<PointValue>  ppointSize; CastTo(ppointSize, stack.Pop());
    return (Pane*)new ChatListPaneImpl(
                WinPoint(
                    (int)ppointSize->GetValue().X(),
                    (int)ppointSize->GetValue().Y()
                    )
                );                    
}
    TRef<IObject> Apply(ObjectStack& stack)
    {
        TRef<ISoundTemplate> ptemplateBase1; CastTo(ptemplateBase1, (IObject*)stack.Pop());
        TRef<ISoundTemplate> ptemplateBase2; CastTo(ptemplateBase2, (IObject*)stack.Pop());
        TRef<ISoundTemplate> pTemplate;

        ZSucceeded(CreatePairedSoundTemplate(pTemplate, ptemplateBase1, ptemplateBase2));

        return pTemplate;
    }
Exemple #26
0
    TRef<IObject> Apply(ObjectStack& stack)
    {
        TRef<Image>     pimage; CastTo(pimage, (Value*)(IObject*)stack.Pop());
        TRef<FontValue> pfont;  CastTo(pfont,  (IObject*)stack.Pop());

        TRef<ComboPane> pcombo =
            CreateComboPane(
                m_pmodeler,
                m_ppopupContainer,
                pfont->GetValue(),
                WinPoint(0, 0),
                CreateImageComboFacePane(pimage)
            );

        pcombo->GetMouseEnterWhileEnabledEventSource()->AddSink(new SoundIDEventSink(mouseoverSound));
        pcombo->GetMenuSelectEventSource()->AddSink(new SoundIDEventSink(mouseclickSound));

        return pcombo;
    }
Exemple #27
0
    TRef<IObject> Apply(ObjectStack& stack)
    {
        TRef<Image>        pimage;       CastTo(pimage, (Value*)(IObject*)stack.Pop());
        TRef<Number>       pnumberFaces; CastTo(pnumberFaces, (IObject*)stack.Pop());
        TRef<Boolean>      pboolToggle;  CastTo(pboolToggle,  (IObject*)stack.Pop());
        TRef<Number>       pnumberClickSoundId; CastTo(pnumberClickSoundId, (IObject*)stack.Pop());

        TRef<ButtonPane> pbutton = 
            CreateButton(
                CreateButtonFacePane(
                    pimage->GetSurface(),
                    (DWORD)pnumberFaces->GetValue()
                ),
                pboolToggle->GetValue()
            );
    
        pbutton->GetMouseEnterWhileEnabledEventSource()->AddSink(new SoundIDEventSink(mouseoverSound));
        pbutton->GetEventSource()->AddSink(new SoundIDEventSink((SoundID)pnumberClickSoundId->GetValue()));
		//pbutton->GetRightEventSource()->AddSink(new SoundIDEventSink((SoundID)pnumberClickSoundId->GetValue())); //Imago NYI 7/10/09

        return pbutton;
    }
    TRef<IObject> Apply(ObjectStack& stack)
    {
        TRef<IObjectList> plist; CastTo(plist, (IObject*)stack.Pop());
        TRef<IRandomSoundTemplate> pTemplate;

        ZSucceeded(CreateRandomSoundTemplate(pTemplate));

        plist->GetFirst();

        while (plist->GetCurrent() != NULL) {
            IObjectPair*      ppair;       CastTo(ppair,       plist->GetCurrent());
            TRef<ISoundTemplate>    ptemplateBase;  CastTo(ptemplateBase,  ppair->GetFirst()  );
            TRef<Number>            pnumWeight; CastTo(pnumWeight, ppair->GetSecond() );

            ZSucceeded(pTemplate->AddSoundTemplate(ptemplateBase, pnumWeight->GetValue()));

            plist->GetNext();
        }

        return pTemplate;
    }
    TRef<IObject> Apply(ObjectStack& stack)
    {
        TRef<StringValue> pstring; CastTo(pstring, (IObject*)stack.Pop());
        TRef<ISoundTemplate> pTemplate;

		// mdvalley: Look for files in this order: Soundpack WAV, Soundpack OGG, Artwork WAV, Artwork OGG
        // pkk: Removed SoundPack support, Allegiance no longer looking for files in a not existing folder
		// Load wave from artwork directory
        ZString strFilename = m_pmodeler->GetArtPath() + "\\..\\" + pstring->GetValue() + ".wav";
		
		if (!FileExists(strFilename))
		{
		    // Load ogg file, if wave file doesn't exisits
			strFilename = m_pmodeler->GetArtPath() + "\\" + pstring->GetValue() + ".ogg";
		}
		
        if (FAILED(CreateWaveFileSoundTemplate(pTemplate, strFilename)))
        {
            // Fail over to a dummy sound template
            ZSucceeded(CreateDummySoundTemplate(pTemplate));
        }

        return pTemplate;
    }
Exemple #30
0
TRef<IObject> SelectionPaneFactory::Apply(ObjectStack& stack)
{
    TRef<IEventSource> peventSourceOnSelChange; CastTo(peventSourceOnSelChange, (IObject*)stack.Pop());
    return (Pane*) new SelectionPane(peventSourceOnSelChange);
}