Exemple #1
0
bool Othello_Logic::Logic_CheckInterUnit_AfterLogic(Match_Map* cur_Map, vector<int> &list_InterUnit, int index_X, int index_Y, int tag)
{
    if(list_InterUnit.size() > 0)
    {
        for(int i=0; i<list_InterUnit.size(); ++i)
        {
            int index = list_InterUnit[i];
            cur_Map->RemoveUnit(index);
            cur_Map->SetUnit_ToMap(CreateUnit(tag), cur_Map->GetConvertedTileIndex_X(index), cur_Map->GetConvertedTileIndex_Y(index));
        }
        cur_Map->SetUnit_ToMap(CreateUnit(tag), index_X, index_Y);
        return true;
    }
    else return false;
}
void ClientGame::LoadEvents(ConstPayloadPtr aPayloadMsg)
{
    for (int i = 0; i < aPayloadMsg->changes_size(); ++i)
    {
        const ChangeMsg& change = aPayloadMsg->changes(i);
        if (change.has_unitenter())
        {
            const UnitEnterMsg& move = change.unitenter();
            ClientUnit* unit = GetUnit(move.unitid());
            if (!unit)
            {
                if (move.has_visualcode())
                {
                    CreateUnit(move.unitid(), move.visualcode(), move.to());
                }
            }
            else
            {
                unit->SetTile(mTiles.at(move.to()));
            }
        }

        if (change.has_unitleave())
        {
            const UnitLeaveMsg& leave = change.unitleave();
            DeleteUnit(leave.unitid());
        }

        if (change.has_commanddone())
        {
            mTargetMarker->setVisible(false);
        }

        if (change.has_remove())
        {
            const RemoveMsg& command = change.remove();
            DeleteUnit(command.unitid());
        }

        if (change.has_showtile())
        {
            TileId tileId = change.showtile().tileid();
            ClientTile* tile = mTiles.at(tileId);
            tile->CreateEntity(change.showtile().whater() == 0);
        }

        if (change.has_hidetile())
        {
            TileId tileId = change.hidetile().tileid();
            ClientTile* tile = mTiles.at(tileId);
            tile->DestroyEntity();
            for (ClientTile::UnitIterator i = tile->GetUnits(); !tile->IsLastUnit(i); ++i)
            {
                DeleteUnit(*i);
            }
        }
    }
}
Exemple #3
0
AROS_UFH3(void, PCI_Enumerator,
    AROS_UFHA(struct Hook *,    hook,       A0),
    AROS_UFHA(OOP_Object *,     pciDevice,  A2),
    AROS_UFHA(APTR,             message,    A1))
{
    AROS_USERFUNC_INIT

D(bug("[SiS900] PCI_Enumerator()\n"));

    LIBBASETYPEPTR LIBBASE = (LIBBASETYPEPTR)hook->h_Data;

	BOOL FoundCompatNIC = FALSE;
    IPTR DeviceID, VendorID, RevisionID;
	char *CardName, *CardChipName;
    struct SiS900Unit   *unit;

    OOP_GetAttr(pciDevice, aHidd_PCIDevice_VendorID, &VendorID);
    OOP_GetAttr(pciDevice, aHidd_PCIDevice_ProductID, &DeviceID);
    OOP_GetAttr(pciDevice, aHidd_PCIDevice_RevisionID, &RevisionID);
	
    if ((DeviceID == 0x0900))
    {
		FoundCompatNIC = TRUE;
        CardName = "SiS 900 PCI Fast Ethernet";
		CardChipName = "SiS900";
    }
    else if ((DeviceID == 0x7016))
    {
		FoundCompatNIC = TRUE;
        CardName = "SiS 7016 PCI Fast Ethernet";
		CardChipName = "SiS7016";
    }

	if (FoundCompatNIC)
	{
D(bug("[SiS900] PCI_Enumerator: Found %s NIC, PCI_ID %04x:%04x Rev:%d\n", CardName, VendorID, DeviceID, RevisionID));

        if ((unit = CreateUnit(LIBBASE, pciDevice, CardName, CardChipName)))
        {
            AddTail(&LIBBASE->sis900b_Units, &unit->sis900u_Node);
        }
        else
        {
D(bug("[SIS900] PCI_Enumerator: Failed to create unit!\n"));
            return;
        }

D(bug("[%s] PCI_Enumerator: %s NIC I/O MEM @ %08x\n", unit->sis900u_name, unit->sis900u_rtl_chipname, unit->sis900u_BaseMem));
	}
	
    AROS_USERFUNC_EXIT
}
Exemple #4
0
CSpringUnit* CSpringGame::CreateUnit(int id) {
    if (id < 0) {
        SendToConsole("shard-runtime warning: tried to create unit with id < 0");
        return NULL;
    }
    springai::Unit* unit = springai::WrappUnit::GetInstance(callback->GetSkirmishAIId(), id);
    if (unit) {
        return CreateUnit(unit);
    } else {
        SendToConsole("shard-runtime warning: Could not create unit, WrappUnit returned NULL.");
        return NULL;
    }
}
Exemple #5
0
static struct DevUnit *CreatePCIUnit(ULONG index, struct DevBase *base)
{
   BOOL success = TRUE;
   struct BusContext *context;
   struct DevUnit *unit = NULL;

