void PCB_Grid::OnSave() { CString settingsFile = getApp().getUserPath() + "default.grd"; CFileDialog FileDialog(FALSE, "GRD", settingsFile, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, "Manuf Grid File (*.GRD)|*.GRD|All Files (*.*)|*.*||", NULL); if (FileDialog.DoModal() != IDOK) return; CStdioFile file; if (!file.Open(FileDialog.GetPathName(), file.modeCreate | file.modeWrite | file.typeText)) { ErrorMessage(FileDialog.GetPathName(), "Unable to Open File!", MB_ICONEXCLAMATION | MB_OK); return; } UpdateData(); file.WriteString("! CAMCAD Manufacturing Grid Settings\n\n"); int decimals = GetDecimals(doc->getSettings().getPageUnits()); CString buf; buf.Format(".Units %s\n", GetUnitName(doc->getSettings().getPageUnits())); file.WriteString(buf); buf.Format(".Horizontal %d %d %.*lf\n", m_horz, m_hSteps, decimals, getHSizePageUnits()); file.WriteString(buf); buf.Format(".Vertical %d %d %.*lf\n", m_vert, m_vSteps, decimals, getVSizePageUnits()); file.WriteString(buf); buf.Format(".Thickness %.*lf\n", decimals,m_gridThickness); file.WriteString(buf); file.Close(); }
bool Units::FormatUserDistance(double Distance, TCHAR *Buffer, size_t size){ int prec; double value; TCHAR sTmp[32]; UnitDescriptor_t *pU = &UnitDescriptors[UserDistanceUnit]; value = Distance * pU->ToUserFact; // + pU->ToUserOffset; if (value >= 100) prec = 0; else if (value > 10) prec = 1; else if (value > 1) prec = 2; else { prec = 3; if (UserDistanceUnit == unKiloMeter){ prec = 0; pU = &UnitDescriptors[unMeter]; value = Distance * pU->ToUserFact; } if (UserDistanceUnit == unNauticalMiles || UserDistanceUnit == unStatuteMiles) { pU = &UnitDescriptors[unFeet]; value = Distance * pU->ToUserFact; if (value<1000) { prec = 0; } else { prec = 1; pU = &UnitDescriptors[UserDistanceUnit]; value = Distance* pU->ToUserFact; } } } _stprintf(sTmp, TEXT("%.*f%s"), prec, value, GetUnitName(UserDistanceUnit)); if (_tcslen(sTmp) < size-1){ _tcscpy(Buffer, sTmp); return(true); } else { LK_tcsncpy(Buffer, sTmp, size-1); return(false); } }
BOOL FormatHPin::OnInitDialog() { CDialog::OnInitDialog(); for (int i=0; i < MAX_UNITS; i++) m_unitsCB.AddString(GetUnitName(i)); m_unitsCB.SetCurSel(3); m_scroll.SetScrollRange(0, 8); m_scroll.SetScrollPos(0); pennum = 0; m_space = format->HP.HPspace; WritePens(); return TRUE; // return TRUE unless you set the focus to a control // EXCEPTION: OCX Property Pages should return FALSE }
bool Units::FormatUserMapScale(Units_t *Unit, double Distance, TCHAR *Buffer, size_t size){ int prec; double value; TCHAR sTmp[32]; UnitDescriptor_t *pU = &UnitDescriptors[UserDistanceUnit]; if (Unit != NULL) *Unit = UserDistanceUnit; value = Distance * pU->ToUserFact; // + pU->ToUserOffset; if (value >= 9.999) prec = 0; else if (value >= 0.999) prec = 1; else { prec = 2; if (UserDistanceUnit == unKiloMeter){ prec = 0; if (Unit != NULL) *Unit = unMeter; pU = &UnitDescriptors[unMeter]; value = Distance * pU->ToUserFact; } if ((UserDistanceUnit == unNauticalMiles || UserDistanceUnit == unStatuteMiles) && (value < 0.160)) { prec = 0; if (Unit != NULL) *Unit = unFeet; pU = &UnitDescriptors[unFeet]; value = Distance * pU->ToUserFact; } } _stprintf(sTmp, TEXT("%.*f%s"), prec, value, GetUnitName(unFeet)); if (_tcslen(sTmp) < size-1){ _tcscpy(Buffer, sTmp); return(true); } else { LK_tcsncpy(Buffer, sTmp, size-1); return(false); } }
// I don't think it is a good idea to change, even if for a short time, a global variable at all effect here, // just to be able to call the function above with a parameter missing! bool Units::FormatAlternateUserAltitude(double Altitude, TCHAR *Buffer, size_t size){ Units_t useUnit; TCHAR sTmp[32]; if (UserAltitudeUnit == unMeter) useUnit=unFeet; else useUnit=unMeter; UnitDescriptor_t *pU = &UnitDescriptors[useUnit]; Altitude = Altitude * pU->ToUserFact; _stprintf(sTmp, TEXT("%.*f%s"), 0, Altitude, GetUnitName(useUnit)); if (_tcslen(sTmp) < size-1){ _tcscpy(Buffer, sTmp); return(true); } else { LK_tcsncpy(Buffer, sTmp, size-1); return(false); } }
bool Units::FormatUserArrival(double Altitude, TCHAR *Buffer, size_t size){ int prec; TCHAR sTmp[32]; UnitDescriptor_t *pU = &UnitDescriptors[UserAltitudeUnit]; Altitude = Altitude * pU->ToUserFact; // + pU->ToUserOffset; // prec = 4-log10(Altitude); // prec = max(prec, 0); prec = 0; _stprintf(sTmp, TEXT("%+.*f%s"), prec, Altitude, GetUnitName(UserAltitudeUnit)); if (_tcslen(sTmp) < size-1){ _tcscpy(Buffer, sTmp); return(true); } else { LK_tcsncpy(Buffer, sTmp, size-1); return(false); } }
const TCHAR * Units::GetAltitudeName() { return GetUnitName(GetUserAltitudeUnit()); }
const TCHAR * Units::GetDistanceName() { return GetUnitName(GetUserDistanceUnit()); }
const TCHAR * Units::GetVerticalSpeedName() { return GetUnitName(GetUserVerticalSpeedUnit()); }
const TCHAR * Units::GetPressureName() { return GetUnitName(GetUserPressureUnit()); }
const TCHAR *Units::GetInvAltitudeName(){ // 100126 return(GetUnitName(GetUserInvAltitudeUnit())); }
const TCHAR *Units::GetHorizontalSpeedName(){ return(GetUnitName(GetUserHorizontalSpeedUnit())); }
INT unit_getProperty(JSContext *cx, JSObject *obj, jsval id, jsval *vp) { CDebug cDbg("unit getProperty"); BnetData* pData = *p_D2LAUNCH_BnData; GameStructInfo* pInfo = *p_D2CLIENT_GameInfo; switch(JSVAL_TO_INT(id)) { case ME_ACCOUNT: if(!pData) return JS_TRUE; *vp = STRING_TO_JSVAL(JS_NewStringCopyZ(cx, pData->szAccountName)); break; case ME_CHARNAME: if(!pInfo) return JS_TRUE; *vp = STRING_TO_JSVAL(JS_NewStringCopyZ(cx, pInfo->szCharName)); break; case ME_CHICKENHP: *vp = INT_TO_JSVAL(Vars.nChickenHP); break; case ME_CHICKENMP: *vp = INT_TO_JSVAL(Vars.nChickenMP); break; case ME_DIFF: *vp = INT_TO_JSVAL(D2CLIENT_GetDifficulty()); break; case ME_GAMENAME: if(!pInfo) return JS_TRUE; *vp = STRING_TO_JSVAL(JS_NewStringCopyZ(cx, pInfo->szGameName)); break; case ME_GAMEPASSWORD: if(!pInfo) return JS_TRUE; *vp = STRING_TO_JSVAL(JS_NewStringCopyZ(cx, pInfo->szGamePassword)); break; case ME_GAMESERVERIP: if(!pInfo) return JS_TRUE; *vp = STRING_TO_JSVAL(JS_NewStringCopyZ(cx, pInfo->szGameServerIp)); break; case ME_GAMESTARTTIME: *vp = INT_TO_JSVAL(Vars.dwGameTime); break; case ME_GAMETYPE: *vp = INT_TO_JSVAL(*p_D2CLIENT_ExpCharFlag); break; case ME_ITEMONCURSOR: *vp = BOOLEAN_TO_JSVAL(!!D2CLIENT_GetCursorItem()); break; case ME_LADDER: if(pData) *vp = BOOLEAN_TO_JSVAL(((pData->nCharFlags & PLAYER_TYPE_LADDER) == TRUE)); break; case ME_QUITONHOSTILE: *vp = BOOLEAN_TO_JSVAL(Vars.bQuitOnHostile); break; case ME_REALM: *vp = STRING_TO_JSVAL(JS_NewStringCopyZ(cx, pData->szRealmName)); break; case ME_REALMSHORT: *vp = STRING_TO_JSVAL(JS_NewStringCopyZ(cx, pData->szRealmName2)); break; case OOG_SCREENSIZE: *vp = INT_TO_JSVAL(D2GFX_GetScreenSize()); break; case OOG_WINDOWTITLE: CHAR szTitle[128]; GetWindowText(D2WIN_GetHwnd(), szTitle, 128); *vp = STRING_TO_JSVAL(JS_NewStringCopyZ(cx, szTitle)); break; case ME_PING: *vp = INT_TO_JSVAL(*p_D2CLIENT_Ping); break; case OOG_INGAME: *vp = BOOLEAN_TO_JSVAL(ClientState() == ClientStateMenu ? FALSE : TRUE); break; case OOG_QUITONERROR: *vp = BOOLEAN_TO_JSVAL(Vars.bQuitOnError); break; case OOG_MAXGAMETIME: *vp = INT_TO_JSVAL(Vars.dwMaxGameTime); break; case OOG_DEBUG: *vp = BOOLEAN_TO_JSVAL(Vars.bDebug); break; case ME_MERCREVIVECOST: *vp = INT_TO_JSVAL((*p_D2CLIENT_MercReviveCost)); break; case ME_BLOCKKEYS: *vp = BOOLEAN_TO_JSVAL(Vars.bBlockKeys); break; case ME_BLOCKMOUSE: *vp = BOOLEAN_TO_JSVAL(Vars.bBlockMouse); break; default: break; } /* // TODO: Properly fix this... if ((JSVAL_TO_INT(id) < OOG_WINDOWTITLE) && !GameReady()) return JS_TRUE; */ if(!GameReady()) return JS_TRUE; myUnit* lpUnit = (myUnit*)JS_GetPrivate(cx, obj); if(!lpUnit || IsBadReadPtr(lpUnit, sizeof(myUnit)) || lpUnit->_dwPrivateType != PRIVATE_UNIT) return JS_TRUE; UnitAny* pUnit = D2CLIENT_FindUnit(lpUnit->dwUnitId, lpUnit->dwType); if(!pUnit) return JS_TRUE; char* tmp = NULL; Room1* pRoom = NULL; switch(JSVAL_TO_INT(id)) { case UNIT_TYPE: *vp = INT_TO_JSVAL(pUnit->dwType); break; case UNIT_CLASSID: *vp = INT_TO_JSVAL(pUnit->dwTxtFileNo); break; case UNIT_MODE: *vp = INT_TO_JSVAL(pUnit->dwMode); break; case UNIT_NAME: tmp = new char[8192]; GetUnitName(pUnit, tmp, 8192); *vp = STRING_TO_JSVAL(JS_InternString(cx, tmp)); delete[] tmp; break; case UNIT_ACT: *vp = INT_TO_JSVAL(pUnit->dwAct + 1); break; case UNIT_AREA: pRoom = D2COMMON_GetRoomFromUnit(pUnit); if(pRoom && pRoom->pRoom2 && pRoom->pRoom2->pLevel) *vp = INT_TO_JSVAL(pRoom->pRoom2->pLevel->dwLevelNo); break; case UNIT_ID: *vp = INT_TO_JSVAL(pUnit->dwUnitId); break; case UNIT_XPOS: *vp = INT_TO_JSVAL(GetUnitX(pUnit)); break; case UNIT_YPOS: *vp = INT_TO_JSVAL(GetUnitY(pUnit)); break; case UNIT_HP: *vp = INT_TO_JSVAL(D2COMMON_GetUnitStat(pUnit, 6, 0) >> 8); break; case UNIT_HPMAX: *vp = INT_TO_JSVAL(D2COMMON_GetUnitStat(pUnit, 7, 0) >> 8); break; case UNIT_MP: *vp = INT_TO_JSVAL(D2COMMON_GetUnitStat(pUnit, 8, 0) >> 8); break; case UNIT_MPMAX: *vp = INT_TO_JSVAL(D2COMMON_GetUnitStat(pUnit, 9, 0) >> 8); break; case UNIT_STAMINA: *vp = INT_TO_JSVAL(D2COMMON_GetUnitStat(pUnit, 10, 0) >> 8); break; case UNIT_STAMINAMAX: *vp = INT_TO_JSVAL(D2COMMON_GetUnitStat(pUnit, 11, 0) >> 8); break; case UNIT_CHARLVL: *vp = INT_TO_JSVAL(D2COMMON_GetUnitStat(pUnit, 12, 0)); break; case ME_RUNWALK: *vp = INT_TO_JSVAL(*p_D2CLIENT_AlwaysRun); break; case UNIT_ADDRESS: *vp = INT_TO_JSVAL(pUnit); break; case UNIT_SPECTYPE: DWORD SpecType; SpecType = NULL; if(pUnit->dwType == UNIT_MONSTER && pUnit->pMonsterData) { if(pUnit->pMonsterData->fMinion & 1) SpecType |= 0x08; if(pUnit->pMonsterData->fBoss & 1) SpecType |= 0x04; if(pUnit->pMonsterData->fChamp & 1) SpecType |= 0x02; if((pUnit->pMonsterData->fBoss & 1)&& (pUnit->pMonsterData->fNormal & 1)) SpecType |= 0x01; if(pUnit->pMonsterData->fNormal & 1) SpecType |= 0x00; *vp = INT_TO_JSVAL(SpecType); return JS_TRUE; } break; case UNIT_UNIQUEID: if(pUnit->dwType == UNIT_MONSTER && pUnit->pMonsterData->fBoss && pUnit->pMonsterData->fNormal) *vp = INT_TO_JSVAL(pUnit->pMonsterData->wUniqueNo); else *vp = INT_TO_JSVAL(-1); break; case ITEM_CODE: // replace with better method if found if(!(pUnit->dwType == UNIT_ITEM) && pUnit->pItemData) break; ItemTxt* pTxt; pTxt = D2COMMON_GetItemText(pUnit->dwTxtFileNo); if(!pTxt) { *vp = STRING_TO_JSVAL(JS_InternString(cx, "Unknown")); return JS_TRUE; } CHAR szCode[4]; memcpy(szCode, pTxt->szCode, 3); szCode[3] = 0x00; *vp = STRING_TO_JSVAL(JS_InternString(cx, szCode)); break; case ITEM_PREFIX: if(pUnit->dwType == UNIT_ITEM && pUnit->pItemData) if (D2COMMON_GetItemMagicalMods(pUnit->pItemData->wPrefix)) *vp = STRING_TO_JSVAL(JS_InternString(cx, D2COMMON_GetItemMagicalMods(pUnit->pItemData->wPrefix))); break; case ITEM_SUFFIX: if(pUnit->dwType == UNIT_ITEM && pUnit->pItemData) if (D2COMMON_GetItemMagicalMods(pUnit->pItemData->wSuffix)) *vp = STRING_TO_JSVAL(JS_InternString(cx, D2COMMON_GetItemMagicalMods(pUnit->pItemData->wSuffix))); break; case ITEM_PREFIXNUM: if(pUnit->dwType == UNIT_ITEM && pUnit->pItemData) *vp = INT_TO_JSVAL(pUnit->pItemData->wPrefix); break; case ITEM_SUFFIXNUM: if(pUnit->dwType == UNIT_ITEM && pUnit->pItemData) *vp = INT_TO_JSVAL(pUnit->pItemData->wSuffix); break; case ITEM_FNAME: if(pUnit->dwType == UNIT_ITEM && pUnit->pItemData) { wchar_t wszfname[256] = L""; D2CLIENT_GetItemName(pUnit, wszfname, sizeof(wszfname)); if(wszfname) { char* tmp = UnicodeToAnsi(wszfname); *vp = STRING_TO_JSVAL(JS_InternString(cx, tmp)); delete[] tmp; } } break; case ITEM_QUALITY: if(pUnit->dwType == UNIT_ITEM && pUnit->pItemData) *vp = INT_TO_JSVAL(pUnit->pItemData->dwQuality); break; case ITEM_NODE: if(pUnit->dwType == UNIT_ITEM && pUnit->pItemData) *vp = INT_TO_JSVAL(pUnit->pItemData->NodePage); break; case ITEM_LOC: if(pUnit->dwType == UNIT_ITEM && pUnit->pItemData) *vp = INT_TO_JSVAL(pUnit->pItemData->ItemLocation); break; case ITEM_SIZEX: if(pUnit->dwType == UNIT_ITEM && pUnit->pItemData) { if(!D2COMMON_GetItemText(pUnit->dwTxtFileNo)) break; *vp = INT_TO_JSVAL(D2COMMON_GetItemText(pUnit->dwTxtFileNo)->xSize); } break; case ITEM_SIZEY: if(pUnit->dwType == UNIT_ITEM && pUnit->pItemData) { if(!D2COMMON_GetItemText(pUnit->dwTxtFileNo)) break; *vp = INT_TO_JSVAL(D2COMMON_GetItemText(pUnit->dwTxtFileNo)->ySize); } break; case ITEM_Type: if(pUnit->dwType == UNIT_ITEM && pUnit->pItemData) { if(!D2COMMON_GetItemText(pUnit->dwTxtFileNo)) break; *vp = INT_TO_JSVAL(D2COMMON_GetItemText(pUnit->dwTxtFileNo)->nType); } break; case ITEM_DESC: { if(pUnit->dwType != UNIT_ITEM) break; wchar_t wBuffer[8192] = L""; D2CLIENT_GetItemDesc(pUnit, wBuffer); tmp = UnicodeToAnsi(wBuffer); *vp = STRING_TO_JSVAL(JS_InternString(cx, tmp)); delete[] tmp; } break; case UNIT_ITEMCOUNT: if(pUnit->pInventory) *vp = INT_TO_JSVAL(pUnit->pInventory->dwItemCount); break; case ITEM_BODYLOCATION: if(pUnit->dwType != UNIT_ITEM) break; if(pUnit->pItemData) *vp = INT_TO_JSVAL(pUnit->pItemData->BodyLocation); break; case UNIT_OWNER: *vp = INT_TO_JSVAL(pUnit->dwOwnerId); break; case UNIT_OWNERTYPE: *vp = INT_TO_JSVAL(pUnit->dwOwnerType); break; case ITEM_LEVEL: if(pUnit->dwType != UNIT_ITEM) break; if(pUnit->pItemData) *vp = INT_TO_JSVAL(pUnit->pItemData->dwItemLevel); break; case ITEM_LEVELREQ: if(pUnit->dwType != UNIT_ITEM) break; *vp = INT_TO_JSVAL(D2COMMON_GetItemLevelRequirement(pUnit, D2CLIENT_GetPlayerUnit())); break; case UNIT_DIRECTION: if(pUnit->pPath) *vp = INT_TO_JSVAL(pUnit->pPath->bDirection); break; case OBJECT_TYPE: if(pUnit->dwType == UNIT_OBJECT) if(pUnit->pObjectData) { pRoom = D2COMMON_GetRoomFromUnit(pUnit); if(pRoom && pRoom->pRoom2 && pRoom->pRoom2->pLevel && IsTownLevel(pRoom->pRoom2->pLevel->dwLevelNo)) *vp = INT_TO_JSVAL(pUnit->pObjectData->Type & 255); else *vp = INT_TO_JSVAL(pUnit->pObjectData->Type); } break; case ME_WSWITCH: *vp = INT_TO_JSVAL(*p_D2CLIENT_bWeapSwitch); break; default: break; } return JS_TRUE; }
NativeGUIWin ProjectPrefsGUI::Construct(void) { int TabIndex; if (!NativeWin) { NativeWin = CreateWinFromTemplate(IDD_PREFS, LocalWinSys()->RootWin); CreateSubWinFromTemplate(IDD_PREFS_GENERAL, 0, 0); CreateSubWinFromTemplate(IDD_PREFS_VIEWPORTS, 0, 1); CreateSubWinFromTemplate(IDD_PREFS_PROJECT, 0, 2); CreateSubWinFromTemplate(IDD_PREFS_INTERACT, 0, 3); CreateSubWinFromTemplate(IDD_PREFS_UNITS, 0, 4); CreateSubWinFromTemplate(IDD_PREFS_PATHS, 0, 5); #ifdef WCS_BUILD_V2 CreateSubWinFromTemplate(IDD_PREFS_DEMDIRS_VNS, 0, 6); #else // !WCS_BUILD_V2 CreateSubWinFromTemplate(IDD_PREFS_DEMDIRS, 0, 6); #endif // !WCS_BUILD_V2 CreateSubWinFromTemplate(IDD_PREFS_CONFIG, 0, 7); if (NativeWin) { WidgetCBAddEnd(IDC_FRAMERATEDROP, "NTSC Video"); WidgetCBAddEnd(IDC_FRAMERATEDROP, "PAL Video"); WidgetCBAddEnd(IDC_FRAMERATEDROP, "Film"); WidgetCBAddEnd(IDC_FRAMERATEDROP, "Custom"); for(TabIndex = WCS_USEFUL_UNIT_MILLIMETER; TabIndex <= WCS_USEFUL_UNIT_FEET_US_SURVEY; TabIndex ++) { WidgetCBAddEnd(IDC_DISTANCEUNITSDROP, GetUnitName(TabIndex)); WidgetCBAddEnd(IDC_HEIGHTUNITSDROP, GetUnitName(TabIndex)); } // for WidgetCBAddEnd(IDC_ANGLEUNITSDROP, "Decimal Degrees"); WidgetCBAddEnd(IDC_ANGLEUNITSDROP, "Deg., Min., Sec."); WidgetCBAddEnd(IDC_TIMEUNITSDROP, "Seconds"); WidgetCBAddEnd(IDC_TIMEUNITSDROP, "Frames"); WidgetCBAddEnd(IDC_POSLONDROP, "West"); WidgetCBAddEnd(IDC_POSLONDROP, "East"); WidgetCBAddEnd(IDC_LATLONDISPLAY, "+/-"); WidgetCBAddEnd(IDC_LATLONDISPLAY, "N/S, W/E"); WidgetCBAddEnd(IDC_GEOPROJDISPLAY, "As Geographic"); WidgetCBAddEnd(IDC_GEOPROJDISPLAY, "As Projected"); for (TabIndex = 0; TabIndex < 8; TabIndex ++) { WidgetTCInsertItem(IDC_TAB1, TabIndex, TabNames[TabIndex]); } // for WidgetTCSetCurSel(IDC_TAB1, ActivePage); ShowPanel(0, ActivePage); ConfigureWidgets(); } // if } // if return(NativeWin); } // ProjectPrefsGUI::Construct
/* * Class: aflobby_CUnitSyncJNIBindings * Method: GetUnitName * Signature: (I)Ljava/lang/String; */ JNIEXPORT jstring JNICALL Java_aflobby_CUnitSyncJNIBindings_GetUnitName (JNIEnv *env, jclass myobject, jint unit){ return env->NewStringUTF(GetUnitName(unit)); }
const TCHAR * Units::GetTemperatureName() { return GetUnitName(GetUserTemperatureUnit()); }
const TCHAR * Units::GetTaskSpeedName() { return GetUnitName(GetUserTaskSpeedUnit()); }
const TCHAR * Units::GetWindSpeedName() { return GetUnitName(GetUserWindSpeedUnit()); }