コード例 #1
0
ファイル: music_gme.cpp プロジェクト: BadSanta1980/gzdoom
bool GMESong::StartTrack(int track, bool getcritsec)
{
	gme_err_t err;

	if (getcritsec)
	{
		CritSec.Enter();
	}
	err = gme_start_track(Emu, track);
	if (getcritsec)
	{
		CritSec.Leave();
	}
	if (err != NULL)
	{
		Printf("Could not start track %d: %s\n", track, err);
		return false;
	}
	CurrTrack = track;
	GetTrackInfo();
	if (!m_Looping)
	{
		gme_set_fade(Emu, CalcSongLength());
	}
	return true;
}
コード例 #2
0
ファイル: EnvironmentConstruct.cpp プロジェクト: 1suming/pap2
BOOL EnvironmentConstruct::Init()
{
    int           nResult        = false;
    int           nRetCode       = false;
    ITabFile*     piTableFile    = NULL;
    KTRACK*       pThisTrack     = NULL;
    KROUTE_NODE*  pFromRouteNode = NULL;
    KROUTE_NODE*  pToRouteNode   = NULL;
    KTRACK*       pTrack         = NULL;
    int           nTrackID       = 0;
    int           nTabHeight     = 0;
    int           nDistance      = 0;
    int           nCurrentFrame  = 0;
    char          szScriptFile[MAX_PATH];
    KROUTE_NODE   RouteNode;
    KTRACK        Track;
    KTRACK_POINT  TrackPoint;
    KTRACK_POINT  PrevTrackPoint;
    std::pair<KTrackMap::iterator, bool> itRetCode;

    // Load RoadNode.tab
    //--------------------------------------------------------------------------
    piTableFile = g_OpenTabFile("RoadNode.tab");
    KGLOG_PROCESS_ERROR(piTableFile);

    nTabHeight = piTableFile->GetHeight();
    KGLOG_PROCESS_ERROR(nTabHeight > 1);

    for (int i = 2; i <= nTabHeight; i++)
    {
        nRetCode = piTableFile->GetInteger(i, "NodeID", -1, &RouteNode.nNodeID);
        KGLOG_PROCESS_ERROR(nRetCode && "Get NodeID");

        nRetCode = piTableFile->GetString(i, "Description", "", RouteNode.szDescription, sizeof(RouteNode.szDescription));
        KGLOG_PROCESS_ERROR(nRetCode && "Get Description");

        nRetCode = piTableFile->GetInteger(i, "MapID", 0, (int*)&RouteNode.dwMapID);
        KGLOG_PROCESS_ERROR(nRetCode && "Get MapID");

        nRetCode = piTableFile->GetInteger(i, "CityID", 0, (int*)&RouteNode.dwCityID);
        KGLOG_PROCESS_ERROR(nRetCode && "Get CityID");

        nRetCode = piTableFile->GetInteger(i, "ForceID", 0, (int*)&RouteNode.dwForceID);
        KGLOG_PROCESS_ERROR(nRetCode && "Get ForceID");

        RouteNode.dwDefaultForceID = RouteNode.dwForceID;

        nRetCode = piTableFile->GetInteger(i, "TongID", 0, (int*)&RouteNode.dwTongID);
        KGLOG_PROCESS_ERROR(nRetCode && "Get TongID");

        nRetCode = piTableFile->GetString(i, "ScriptFile", "", szScriptFile, sizeof(szScriptFile));
        KGLOG_PROCESS_ERROR(nRetCode);

        RouteNode.szScriptFile[0] = '\0';
        if (szScriptFile[0] != '\0')
        {
            snprintf(RouteNode.szScriptFile, sizeof(RouteNode.szScriptFile), "%s", szScriptFile);
            RouteNode.szScriptFile[sizeof(RouteNode.szScriptFile) - 1] = '\0';
        }

        nRetCode = piTableFile->GetInteger(i, "NeedOpen", false, &RouteNode.bIsNeedOpen);
        KGLOG_PROCESS_ERROR(nRetCode && "Get NeedOpen");

        nRetCode = piTableFile->GetInteger(i, "X", 0, &RouteNode.nX);
        KGLOG_PROCESS_ERROR(nRetCode && "Get X");

        nRetCode = piTableFile->GetInteger(i, "Y", 0, &RouteNode.nY);
        KGLOG_PROCESS_ERROR(nRetCode && "Get Y");

        nRetCode = piTableFile->GetInteger(i, "Z", 0, &RouteNode.nZ);
        KGLOG_PROCESS_ERROR(nRetCode && "Get Z");

        KG_PROCESS_ERROR(RouteNode.bIsNeedOpen || RouteNode.dwForceID == 0);

        m_RouteMap.insert(std::make_pair(RouteNode.nNodeID, RouteNode));
    }
    KG_COM_RELEASE(piTableFile);
    piTableFile = NULL;

    //Load RoadTrack.tab
    //--------------------------------------------------------------------------
    piTableFile = g_OpenTabFile("RoadTrack.tab");
    KGLOG_PROCESS_ERROR(piTableFile);

    nTabHeight = piTableFile->GetHeight();
    KGLOG_PROCESS_ERROR(nTabHeight > 1);

    for (int i = 2; i <= nTabHeight; i++)
    {
        nRetCode = piTableFile->GetInteger(i, "FromNodeID", 0, &Track.nFromNode);
        KGLOG_PROCESS_ERROR(nRetCode && "Get FromNodeID");

        nRetCode = piTableFile->GetInteger(i, "ToNodeID", 0, &Track.nToNode);
        KGLOG_PROCESS_ERROR(nRetCode && "Get ToNodeID");

        nRetCode = piTableFile->GetInteger(i, "CostMoney", 0, &Track.nCostMoney);
        KGLOG_PROCESS_ERROR(nRetCode && "Get Cost Money");

        nRetCode = piTableFile->GetInteger(i, "TrackID", 0, &Track.nTrackID);
        KGLOG_PROCESS_ERROR(nRetCode && "Get TrackID");

        KGLOG_PROCESS_ERROR(Track.nTrackID > 0 && Track.nTrackID <= MAX_TRACK_ID);

        nRetCode = piTableFile->GetInteger(i, "Velocity", 0, &Track.nVelocity);
        KGLOG_PROCESS_ERROR(nRetCode && "Get Velocity");

        KGLOG_PROCESS_ERROR(Track.nVelocity > 0);

        Track.nFrame = 0;   //  这里置0,将在读入路点的时候,累计每个路点的时间。

        itRetCode = m_TrackMap.insert(std::make_pair(Track.nTrackID, Track));
        KGLOG_PROCESS_ERROR(itRetCode.second);

        pThisTrack      = GetTrackInfo(Track.nTrackID);
        pFromRouteNode  = GetNodeInfo(Track.nFromNode);
        pToRouteNode    = GetNodeInfo(Track.nToNode);

        pFromRouteNode->vLinkNode.push_back(std::make_pair(pToRouteNode, pThisTrack));
        pToRouteNode->vLinkNode.push_back(std::make_pair(pFromRouteNode, pThisTrack));
    }
    KG_COM_RELEASE(piTableFile);
    piTableFile = NULL;

    //Load RoadPoint.tab
    //--------------------------------------------------------------------------
    piTableFile = g_OpenTabFile("RoadPoint.tab");
    KGLOG_PROCESS_ERROR(piTableFile);

    nTabHeight = piTableFile->GetHeight();
    KGLOG_PROCESS_ERROR(nTabHeight > 1);

    for (int i = 2; i <= nTabHeight; i++)
    {
        nRetCode = piTableFile->GetInteger(i, "TrackID", 0, &nTrackID);
        KG_PROCESS_ERROR(nRetCode && "Get TrackID");

        nRetCode = piTableFile->GetInteger(i, "X", 0, &TrackPoint.nX);
        KG_PROCESS_ERROR(nRetCode && "Get X");

        nRetCode = piTableFile->GetInteger(i, "Y", 0, &TrackPoint.nY);
        KG_PROCESS_ERROR(nRetCode && "Get Y");

        nRetCode = piTableFile->GetInteger(i, "Z", 0, &TrackPoint.nZ);
        KG_PROCESS_ERROR(nRetCode && "Get Z");

        pTrack = GetTrackInfo(nTrackID);
        KG_PROCESS_ERROR(pTrack);

        if (pTrack->vPoint.empty())
        {
            pTrack->nFrame = 0;
            TrackPoint.nFrame = 0;
            pTrack->vPoint.push_back(TrackPoint);
            continue;
        }

        PrevTrackPoint = pTrack->vPoint.back();

        nDistance = g_GetDistance3(
            PrevTrackPoint.nX, PrevTrackPoint.nY, PrevTrackPoint.nZ,
            TrackPoint.nX, TrackPoint.nY, TrackPoint.nZ
            );
        nCurrentFrame = (int)sqrt((double)nDistance) / pTrack->nVelocity;

        pTrack->nFrame += nCurrentFrame;
        TrackPoint.nFrame = pTrack->nFrame;

        pTrack->vPoint.push_back(TrackPoint);
    }

    nResult = true;
Exit0:
    if (!nResult)
    {
        m_RouteMap.clear();
        m_TrackMap.clear();
        pTrack->vPoint.clear();
    }
    KG_COM_RELEASE(piTableFile);
    return nResult;
}
コード例 #3
0
ファイル: objPutCard.cpp プロジェクト: Koulio/MJL_BANK
unsigned char objPutCard::putCardProcess()
{
    qDebug()<<Q_FUNC_INFO;
    unsigned char ucResult = 0;
    unsigned char aucBuf[20];
    unsigned short usLength = 0;

    while(1)
    {
        ucResult = EventProcess(true, false, true);
        if(ucResult)
            break;

        if(getEventType() == Mag)
        {
            qDebug()<<"Mag is swiped";
            pxMagObj=GetPxMag();
            qDebug("\n+++++ SwipeCard [MAG EVENT] --------+++++++++++++++++\n");
            unsigned char length1 = pxMagObj->xxdata[0];
            unsigned char length2 = pxMagObj->xxdata[length1+2];
            if((length1==0)&&(length2==0))
                return(ERR_MAG_TRACKDATA);
            else
            {
                if(GetTrackInfo((unsigned char*)pxMagObj) != 0)
                    return(ERR_NOTPROC);
            }
            break;
        }
        else if(getEventType() == Untouch)
        {
            memset(aucBuf, 0, sizeof(aucBuf));
            ucResult = MIFARE_readCardNo(GetMifare(), 254, aucBuf, &usLength);
            QString tmp=QString::fromAscii((const char*)aucBuf);
            qDebug()<<"tmp::"<<tmp<<tmp.size();
            if(tmp.size()<5)
                return ERR_MFCDRV;
            qDebug("card is %s", aucBuf);
            qDebug("card len is %d", usLength);
            if(ucResult)
                return ERR_MFCDRV;
            else
            {
                memset(G_NORMALTRANS_aucSourceAcc, 0, sizeof(G_NORMALTRANS_aucSourceAcc));
                memcpy(G_NORMALTRANS_aucSourceAcc, aucBuf, usLength);
                G_NORMALTRANS_ucMainAccountLen = usLength;
                break;
            }
        }
        else if(getEventType() == Key)
        {
            ucResult = KEYDrv_Process();

            if(ucResult==ERR_CANCEL)
            {
                break;
            }
            if(ucResult==ERR_CARDNOACT)
            {
                // 没有手动
                if(NormalTransData.transType==TransMode_CashAdvance && g_constantParam.advance.MANUAL_ENABLE==false)
                {
                     ucResult = 0;
                }
                if(NormalTransData.transType==TransMode_CashDeposit && g_constantParam.deposit.MANUAL_ENABLE==false)
                {
                     ucResult = 0;
                }
                if(NormalTransData.transType==TransMode_BalanceInquiry && g_constantParam.balance.MANUAL_ENABLE==false)
                {
                     ucResult = 0;
                }
                if(NormalTransData.transType==TransMode_CardTransfer && g_constantParam.p2p.MANUAL_ENABLE==false)
                {
                     ucResult = 0;
                }
                if(NormalTransData.transType==TransMode_AdvanceVoid && g_constantParam.transvoid.MANUAL_ENABLE==false)
                {
                     ucResult = 0;
                }
                if(NormalTransData.transType==TransMode_DepositVoid && g_constantParam.transvoid.MANUAL_ENABLE==false)
                {
                     ucResult = 0;
                }
                if(g_constantParam.adjust.MANUAL_ENABLE == false
                && (NormalTransData.transType == TransMode_AdvanceAdjust
                 || NormalTransData.transType == TransMode_DepositAdjust))
                {
                     ucResult = 0;
                }
                if(NormalTransData.transType==TransMode_PINChange && g_constantParam.pinchange.MANUAL_ENABLE==false)
                {
                     ucResult = 0;
                }


                // 进入手动
                if(NormalTransData.transType==TransMode_CashAdvance && g_constantParam.advance.MANUAL_ENABLE==true)
                {
                    break;
                }
                if(NormalTransData.transType==TransMode_CashDeposit && g_constantParam.deposit.MANUAL_ENABLE==true)
                {
                    break;
                }
                if(NormalTransData.transType==TransMode_BalanceInquiry && g_constantParam.balance.MANUAL_ENABLE==true)
                {
                    break;
                }
                if(NormalTransData.transType==TransMode_CardTransfer && g_constantParam.p2p.MANUAL_ENABLE==true)
                {
                    break;
                }
                if(NormalTransData.transType==TransMode_AdvanceVoid && g_constantParam.transvoid.MANUAL_ENABLE==true)
                {
                    break;
                }
                if(NormalTransData.transType==TransMode_DepositVoid && g_constantParam.transvoid.MANUAL_ENABLE==true)
                {
                    break;
                }
                if(g_constantParam.adjust.MANUAL_ENABLE == true
                && (NormalTransData.transType == TransMode_AdvanceAdjust
                 || NormalTransData.transType == TransMode_DepositAdjust))
                {
                    break;
                }
                if(NormalTransData.transType==TransMode_PINChange && g_constantParam.pinchange.MANUAL_ENABLE==true)
                {
                    break;
                }
            }
        }
        else
        {
            ucResult = ERR_UNKNOWNDRV;
            break;
        }
    }
    RemoveKeyEventBug();
    return ucResult;
}