   context = AllocCard(index, base);
   if(context == NULL)
      success = FALSE;

   if(success)
   {
      if(context->unit_tags == NULL)
      {
         if(context->bus_type == PCI_BUS)
            context->unit_tags = unit_tags;
         else
            context->unit_tags = bridge_unit_tags;
      }

      context->unit = unit =
         CreateUnit(index, context, context->unit_tags, context->bus_type,
            base);
      if(unit == NULL)
         success = FALSE;
   }

   /* Add interrupt */

   if(success)
   {
      if(!(WrapInt(&unit->status_int, base)
         && WrapInt(&unit->rx_int, base)
         && WrapInt(&unit->tx_int, base)
         && WrapInt(&unit->info_int, base)))
         success = FALSE;
      success = AddPCIIntServer(context->card, &unit->status_int, base);
   }

   if(!success)
   {
      if(context != NULL)
      {
         DeleteUnit(context->unit, base);
         FreeCard(context, base);
      }
      unit = NULL;
   }

   return unit;
}
cActiveSkillObject::cActiveSkillObject(const cActiveSkillInfo& skillInfo) :
cSkillObject(skillInfo.GetInfo()),
mSkillInfo(&skillInfo),
mTarget(new cTarget),
mpSkillUnit(0),
mCastingTick(0),
mProcessTick(0),
mCoolingTick(0)
{
	// 080602 LUJ, 오브젝트 타입을 초기화한다
	mType = cSkillObject::TypeActive;
	m_BuffSkillTable.Initialize( 3 );

	mpSkillUnit = CreateUnit(
		skillInfo.GetInfo());
}
Exemple #7
0
/*****************************************************************************
 *
 * GetUnit
 *
 *****************************************************************************/
struct DevUnit *GetUnit (ULONG unit_num, struct MyBase *base) {
struct DevUnit *unit;

    unit = FindUnit (unit_num, base);

    if (unit == NULL) {
        Debug ("\n Unit not found, creating new");
        unit = CreateUnit (unit_num, base);    
    
        if (unit != NULL) {
            Debug ("\n Adding unit to base->units list");
            AddTail ((APTR)&(base->units), (APTR)unit);
        }
    }
   


