本文整理汇总了C++中Message函数的典型用法代码示例。如果您正苦于以下问题:C++ Message函数的具体用法?C++ Message怎么用?C++ Message使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了Message函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: IPAddress
//TODO: Needs header, comments
Message Connection::receiveMessage() {
std::fstream bufferFileStream;
mutexForBufferFile->lock();//Make sure to lock the mutexForBufferFile so others can't write to it while we're looking at it
bufferFileStream.open(IPAddress, std::ios::in | std::ios::out);//Open the file with the filename = IPAddress (the IP address of the connection). If it does not exist yet, create it.
//Create some buffers to hold the data
unsigned char source[constants::VID_SIZE];//This will hold the source VID
unsigned char dest[constants::VID_SIZE];//This will hold the destination VID
bool flag;//This will hold the broadcast flag
char m[constants::MAX_MESSAGE_SIZE];//This will hold the message's content
//Grab the first byte from the file
unsigned char x;
bufferFileStream >> x;
int i = 0;
while (!((x == EOF) || (x == '\0'))) {//While there are still bytes to be read from the file, and we do not encounter a '\0' (used to deliniate the messages in the file)...
if (i < constants::VID_SIZE)
source[i] = x;//Put this byte in the source
else if (i < (2 * constants::VID_SIZE))
dest[i] = x;//Put this byte in the destination
else if (i == (2 * constants::VID_SIZE))
flag = (x != 0);//This byte is the broadcast flag
else
m[i] = x;//Put this byte in the message's content
i++;
bufferFileStream >> x;
}
Message toReturn = Message(source, dest, flag, m);//Use the now filled buffers to create a message
//Find the length of the buffer file
int endOfMessage = bufferFileStream.tellg();
bufferFileStream.seekg(0, bufferFileStream.end);
int lengthOfFile = bufferFileStream.tellg();
//Find the length of the file after the first message (now read into "toReturn")
int lengthOfRemaining = lengthOfFile - endOfMessage;
//Grab the file's contents *after* the message we've already read in
unsigned char remainingBuffer[lengthOfRemaining];
bufferFileStream.seekg(lengthOfFile);
char y;
bufferFileStream >> y;
int j = 0;
while (!(j == EOF)) {
remainingBuffer[j] = y;
j++;
bufferFileStream >> y;
}
bufferFileStream.close();//Close the file so we can open it again in truncuate (over -write) mode
bufferFileStream.open(IPAddress, std::ios::out | std::ios::trunc);//Open the file with the filename = IPAddress (the IP address of the connection) in overwrite mode
for (j = 0; j < lengthOfRemaining; j++)
bufferFileStream << remainingBuffer[j];//Write only the contents of the file *after* the message we converted to overwrite the message we converted
bufferFileStream.close(); //Close the file so others can use it
mutexForBufferFile->unlock();//Unlock the mutexForBufferFile so that others know the file is availible
return toReturn;//Return the newly created message
}
示例2: ClearTerm
//*****************************************************************************
//
//! Clear the console window
//!
//! This function
//! 1. clears the console window.
//!
//! \return none
//
//*****************************************************************************
void
ClearTerm()
{
Message("\33[2J\r");
}
示例3: sendRequest
std::shared_ptr<Notifications> ClientImpl::PING(in_addr_t ip, uint16_t port) {
ILOG << "Sending ping request to the server\n";
return sendRequest(ip, port, Message(Type::Confirmable, messageId_++, Code::Empty, newToken(), ""));
}
示例4: GeneralTab_OnApply
BOOL GeneralTab_OnApply (HWND hDlg, BOOL fForce, BOOL fComplainIfInvalid)
{
if (!fForce)
{
// Don't try to do anything if we've already failed the apply
if (GetWindowLongPtr (hDlg, DWLP_MSGRESULT))
return FALSE;
}
// If the user has changed CellServDB, configuration parameters for
// the driver or anything else, we want to commit those changes first.
// We *won't* commit server prefs changes yet, because we haven't yet
// checked to see if the service is running.
//
if (!HostsTab_CommitChanges (fForce))
return FALSE;
if (!AdvancedTab_CommitChanges (fForce))
return FALSE;
if (!GeneralTab_VerifyOK (hDlg, fComplainIfInvalid))
return FALSE;
TCHAR szText[ MAX_PATH ];
if (g.fIsWinNT)
{
GetDlgItemText (hDlg, IDC_CELL, szText, MAX_PATH);
if (lstrcmpi (szText, g.Configuration.szCell))
{
if (!Config_SetCellName (szText))
return FALSE;
lstrcpy (g.Configuration.szCell, szText);
}
}
BOOL fLogonAuthent = IsDlgButtonChecked (hDlg, IDC_LOGON);
if (fLogonAuthent != g.Configuration.fLogonAuthent)
{
SetBitLogonOption(fLogonAuthent,LOGON_OPTION_INTEGRATED);
g.Configuration.fLogonAuthent = fLogonAuthent;
}
Config_SetTrayIconFlag (IsDlgButtonChecked (hDlg, IDC_TRAYICON));
if (g.fIsWinNT)
{
BOOL fBeGateway = IsDlgButtonChecked (hDlg, IDC_GATEWAY);
if (fBeGateway != g.Configuration.fBeGateway)
{
if (!Config_SetGatewayFlag (fBeGateway))
return FALSE;
g.fNeedRestart = TRUE;
g.Configuration.fBeGateway = fBeGateway;
}
}
else // (!g.fIsWinNT)
{
GetDlgItemText (hDlg, IDC_GATEWAY, szText, MAX_PATH);
if (lstrcmpi (szText, g.Configuration.szGateway))
{
TCHAR szNewCell[ MAX_PATH ];
if (!Config_ContactGateway (szText, szNewCell))
{
Message (MB_ICONASTERISK | MB_OK, GetErrorTitle(), IDS_BADGATEWAY_DESC);
return FALSE;
}
if (!GeneralTab_VerifyCell (hDlg, fComplainIfInvalid, szNewCell))
return FALSE;
if (!Config_SetGatewayName (szText))
return FALSE;
if (!Config_SetCellName (szNewCell))
return FALSE;
Config_FixGatewayDrives();
SetDlgItemText (hDlg, IDC_CELL, szNewCell);
lstrcpy (g.Configuration.szGateway, szText);
lstrcpy (g.Configuration.szCell, szNewCell);
GeneralTab_OnGateway (hDlg);
}
}
return TRUE;
}
示例5: exit
void exit(status_t result) {
this->result = result;
exitPending = true;
looper->sendMessage(this, Message(MSG_EXIT));
}
示例6: vendorDrillMap
/* for a given drill size, find the closest vendor drill size */
int
vendorDrillMap (int in)
{
int i, min, max;
if (in == cached_drill)
return cached_map;
cached_drill = in;
/* skip the mapping if we don't have a vendor drill table */
if ((n_vendor_drills == 0) || (vendor_drills == NULL)
|| (vendorMapEnable == false))
{
cached_map = in;
return in;
}
/* are we smaller than the smallest drill? */
if (in <= vendor_drills[0])
{
cached_map = vendor_drills[0];
return vendor_drills[0];
}
/* are we larger than the largest drill? */
if (in > vendor_drills[n_vendor_drills - 1])
{
Message (_("Vendor drill list does not contain a drill >= %6.2f mil\n"
"Using %6.2f mil instead.\n"),
0.01 * in, 0.01 * vendor_drills[n_vendor_drills - 1]);
cached_map = vendor_drills[n_vendor_drills - 1];
return vendor_drills[n_vendor_drills - 1];
}
/* figure out which 2 drills are closest in size */
min = 0;
max = n_vendor_drills - 1;
while (max - min > 1)
{
i = (max+min) / 2;
if (in > vendor_drills[i])
min = i;
else
max = i;
}
i = max;
/* now round per the rounding mode */
if (rounding_method == CLOSEST)
{
/* find the closest drill size */
if ((in - vendor_drills[i - 1]) > (vendor_drills[i] - in))
{
cached_map = vendor_drills[i];
return vendor_drills[i];
}
else
{
cached_map = vendor_drills[i - 1];
return vendor_drills[i - 1];
}
}
else
{
/* always round up */
cached_map = vendor_drills[i];
return vendor_drills[i];
}
}
示例7: vendorIsElementMappable
bool
vendorIsElementMappable (ElementType *element)
{
int i;
int noskip;
if (vendorMapEnable == false)
return false;
noskip = 1;
for (i = 0; i < n_refdes; i++)
{
if ((NSTRCMP (UNKNOWN (NAMEONPCB_NAME (element)), ignore_refdes[i]) ==
0)
|| rematch (ignore_refdes[i], UNKNOWN (NAMEONPCB_NAME (element))))
{
Message (_
("Vendor mapping skipped because refdes = %s matches %s\n"),
UNKNOWN (NAMEONPCB_NAME (element)), ignore_refdes[i]);
noskip = 0;
}
}
if (noskip)
for (i = 0; i < n_value; i++)
{
if ((NSTRCMP (UNKNOWN (VALUE_NAME (element)), ignore_value[i]) == 0)
|| rematch (ignore_value[i], UNKNOWN (VALUE_NAME (element))))
{
Message (_
("Vendor mapping skipped because value = %s matches %s\n"),
UNKNOWN (VALUE_NAME (element)), ignore_value[i]);
noskip = 0;
}
}
if (noskip)
for (i = 0; i < n_descr; i++)
{
if ((NSTRCMP (UNKNOWN (DESCRIPTION_NAME (element)), ignore_descr[i])
== 0)
|| rematch (ignore_descr[i],
UNKNOWN (DESCRIPTION_NAME (element))))
{
Message (_
("Vendor mapping skipped because descr = %s matches %s\n"),
UNKNOWN (DESCRIPTION_NAME (element)), ignore_descr[i]);
noskip = 0;
}
}
if (noskip && TEST_FLAG (LOCKFLAG, element))
{
Message (_("Vendor mapping skipped because element %s is locked\n"),
UNKNOWN (NAMEONPCB_NAME (element)));
noskip = 0;
}
if (noskip)
return true;
else
return false;
}
示例8: Main
Int2 Main (void)
{
Char app [64], type;
CSpeedFlagData cfd;
CharPtr directory, filter, infile, logfile, outfile, str, suffix;
Boolean remote;
time_t runtime, starttime, stoptime;
/* standard setup */
ErrSetFatalLevel (SEV_MAX);
ErrClearOptFlags (EO_SHOW_USERSTR);
UseLocalAsnloadDataAndErrMsg ();
ErrPathReset ();
/* finish resolving internal connections in ASN.1 parse tables */
if (! AllObjLoad ()) {
Message (MSG_FATAL, "AllObjLoad failed");
return 1;
}
if (! SubmitAsnLoad ()) {
Message (MSG_FATAL, "SubmitAsnLoad failed");
return 1;
}
if (! FeatDefSetLoad ()) {
Message (MSG_FATAL, "FeatDefSetLoad failed");
return 1;
}
if (! SeqCodeSetLoad ()) {
Message (MSG_FATAL, "SeqCodeSetLoad failed");
return 1;
}
if (! GeneticCodeTableLoad ()) {
Message (MSG_FATAL, "GeneticCodeTableLoad failed");
return 1;
}
/* process command line arguments */
sprintf (app, "cspeedtest %s", CSPEEDTEST_APPLICATION);
if (! GetArgs (app, sizeof (myargs) / sizeof (Args), myargs)) {
return 0;
}
MemSet ((Pointer) &cfd, 0, sizeof (CSpeedFlagData));
directory = (CharPtr) myargs [p_argInputPath].strvalue;
infile = (CharPtr) myargs [i_argInputFile].strvalue;
outfile = (CharPtr) myargs [o_argOutputFile].strvalue;
filter = (CharPtr) myargs [f_argFilter].strvalue;
suffix = (CharPtr) myargs [x_argSuffix].strvalue;
cfd.batch = FALSE;
cfd.binary = (Boolean) myargs [b_argBinary].intvalue;
cfd.compressed = (Boolean) myargs [c_argCompressed].intvalue;
cfd.lock = (Boolean) myargs [l_argLockFar].intvalue;
cfd.type = 1;
str = myargs [a_argType].strvalue;
TrimSpacesAroundString (str);
if (StringDoesHaveText (str)) {
type = str [0];
} else {
type = 'a';
}
type = TO_LOWER (type);
switch (type) {
case 'a' :
cfd.type = 1;
break;
case 'e' :
cfd.type = 2;
break;
case 'b' :
cfd.type = 3;
break;
case 's' :
cfd.type = 4;
break;
case 'm' :
cfd.type = 5;
break;
case 't' :
cfd.type = 1;
cfd.batch = TRUE;
break;
case 'f' :
cfd.type = 6;
break;
case 'l' :
cfd.type = 7;
break;
default :
cfd.type = 1;
break;
}
//.........这里部分代码省略.........
示例9: ProcessSingleRecord
static void ProcessSingleRecord (
CharPtr filename,
CSpeedFlagPtr cfp
)
{
AsnIoPtr aip;
BioseqPtr bsp;
ValNodePtr bsplist = NULL;
BioseqSetPtr bssp;
Pointer dataptr = NULL;
Uint2 datatype, entityID = 0;
FileCache fc;
FILE *fp;
Int1 iotype;
Char line [512];
Int4 maxio = 1;
SeqEntryPtr sep;
time_t starttime, stoptime, worsttime;
CharPtr str;
Int4 x;
if (cfp == NULL) return;
if (StringHasNoText (filename)) return;
if (StringChr (cfp->io, 'r') != NULL) {
maxio = cfp->maxcount;
}
starttime = GetSecs ();
for (x = 0; x < maxio; x++) {
if (entityID != 0) {
ObjMgrFreeByEntityID (entityID);
entityID = 0;
dataptr = NULL;
}
if (cfp->type == 1) {
fp = FileOpen (filename, "r");
if (fp == NULL) {
Message (MSG_POSTERR, "Failed to open '%s'", filename);
return;
}
dataptr = ReadAsnFastaOrFlatFile (fp, &datatype, NULL, FALSE, FALSE, FALSE, FALSE);
FileClose (fp);
entityID = ObjMgrRegister (datatype, dataptr);
} else if (cfp->type >= 2 && cfp->type <= 5) {
aip = AsnIoOpen (filename, cfp->binary? "rb" : "r");
if (aip == NULL) {
Message (MSG_POSTERR, "AsnIoOpen failed for input file '%s'", filename);
return;
}
switch (cfp->type) {
case 2 :
dataptr = (Pointer) SeqEntryAsnRead (aip, NULL);
datatype = OBJ_SEQENTRY;
break;
case 3 :
dataptr = (Pointer) BioseqAsnRead (aip, NULL);
datatype = OBJ_BIOSEQ;
break;
case 4 :
dataptr = (Pointer) BioseqSetAsnRead (aip, NULL);
datatype = OBJ_BIOSEQSET;
break;
case 5 :
dataptr = (Pointer) SeqSubmitAsnRead (aip, NULL);
datatype = OBJ_SEQSUB;
break;
default :
break;
}
AsnIoClose (aip);
entityID = ObjMgrRegister (datatype, dataptr);
} else if (cfp->type == 6) {
fp = FileOpen (filename, "r");
if (fp == NULL) {
Message (MSG_POSTERR, "Failed to open '%s'", filename);
return;
}
dataptr = ReadAsnFastaOrFlatFile (fp, &datatype, NULL, FALSE, FALSE, FALSE, FALSE);
FileClose (fp);
entityID = ObjMgrRegister (datatype, dataptr);
//.........这里部分代码省略.........
示例10: POLYAREA_findXmostLine
/*
* Given a polygon and a side of it (a direction north/northeast/etc), find
* a line tangent to that side, offset by clearance, and return it as a
* pair of vectors PQ.
* Make it long so it will intersect everything in the area.
*/
static void
POLYAREA_findXmostLine(POLYAREA *a, int side, Vector p, Vector q, int clearance)
{
p[0] = p[1] = 0;
q[0] = q[1] = 0;
int extra = a->contours->xmax - a->contours->xmin +
a->contours->ymax - a->contours->ymin;
switch (side) {
case NORTH:
p[1] = q[1] = a->contours->ymin - clearance;
p[0] = a->contours->xmin - extra;
q[0] = a->contours->xmax + extra;
break;
case SOUTH:
p[1] = q[1] = a->contours->ymax + clearance;
p[0] = a->contours->xmin - extra;
q[0] = a->contours->xmax + extra;
break;
case EAST:
p[0] = q[0] = a->contours->xmax + clearance;
p[1] = a->contours->ymin - extra;
q[1] = a->contours->ymax + extra;
break;
case WEST:
p[0] = q[0] = a->contours->xmin - clearance;
p[1] = a->contours->ymin - extra;
q[1] = a->contours->ymax + extra;
break;
default: { /* diagonal case */
int kx, ky, minmax, dq, ckx, cky;
Coord mm[2] = {MAX_COORD, -MAX_COORD};
Vector mmp[2];
VNODE *v;
switch (side) {
case NORTHWEST:
kx = 1; /* new_x = kx * x + ky * y */
ky = 1;
dq = -1; /* extend line in +x, dq*y */
ckx = cky = -1; /* clear line in ckx*clear, cky*clear */
minmax = 0; /* min or max */
break;
case SOUTHWEST:
kx = 1;
ky = -1;
dq = 1;
ckx = -1;
cky = 1;
minmax = 0;
break;
case NORTHEAST:
kx = 1;
ky = -1;
dq = 1;
ckx = 1;
cky = -1;
minmax = 1;
break;
case SOUTHEAST:
kx = ky = 1;
dq = -1;
ckx = cky = 1;
minmax = 1;
break;
default:
Message("bjj: aiee, what side?");
return;
}
v = &a->contours->head;
do {
int test = kx * v->point[0] + ky * v->point[1];
if (test < mm[0]) {
mm[0] = test;
mmp[0][0] = v->point[0];
mmp[0][1] = v->point[1];
}
if (test > mm[1]) {
mm[1] = test;
mmp[1][0] = v->point[0];
mmp[1][1] = v->point[1];
}
} while ((v = v->next) != &a->contours->head);
Vcpy2(p, mmp[minmax]);
/* add clearance in the right direction */
clearance *= 0.707123; /* = cos(45) = sqrt(2)/2 */
p[0] += ckx * clearance;
p[1] += cky * clearance;
/* now create a tangent line to that point */
Vcpy2(q, p);
p[0] += -extra;
p[1] += -extra * dq;
q[0] += extra;
q[1] += extra * dq;
//.........这里部分代码省略.........
示例11: Main
Int2 Main (void)
{
AsnIoPtr aip;
AsnTypePtr atp;
FILE *dfp = NULL;
Boolean do_nuc = FALSE;
Boolean do_prot = FALSE;
XtraPtr extra;
FILE *fp;
GBSeq gbsq;
GBSet gbst;
Boolean get_var;
Char line [256];
Boolean only_new;
CharPtr str;
Char xmlbuf [128];
XtraBlock xtra;
ErrSetFatalLevel (SEV_MAX);
ErrClearOptFlags (EO_SHOW_USERSTR);
UseLocalAsnloadDataAndErrMsg ();
ErrPathReset ();
if (! AllObjLoad ()) {
Message (MSG_FATAL, "AllObjLoad failed");
return 1;
}
if (! SubmitAsnLoad ()) {
Message (MSG_FATAL, "SubmitAsnLoad failed");
return 1;
}
if (! SeqCodeSetLoad ()) {
Message (MSG_FATAL, "SeqCodeSetLoad failed");
return 1;
}
if (! GeneticCodeTableLoad ()) {
Message (MSG_FATAL, "GeneticCodeTableLoad failed");
return 1;
}
if (! objgbseqAsnLoad ()) {
Message (MSG_POSTERR, "objgbseqAsnLoad failed");
return 1;
}
if (! GetArgs ("gbseqget", sizeof (myargs) / sizeof (Args), myargs)) {
return 0;
}
fp = FileOpen (myargs [i_argInputFile].strvalue, "r");
if (fp == NULL) {
return 1;
}
if (! StringHasNoText (myargs [d_argDateFile].strvalue)) {
dfp = FileOpen (myargs [d_argDateFile].strvalue, "r");
if (dfp == NULL) {
return 1;
}
}
if (GetAppParam ("NCBI", "SETTINGS", "XMLPREFIX", NULL, xmlbuf, sizeof (xmlbuf))) {
AsnSetXMLmodulePrefix (StringSave (xmlbuf));
}
MemSet ((Pointer) &xtra, 0, sizeof (XtraBlock));
MemSet ((Pointer) &gbsq, 0, sizeof (GBSeq));
xtra.gbseq = &gbsq;
aip = AsnIoOpen (myargs [o_argOutputFile].strvalue, "wx");
if (aip == NULL) {
Message (MSG_POSTERR, "AsnIoOpen failed");
FileClose (fp);
return 1;
}
only_new = (Boolean) myargs [n_argNewRecords].intvalue;
get_var = (Boolean) myargs [v_argVariations].intvalue;
str = myargs [m_argMolecule].strvalue;
if (StringICmp (str, "n") == 0) {
do_nuc = TRUE;
} else if (StringICmp (str, "p") == 0) {
do_prot = TRUE;
} else if (StringICmp (str, "b") == 0) {
do_nuc = TRUE;
do_prot = TRUE;
} else {
do_nuc = TRUE;
}
PubSeqFetchEnable ();
xtra.aip = aip;
atp = AsnLinkType (NULL, AsnFind ("GBSet"));
xtra.atp = AsnLinkType (NULL, AsnFind ("GBSet.E"));
if (atp == NULL || xtra.atp == NULL) {
Message (MSG_POSTERR, "AsnLinkType or AsnFind failed");
return 1;
}
//.........这里部分代码省略.........
示例12: Save
void Client::GoFish()
{
Save(); //More desync testing
//TODO: generate a message if we're already fishing
/*if (!fishing_timer.Check()) { //this isn't the right check, may need to add something to the Client class like 'bool is_fishing'
Message_StringID(CC_Default, ALREADY_FISHING); //You are already fishing!
return;
}*/
fishing_timer.Disable();
//we're doing this a second time (1st in Client::Handle_OP_Fishing) to make sure that, between when we started fishing & now, we're still able to fish (in case we move, change equip, etc)
if (!CanFish()) //if we can't fish here, we don't need to bother with the rest
return;
//multiple entries yeilds higher probability of dropping...
uint32 common_fish_ids[MAX_COMMON_FISH_IDS] = {
1038, // Tattered Cloth Sandals
1038, // Tattered Cloth Sandals
1038, // Tattered Cloth Sandals
13019, // Fresh Fish
13076, // Fish Scales
13076, // Fish Scales
7007, // Rusty Dagger
7007, // Rusty Dagger
7007 // Rusty Dagger
};
//success formula is not researched at all
int fishing_skill = GetSkill(SkillFishing); //will take into account skill bonuses on pole & bait
//make sure we still have a fishing pole on:
int32 bslot = m_inv.HasItemByUse(ItemTypeFishingBait, 1, invWhereWorn|invWherePersonal);
const ItemInst* Bait = nullptr;
if (bslot != INVALID_INDEX)
Bait = m_inv.GetItem(bslot);
//if the bait isnt equipped, need to add its skill bonus
if(bslot >= EmuConstants::GENERAL_BEGIN && Bait->GetItem()->SkillModType == SkillFishing) {
fishing_skill += Bait->GetItem()->SkillModValue;
}
if (fishing_skill > 100)
{
fishing_skill = 100+((fishing_skill-100)/2);
}
if (MakeRandomInt(0,175) < fishing_skill) {
uint32 food_id = 0;
//25% chance to fish an item.
if (MakeRandomInt(0, 399) <= fishing_skill ) {
uint32 npc_id = 0;
uint8 npc_chance = 0;
food_id = database.GetZoneFishing(m_pp.zone_id, fishing_skill, npc_id, npc_chance);
//check for add NPC
if(npc_chance > 0 && npc_id) {
if(npc_chance < MakeRandomInt(0, 99)) {
const NPCType* tmp = database.GetNPCType(npc_id);
if(tmp != nullptr) {
NPC* npc = new NPC(tmp, nullptr, GetX()+3, GetY(), GetZ(), GetHeading(), FlyMode3);
npc->AddLootTable();
npc->AddToHateList(this, 1, 0, false); //no help yelling
entity_list.AddNPC(npc);
Message(MT_Emote, "You fish up a little more than you bargained for...");
}
}
}
}
//consume bait, should we always consume bait on success?
DeleteItemInInventory(bslot, 1, true); //do we need client update?
if(food_id == 0) {
int index = MakeRandomInt(0, MAX_COMMON_FISH_IDS-1);
food_id = common_fish_ids[index];
}
const Item_Struct* food_item = database.GetItem(food_id);
Message_StringID(MT_Skills, FISHING_SUCCESS);
ItemInst* inst = database.CreateItem(food_item, 1);
if(inst != nullptr) {
if(CheckLoreConflict(inst->GetItem()))
{
Message_StringID(CC_Default, DUP_LORE);
safe_delete(inst);
}
else
{
PushItemOnCursor(*inst);
SendItemPacket(MainCursor, inst, ItemPacketSummonItem);
safe_delete(inst);
//.........这里部分代码省略.........
示例13: ArtificialIntelligence8
int ArtificialIntelligence8 ()
{
int i, j, k, st, id;
TPoint p;
Message (SigText[TXT_AI_ANALYSE]);
// Prepocitame viditelnost
AllowBadlife (TRUE);
ComputeVisib ();
RedrawMap ();
LockDraw ();
// Aktualizujeme specialni objekty
Docks1 = GetField (D1X, D1Y) -> Unit;
if (Docks1 == NO_UNIT || Units [Docks1] -> Type % BADLIFE != unDocks)
Docks1 = NO_UNIT;
Docks2 = GetField (D2X, D2Y) -> Unit;
if (Docks2 == NO_UNIT || Units [Docks2] -> Type % BADLIFE != unDocks)
Docks2 = NO_UNIT;
Factory1 = GetField (F1X, F1Y) -> Unit;
if (Factory1 == NO_UNIT || Units [Factory1] -> Type % BADLIFE != unFactory)
Factory1 = NO_UNIT;
Factory2 = GetField (F2X, F2Y) -> Unit;
if (Factory2 == NO_UNIT || Units [Factory2] -> Type % BADLIFE != unFactory)
Factory2 = NO_UNIT;
Factory3 = GetField (F3X, F3Y) -> Unit;
if (Factory3 == NO_UNIT || Units [Factory3] -> Type % BADLIFE != unFactory)
Factory3 = NO_UNIT;
// Vyradime znicene jednotky z armad
Towers -> DeleteKilled2 (); Towers -> DeleteKilled ();
Army1 -> DeleteKilled2 (); Army1 -> DeleteKilled ();
Army2 -> DeleteKilled2 (); Army2 -> DeleteKilled ();
Army3 -> DeleteKilled2 (); Army3 -> DeleteKilled ();
AirArmy3 -> DeleteKilled2 (); AirArmy3 -> DeleteKilled ();
Army4 -> DeleteKilled2 (); Army4 -> DeleteKilled ();
Army5 -> DeleteKilled2 (); Army5 -> DeleteKilled ();
Army6 -> DeleteKilled2 (); Army6 -> DeleteKilled ();
Army7 -> DeleteKilled2 (); Army7 -> DeleteKilled ();
Army8 -> DeleteKilled2 (); Army8 -> DeleteKilled ();
AirArmy8 -> DeleteKilled2 (); AirArmy8 -> DeleteKilled ();
Marine1 -> DeleteKilled2 (); Marine1 -> DeleteKilled ();
Marine8 -> DeleteKilled2 (); Marine8 -> DeleteKilled ();
DUPos = 0;
// Testneme konec hry
st = AssignResult ();
if (st != 0) {
UnlockDraw ();
AllowBadlife (FALSE);
return st;
}
// Zpracujeme seznam poli, na ktere se utocilo
Army1 -> DoAttackedFields ();
Army2 -> DoAttackedFields ();
Army3 -> DoAttackedFields ();
AirArmy3 -> DoAttackedFields ();
Army4 -> DoAttackedFields ();
Army5 -> DoAttackedFields ();
Army6 -> DoAttackedFields ();
Army7 -> DoAttackedFields ();
Army8 -> DoAttackedFields ();
AirArmy8 -> DoAttackedFields ();
Marine1 -> DoAttackedFields ();
Marine8 -> DoAttackedFields ();
AttackFieldPos = 0;
AnalyseLandscape ();
Message (SigText[TXT_AI_ARMY]);
//////////////////////////////// AKTIVACE ARMAD
// Test zaktivovani armady 1
if (Army1 -> Status == asSleeping) {
for (i = 0; i < BADLIFE; i++) {
if (Units [i] == NULL) continue;
if (Army1 -> IsInVisualRange (Units [i] -> X, Units [i] -> Y)) {
Army1 -> Status = asActive;
}
}
}
// Test zaktivovani armady 2
if (Army2 -> Status == asSleeping) {
for (i = 0; i < BADLIFE; i++) {
if (Units [i] == NULL) continue;
if (Army2 -> IsInVisualRange (Units [i] -> X, Units [i] -> Y)) {
Army2 -> Status = asActive;
}
}
}
// Test zaktivovani armady 3
if (Army3 -> Status == asSleeping) {
for (i = 0; i < BADLIFE; i++) {
if (Units [i] == NULL) continue;
//.........这里部分代码省略.........
示例14: switch
//.........这里部分代码省略.........
#if defined(_MSC_VER)
#ifdef _M_IA64
#define __REG_IA64_IntR0 1024
__setReg(__REG_IA64_IntR0, 666);
#else
__ud2();
#endif
#elif defined(__GNUC__)
asm("ud2");
#else
#error "Unsupported compiler"
#endif
break;
case 4:
Test_EXCEPTION_STACK_OVERFLOW(nullptr);
break;
case 5:
//refers.d = 1.0/zero_const.d;
break;
case 6:
DebugBreak();
break;
#ifdef _M_IA64
case 7:
{
BYTE temp[10]={};
double* val;
val = (double*)(&temp[3]);
printf("%lf\n", *val);
}
#endif
}
Message(MSG_WARNING, 1, L"Test Exceptions failed", L"", ECode[ExitCode].Name, L"", MSG(MOk));
return TRUE;
}
#endif
/*** БЛОК ПРИВЕЛЕГИРОВАННЫХ КЛАВИШ ! ***/
/*** КОТОРЫЕ НЕЛЬЗЯ НАМАКРОСИТЬ ***/
switch (Key)
{
case KEY_ALT|KEY_NUMPAD0:
case KEY_RALT|KEY_NUMPAD0:
case KEY_ALTINS:
case KEY_RALTINS:
{
RunGraber();
return TRUE;
}
case KEY_CONSOLE_BUFFER_RESIZE:
Sleep(1);
ResizeAllFrame();
return TRUE;
}
/*** А вот здесь - все остальное! ***/
if (!Global->IsProcessAssignMacroKey)
// в любом случае если кому-то не нужны все клавиши или
{
bool scrollable = false;
if ( Global->Opt->WindowMode )
{
int frame_type = CurrentFrame->GetType();
scrollable = frame_type != MODALTYPE_EDITOR && frame_type != MODALTYPE_VIEWER;
示例15: ActionLoadVendorFrom
int
ActionLoadVendorFrom (int argc, char **argv, Coord x, Coord y)
{
int i;
char *fname = NULL;
static char *default_file = NULL;
char *sval;
Resource *res, *drcres, *drlres;
int type;
bool free_fname = false;
cached_drill = -1;
fname = argc ? argv[0] : 0;
if (!fname || !*fname)
{
fname = gui->fileselect (_("Load Vendor Resource File..."),
_("Picks a vendor resource file to load.\n"
"This file can contain drc settings for a\n"
"particular vendor as well as a list of\n"
"predefined drills which are allowed."),
default_file, ".res", "vendor",
HID_FILESELECT_READ);
if (fname == NULL)
AFAIL (load_vendor);
free_fname = true;
free (default_file);
default_file = NULL;
if (fname && *fname)
default_file = strdup (fname);
}
/* Unload any vendor table we may have had */
n_vendor_drills = 0;
n_refdes = 0;
n_value = 0;
n_descr = 0;
FREE (vendor_drills);
FREE (ignore_refdes);
FREE (ignore_value);
FREE (ignore_descr);
/* load the resource file */
res = resource_parse (fname, NULL);
if (res == NULL)
{
Message (_("Could not load vendor resource file \"%s\"\n"), fname);
return 1;
}
/* figure out the vendor name, if specified */
vendor_name = (char *)UNKNOWN (resource_value (res, "vendor"));
/* figure out the units, if specified */
sval = resource_value (res, "units");
if (sval == NULL)
{
sf = MIL_TO_COORD(1);
}
else if ((NSTRCMP (sval, "mil") == 0) || (NSTRCMP (sval, "mils") == 0))
{
sf = MIL_TO_COORD(1);
}
else if ((NSTRCMP (sval, "inch") == 0) || (NSTRCMP (sval, "inches") == 0))
{
sf = INCH_TO_COORD(1);
}
else if (NSTRCMP (sval, "mm") == 0)
{
sf = MM_TO_COORD(1);
}
else
{
Message ("\"%s\" is not a supported units. Defaulting to inch\n",
sval);
sf = INCH_TO_COORD(1);
}
/* default to ROUND_UP */
rounding_method = ROUND_UP;
/* extract the drillmap resource */
drlres = resource_subres (res, "drillmap");
if (drlres == NULL)
{
Message (_("No drillmap resource found\n"));
}
else
{
sval = resource_value (drlres, "round");
if (sval != NULL)
{
if (NSTRCMP (sval, "up") == 0)
{
//.........这里部分代码省略.........