   return unit;
}
Exemple #8
0
void CSpringGame::FillUnitVector(std::vector<IUnit*>& target, std::vector<springai::Unit*> source)
{
    target.clear();

    std::vector<springai::Unit*>::iterator i = source.begin();
    for(; i != source.end(); ++i) {
        if (!(*i)) {
            continue;
        }

        CSpringUnit* unit = GetUnitById((*i)->GetUnitId());
        if (!unit) {
            unit = CreateUnit(*i, false);
        } else {
            delete (*i);
        }

        if (unit) {
            target.push_back(unit);
        }
    }
}
Exemple #9
0
nsresult
otMacAudioInputStream::Init(otAudioFilter *aFilter, otICodecInfo *aCodecInfo)
{
  nsresult rv;
  PRUint32 sampleRate;
  PRUint16 ptime;

  NS_ENSURE_ARG_POINTER(aCodecInfo);

  rv = aCodecInfo->GetClockrate(&sampleRate);
  if (NS_FAILED(rv))
    return rv;

  rv = aCodecInfo->GetPtime(&ptime);
  if (NS_FAILED(rv))
    return rv;

  mFrameSize = 2*ptime*sampleRate/1000;

  rv = CreateUnit(PR_TRUE, sampleRate, 1, mFrameSize, InputReadyCb, this);
  if (NS_FAILED(rv)) {
    FreeData();
    return rv;
  }

  mFrame = (char*)nsMemory::Alloc(mInputFrameSize);
  if (!mFrame) {
    FreeData();
    return NS_ERROR_OUT_OF_MEMORY;
  }

  mFilter = aFilter;
  mCodecInfo = new otCodecInfo(aCodecInfo);

  return NS_OK;
}
Exemple #10
0
AROS_UFH3(void, PCI_Enumerator,
	AROS_UFHA(struct Hook *,    hook,       A0),
	AROS_UFHA(OOP_Object *,     pciDevice,  A2),
	AROS_UFHA(APTR,             message,    A1))
{
	AROS_USERFUNC_INIT

	char    *CardName,
			*CardChipName;
	IPTR    DeviceID, 
			VendorID, 
			RevisionID, 
			CardCapabilities;
	BOOL    FoundCompatNIC = FALSE;

D(bug("[rtl8139] PCI_Enumerator(PCI Device Obj @ %p)\n", pciDevice));

	LIBBASETYPEPTR LIBBASE = (LIBBASETYPEPTR)hook->h_Data;

	OOP_GetAttr(pciDevice, aHidd_PCIDevice_VendorID, &VendorID);
	OOP_GetAttr(pciDevice, aHidd_PCIDevice_ProductID, &DeviceID);
	OOP_GetAttr(pciDevice, aHidd_PCIDevice_RevisionID, &RevisionID);
	
	if ((VendorID == 0x10ec) && (DeviceID == 0x8129))
	{
		FoundCompatNIC = TRUE;
		CardCapabilities = RTLc_HAS_MII_XCVR;
		CardName = "RealTek RTL8129";
		CardChipName = "RTL8129";
	}
	else if ((VendorID == 0x10ec) && ((DeviceID == 0x8138) || (DeviceID == 0x8139)))
	{
		FoundCompatNIC = TRUE;
		if ((DeviceID == 0x8139) && (RevisionID >= 0x20))
		{
			CardCapabilities =   RTLc_HAS_CHIP_XCVR | RTLc_HAS_LNK_CHNG | RTLc_HAS_DESC;
			CardName = "RealTek RTL8139D";
			CardChipName = "RTL8139D";
		}
		else
		{
			CardCapabilities =   RTLc_HAS_CHIP_XCVR | RTLc_HAS_LNK_CHNG;
			CardName = "RealTek RTL8139C";
			CardChipName = "RTL8139C";
		}
	}
	else if ((VendorID == 0x1113) && (DeviceID == 0x1211))
	{
		FoundCompatNIC = TRUE;
		CardCapabilities = RTLc_HAS_CHIP_XCVR | RTLc_HAS_LNK_CHNG;
		CardName = "Accton EN-1207D Fast Ethernet";
		CardChipName = "RTL8139";
	}
	else if ((VendorID == 0x1186) && (DeviceID == 0x1300))
	{
		FoundCompatNIC = TRUE;
		CardCapabilities = RTLc_HAS_CHIP_XCVR | RTLc_HAS_LNK_CHNG;
		CardName = "D-Link DFE-538TX";
		CardChipName = "RTL8139";
	}
	else if ((VendorID == 0x018a) && (DeviceID == 0x0106))
	{
		FoundCompatNIC = TRUE;
		CardCapabilities = RTLc_HAS_CHIP_XCVR | RTLc_HAS_LNK_CHNG;
		CardName = "LevelOne FPC-0106Tx";
		CardChipName = "RTL8139";
	}
	else if ((VendorID == 0x021b) && (DeviceID == 0x8139))
	{
		FoundCompatNIC = TRUE;
		CardCapabilities = RTLc_HAS_CHIP_XCVR | RTLc_HAS_LNK_CHNG;
		CardName = "Compaq HNE-300";
		CardChipName = "RTL8139";
	}

	if (FoundCompatNIC)
	{
D(bug("[rtl8139] PCI_Enumerator: Found %s NIC [%s], PCI_ID %04x:%04x Rev:%d\n", CardName, CardChipName, VendorID, DeviceID, RevisionID));

		struct RTL8139Unit *unit = NULL;
		
		if ((unit = CreateUnit(LIBBASE, pciDevice, CardCapabilities, CardName, CardChipName)) != NULL)
		{
            AddTail(&LIBBASE->rtl8139b_Units, &unit->rtl8139u_Node);
        }
        else
        {
D(bug("[rtl8139] PCI_Enumerator: Failed to create unit!\n"));
            return;
        }
RTLD(bug("[%s] PCI_Enumerator: %s NIC I/O MEM @ %08x\n", unit->rtl8139u_name, unit->rtl8139u_rtl_chipname, unit->rtl8139u_BaseMem))

	}
	
	AROS_USERFUNC_EXIT
}
bool City::CheckMouseClick(const sf::Vector2f* mousePos)
{
    if (interactionMenu.at("menu").visible)
    {
        std::string msg = interactionMenu.at("menu").activate(*mousePos);
        if (msg == "null")
        {
            return false;
        }
        else
        {
            if (msg == "train_swordsman")
            {
                CreateUnit(Unit::UNITTYPES::SWORDSMAN);
                return true;
            }
            else if (msg == "train_pikeman")
            {
                CreateUnit(Unit::UNITTYPES::PIKEMAN);
                return true;
            }
            else if (msg == "train_archer")
            {
                CreateUnit(Unit::UNITTYPES::ARCHER);
                return true;
            }
            else if (msg == "train_knight")
            {
                CreateUnit(Unit::UNITTYPES::KNIGHT);
                return true;
            }
            else if (msg == "improve_weapons")
            {
                if (MapManager::GetInstance()->GetPlayerGold(owningPlayer) >= 500)
                {
                    MapManager::GetInstance()->RemoveGold(500, owningPlayer);
                    levelWeapons++;
                    interactionMenu.at("menu").entries.pop_back();

                    sf::RectangleShape shape;
                    shape.setSize(sf::Vector2f(menuXDimension, menuYDimension));
                    shape.setFillColor(Camera::GetInstance()->getStyleSheets()->at("button").bodyCol);
                    shape.setOutlineThickness(-Camera::GetInstance()->getStyleSheets()->at("button").borderSize);
                    shape.setOutlineColor(Camera::GetInstance()->getStyleSheets()->at("button").borderCol);

                    sf::Text text;
                    text.setString("Improve Weapons (1000)");
                    text.setFont(*Camera::GetInstance()->getStyleSheets()->at("button").font);
                    text.setColor(Camera::GetInstance()->getStyleSheets()->at("button").textCol);

                    text.setCharacterSize(menuYDimension - Camera::GetInstance()->getStyleSheets()->at("button").borderSize - 4);   //4 is the padding size

                    interactionMenu.at("menu").entries.push_back(GuiEntry("improve_weapons 2", shape, text));
                }
            }
            else if (msg == "improve_weapons 2")
            {
                if (MapManager::GetInstance()->GetPlayerGold(owningPlayer) >= 1000)
                {
                    MapManager::GetInstance()->RemoveGold(1000, owningPlayer);
                    levelWeapons++;
                    interactionMenu.at("menu").entries.pop_back();
                }
            }
            hasSpawnedUnit = true;
        }
    }
    return false;

}